X-Git-Url: https://sigrok.org/gitweb/?p=libsigrokdecode.git;a=blobdiff_plain;f=tests%2Fruntc.c;h=11ae560dbea4766c63872d09018dbf9b333a6e66;hp=cd3d44983fe0598d9d609ea4e8dea5683c9c125a;hb=7149b578a48e90a8b34d70174f8c3ce51de1e282;hpb=2372b1998ae5d252433d7a7a07744ba2ea81b96e
diff --git a/tests/runtc.c b/tests/runtc.c
index cd3d449..11ae560 100644
--- a/tests/runtc.c
+++ b/tests/runtc.c
@@ -17,6 +17,7 @@
* along with this program. If not, see .
*/
+#include
#include "../libsigrokdecode.h"
#include
#include
@@ -35,7 +36,7 @@
#ifdef __LINUX__
#include
#endif
-#include "../config.h"
+#include "config.h"
int debug = FALSE;
int statistics = FALSE;
@@ -48,7 +49,7 @@ struct channel {
struct option {
char *key;
- char *value;
+ GVariant *value;
};
struct pd {
@@ -337,6 +338,7 @@ static int run_testcase(char *infile, GSList *pdlist, struct output *op)
int idx;
int max_channel;
char **decoder_class;
+ struct sr_session *sr_sess;
if (op->outfile) {
if ((op->outfd = open(op->outfile, O_CREAT|O_WRONLY, 0600)) == -1) {
@@ -346,12 +348,12 @@ static int run_testcase(char *infile, GSList *pdlist, struct output *op)
}
}
- if (sr_session_load(infile) != SR_OK)
+ if (sr_session_load(infile, &sr_sess) != SR_OK)
return FALSE;
if (srd_session_new(&sess) != SRD_OK)
return FALSE;
- sr_session_datafeed_callback_add(sr_cb, sess);
+ sr_session_datafeed_callback_add(sr_sess, sr_cb, sess);
switch (op->type) {
case SRD_OUTPUT_ANN:
cb = srd_cb_ann;
@@ -443,9 +445,9 @@ static int run_testcase(char *infile, GSList *pdlist, struct output *op)
DBG("Class %s index is %d", op->class, op->class_idx);
}
- sr_session_start();
- sr_session_run();
- sr_session_stop();
+ sr_session_start(sr_sess);
+ sr_session_run(sr_sess);
+ sr_session_stop(sr_sess);
srd_session_destroy(sess);
@@ -688,8 +690,8 @@ int main(int argc, char **argv)
struct channel *channel;
struct option *option;
struct output *op;
- int ret;
- char c, *opt_infile, **kv, **opstr;
+ int ret, c;
+ char *opt_infile, **kv, **opstr;
op = malloc(sizeof(struct output));
op->pd = NULL;
@@ -736,7 +738,8 @@ int main(int argc, char **argv)
} else {
option = malloc(sizeof(struct option));
option->key = g_strdup(kv[0]);
- option->value = g_strdup(kv[1]);
+ option->value = g_variant_new_string(kv[1]);
+ g_variant_ref_sink(option->value);
/* Apply to last PD. */
pd->options = g_slist_append(pd->options, option);
}
@@ -759,6 +762,9 @@ int main(int argc, char **argv)
op->type = SRD_OUTPUT_BINARY;
else if (!strcmp(opstr[1], "python"))
op->type = SRD_OUTPUT_PYTHON;
+ else if (!strcmp(opstr[1], "exception"))
+ /* Doesn't matter, we just need it to bomb out. */
+ op->type = SRD_OUTPUT_PYTHON;
else {
ERR("Unknown output type '%s'", opstr[1]);
g_strfreev(opstr);