* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
+#include <Python.h>
#include "../libsigrokdecode.h"
#include <libsigrok/libsigrok.h>
#include <stdlib.h>
#ifdef __LINUX__
#include <sched.h>
#endif
-#include "../config.h"
+#include "config.h"
int debug = FALSE;
int statistics = FALSE;
struct option {
char *key;
- char *value;
+ GVariant *value;
};
struct pd {
GSList *missed_lines;
};
-
struct cvg *get_mod_cov(PyObject *py_cov, char *module_name);
void cvg_add(struct cvg *dst, struct cvg *src);
struct cvg *cvg_new(void);
gboolean find_missed_line(struct cvg *cvg, char *linespec);
-
static void logmsg(char *prefix, FILE *out, const char *format, va_list args)
{
if (prefix)
s = py_str_as_str(pyrepr);
Py_DecRef(pyrepr);
- /* Output format for testing is '<ss>-<es> <inst-id>: <repr>\n' */
+ /* Output format for testing is '<ss>-<es> <inst-id>: <repr>\n'. */
out = g_string_sized_new(128);
- g_string_printf(out, "%"PRIu64"-%"PRIu64" %s: %s\n",
+ g_string_printf(out, "%" PRIu64 "-%" PRIu64 " %s: %s\n",
pdata->start_sample, pdata->end_sample,
pdata->pdo->di->inst_id, s);
g_free(s);
return;
out = g_string_sized_new(128);
- g_string_printf(out, "%"PRIu64"-%"PRIu64" %s:",
+ g_string_printf(out, "%" PRIu64 "-%" PRIu64 " %s:",
pdata->start_sample, pdata->end_sample,
pdata->pdo->di->inst_id);
for (i = 0; i < pdb->size; i++) {
dec_ann = g_slist_nth_data(dec->annotations, pda->ann_format);
line = g_string_sized_new(256);
- g_string_printf(line, "%"PRIu64"-%"PRIu64" %s: %s:",
+ g_string_printf(line, "%" PRIu64 "-%" PRIu64 " %s: %s:",
pdata->start_sample, pdata->end_sample,
pdata->pdo->di->inst_id, dec_ann[0]);
for (i = 0; pda->ann_text[i]; i++)
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) {
}
}
- 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;
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);
cvg_mod->coverage = 100 - ((float)cvg_mod->num_missed / (float)cvg_mod->num_lines * 100);
Py_DecRef(py_mod);
- Py_DecRef(py_path);
+ Py_DecRef(py_path);
return cvg_mod;
}
GSList *l;
char *linespec;
-
dst->num_lines += src->num_lines;
dst->num_missed += src->num_missed;
for (l = src->missed_lines; l; l = l->next) {
printf("coverage: scope=all coverage=%.0f%% lines=%d missed=%d\n",
total_coverage, cvg_all->num_lines, cvg_all->num_missed);
-
/* Write text report to file. */
/* io.open(coverage_report, "w") */
if (!(py_mod = PyImport_ImportModule("io")))
pd = NULL;
coverage = NULL;
while ((c = getopt(argc, argv, "dP:p:o:i:O:f:c:S")) != -1) {
- switch(c) {
+ switch (c) {
case 'd':
debug = TRUE;
break;
} 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);
}
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);