X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=tests%2Fsession.c;h=e79496e576da56e949c80b75d68ae26c9e444b40;hb=d1b7bd1b602149cef4183f5a05188c0467bcd280;hp=2ca16b3a6da4a15612de9244d9569e34b24fb262;hpb=868fd207a7506ae2ab48d6a8755350e452d60521;p=libsigrokdecode.git
diff --git a/tests/session.c b/tests/session.c
index 2ca16b3..e79496e 100644
--- a/tests/session.c
+++ b/tests/session.c
@@ -14,12 +14,12 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ * along with this program; if not, see .
*/
-#include "../libsigrokdecode-internal.h" /* First, to avoid compiler warning. */
-#include "../libsigrokdecode.h"
+#include
+#include /* First, to avoid compiler warning. */
+#include
#include
#include
#include
@@ -224,6 +224,36 @@ START_TEST(test_session_metadata_set_bogus)
}
END_TEST
+/*
+ * Check whether srd_session_terminate_reset() succeeds on newly created
+ * sessions, as well as after calling start() and meta(). No data is fed
+ * to decoders here.
+ */
+START_TEST(test_session_reset_nodata)
+{
+ struct srd_session *sess;
+ int ret;
+ GVariant *data;
+
+ srd_init(NULL);
+ srd_session_new(&sess);
+ ret = srd_session_terminate_reset(sess);
+ fail_unless(ret == SRD_OK, "srd_session_terminate_reset() failed: %d.", ret);
+ ret = srd_session_start(sess);
+ fail_unless(ret == SRD_OK, "srd_session_start() failed: %d.", ret);
+ ret = srd_session_terminate_reset(sess);
+ fail_unless(ret == SRD_OK, "srd_session_terminate_reset() failed: %d.", ret);
+ data = g_variant_new_uint64(1000000);
+ ret = srd_session_metadata_set(sess, SRD_CONF_SAMPLERATE, data);
+ fail_unless(ret == SRD_OK, "srd_session_metadata_set() failed: %d.", ret);
+ ret = srd_session_terminate_reset(sess);
+ fail_unless(ret == SRD_OK, "srd_session_terminate_reset() failed: %d.", ret);
+ ret = srd_session_destroy(sess);
+ fail_unless(ret == SRD_OK, "srd_session_destroy() failed: %d.", ret);
+ srd_exit();
+}
+END_TEST
+
Suite *suite_session(void)
{
Suite *s;
@@ -246,5 +276,9 @@ Suite *suite_session(void)
tcase_add_test(tc, test_session_metadata_set_bogus);
suite_add_tcase(s, tc);
+ tc = tcase_create("reset");
+ tcase_add_test(tc, test_session_reset_nodata);
+ suite_add_tcase(s, tc);
+
return s;
}