test: add simple "no data" test case for decoder "terminate and reset"
authorGerhard Sittig <gerhard.sittig@gmx.net>
Sun, 17 Dec 2017 21:24:10 +0000 (22:24 +0100)
committerUwe Hermann <uwe@hermann-uwe.de>
Sat, 31 Mar 2018 18:44:21 +0000 (20:44 +0200)
Introduce a "reset" group of tests. Whip up a first test step which runs
the "terminate and reset" routine for decoder stacks after session
creation, start, and meta data setup. No input data gets processed, no
decoder output is tested yet.

tests/session.c

index f9e42dfcba6f3dca71951325a2bad5bda45319aa..e79496e576da56e949c80b75d68ae26c9e444b40 100644 (file)
@@ -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;
 }