X-Git-Url: https://git.draconx.ca/gitweb/cdecl99.git/blobdiff_plain/aba6fe8bda05659f70ef0cca07aa02db72f23315..481f693b0400b05586d90f60494e0e661ad8a1c1:/t/testlib.c diff --git a/t/testlib.c b/t/testlib.c index 10b27ad..5902e7b 100644 --- a/t/testlib.c +++ b/t/testlib.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include @@ -27,6 +28,7 @@ #include "help.h" #include "test.h" +#include "getline.h" #include "intconv.h" void print_error(const char *fmt, ...) @@ -75,11 +77,11 @@ static unsigned intconv_base(const char **str) return INTCONV_DECIMAL; } -bool test_strtoumax(uintmax_t *out, const char *s, uintmax_t limit) +bool test_strtoumax(cdecl_uintmax *out, const char *s, cdecl_uintmax limit) { static const char idx[] = "0123456789abcdef0123456789ABCDEF"; unsigned base = intconv_base(&s); - uintmax_t v; + cdecl_uintmax v; char *c, d; for (v = 0; (d = *s++);) { @@ -104,3 +106,18 @@ void test_print_options(const struct option *lopts) putchar('\n'); } } + +int test_getline(char **linebuf, size_t *n) +{ + int rc; + + if ((rc = dx_getline(linebuf, n, stdin)) < 0) { + if (rc == DX_GETLINE_ENOMEM) + print_error("%s", _("failed to allocate memory")); + else + print_error("%s", strerror(errno)); + abort(); + } + + return rc; +}