From: Bartosz Golaszewski Date: Wed, 22 Feb 2017 15:18:30 +0000 (+0100) Subject: tests: implement xcasprintf() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=31af92a9aa800beff4dee1ba35e871feff04fad3;p=qemu-gpiodev%2Flibgpiod.git tests: implement xcasprintf() Add another flavor of xasprintf() which can also return the number of bytes written to the created string. Signed-off-by: Bartosz Golaszewski --- diff --git a/tests/unit/gpiod-unit.c b/tests/unit/gpiod-unit.c index 0e3f79b..44dc763 100644 --- a/tests/unit/gpiod-unit.c +++ b/tests/unit/gpiod-unit.c @@ -135,6 +135,22 @@ static GU_PRINTF(1, 2) char * xasprintf(const char *fmt, ...) return ret; } +static GU_PRINTF(2, 3) char * xcasprintf(size_t *count, const char *fmt, ...) +{ + int status; + va_list va; + char *ret; + + va_start(va, fmt); + status = vasprintf(&ret, fmt, va); + if (status < 0) + die_perr("asprintf"); + va_end(va); + + *count = status; + return ret; +} + static void check_chip_index(unsigned int index) { if (index >= globals.test_ctx.num_chips) @@ -247,8 +263,8 @@ static void check_gpio_mockup(void) static void test_load_module(struct gu_chip_descr *descr) { char *modarg, *tmp_modarg; + size_t modarg_len, count; char **line_sizes; - size_t modarg_len; unsigned int i; int status; @@ -256,12 +272,9 @@ static void test_load_module(struct gu_chip_descr *descr) modarg_len = strlen("gpio_mockup_ranges="); for (i = 0; i < descr->num_chips; i++) { - status = asprintf(&line_sizes[i], - "-1,%u,", descr->num_lines[i]); - if (status < 0) - die_perr("asprintf"); - - modarg_len += status; + line_sizes[i] = xcasprintf(&count, "-1,%u,", + descr->num_lines[i]); + modarg_len += count; } modarg = xzalloc(modarg_len + 1);