X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=tests%2Flib.c;h=cb8b8a48b352f017e5a068e7e7259c23e2ee9001;hb=032da34b786333a1af811235c5cf29855479f0b6;hp=523d4399c5a8986e2d18cc28a43646236ca14d31;hpb=34e4c273916d8fd246ca6aefbff05528f92391fc;p=libsigrok.git diff --git a/tests/lib.c b/tests/lib.c index 523d4399..cb8b8a48 100644 --- a/tests/lib.c +++ b/tests/lib.c @@ -20,8 +20,29 @@ #include #include +#include +#include #include -#include "../libsigrok.h" +#include "../include/libsigrok/libsigrok.h" +#include "lib.h" + +struct sr_context *srtest_ctx; + +void srtest_setup(void) +{ + int ret; + + ret = sr_init(&srtest_ctx); + fail_unless(ret == SR_OK, "sr_init() failed: %d.", ret); +} + +void srtest_teardown(void) +{ + int ret; + + ret = sr_exit(srtest_ctx); + fail_unless(ret == SR_OK, "sr_exit() failed: %d.", ret); +} /* Get a libsigrok driver by name. */ struct sr_dev_driver *srtest_driver_get(const char *drivername) @@ -29,7 +50,7 @@ struct sr_dev_driver *srtest_driver_get(const char *drivername) struct sr_dev_driver **drivers, *driver = NULL; int i; - drivers = sr_driver_list(); + drivers = sr_driver_list(srtest_ctx); fail_unless(drivers != NULL, "No drivers found."); for (i = 0; drivers[i]; i++) { @@ -58,7 +79,7 @@ void srtest_driver_init_all(struct sr_context *sr_ctx) struct sr_dev_driver **drivers, *driver; int i, ret; - drivers = sr_driver_list(); + drivers = sr_driver_list(srtest_ctx); fail_unless(drivers != NULL, "No drivers found."); for (i = 0; drivers[i]; i++) { @@ -79,7 +100,7 @@ void srtest_set_samplerate(struct sr_dev_driver *driver, uint64_t samplerate) sdi = g_slist_nth_data(driver->priv, 0); gvar = g_variant_new_uint64(samplerate); - ret = driver->config_set(SR_CONF_SAMPLERATE, gvar, sdi); + ret = driver->config_set(SR_CONF_SAMPLERATE, gvar, sdi, NULL); g_variant_unref(gvar); fail_unless(ret == SR_OK, "%s: Failed to set SR_CONF_SAMPLERATE: %d.", @@ -96,7 +117,7 @@ uint64_t srtest_get_samplerate(struct sr_dev_driver *driver) sdi = g_slist_nth_data(driver->priv, 0); - ret = driver->config_get(SR_CONF_SAMPLERATE, &gvar, sdi); + ret = driver->config_get(SR_CONF_SAMPLERATE, &gvar, sdi, NULL); samplerate = g_variant_get_uint64(gvar); g_variant_unref(gvar); @@ -120,3 +141,22 @@ void srtest_check_samplerate(struct sr_context *sr_ctx, const char *drivername, fail_unless(s == samplerate, "%s: Incorrect samplerate: %" PRIu64 ".", drivername, s); } + +GArray *srtest_get_enabled_logic_channels(const struct sr_dev_inst *sdi) +{ + struct sr_channel *ch; + GArray *channels; + GSList *l; + + channels = g_array_new(FALSE, FALSE, sizeof(int)); + for (l = sr_dev_inst_channels_get(sdi); l; l = l->next) { + ch = l->data; + if (ch->type != SR_CHANNEL_LOGIC) + continue; + if (ch->enabled != TRUE) + continue; + g_array_append_val(channels, ch->index); + } + + return channels; +}