Mercurial > libjeffpc > experimental
changeset 864:83284f992646
tests: stop strdup'ing test input/output in sexpr parser test
We can just modify the passed in buffers without fear.
Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
author | Josef 'Jeff' Sipek <jeffpc@josefsipek.net> |
---|---|
date | Mon, 01 Apr 2019 16:38:20 +0300 |
parents | bdf7dca77ac7 |
children | d8e454369daf |
files | tests/test_sexpr_parser.c |
diffstat | 1 files changed, 12 insertions(+), 25 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test_sexpr_parser.c Mon Apr 01 16:34:53 2019 +0300 +++ b/tests/test_sexpr_parser.c Mon Apr 01 16:38:20 2019 +0300 @@ -29,15 +29,15 @@ #include "test.c" -static void trim(char *ptr) +static void trim(char *ptr, size_t *len) { - size_t len = strlen(ptr); - - if (!len) + if (!*len) return; - if (ptr[len - 1] == '\n') - ptr[len - 1] = '\0'; + if (ptr[*len - 1] == '\n') { + ptr[*len - 1] = '\0'; + (*len)--; + } } static void check_file(struct val *got, const char *exp, bool raw) @@ -59,34 +59,21 @@ str_putref(dumped); } -void test(const char *ifname, void *_in, size_t ilen, const char *iext, - const char *ofname, void *_out, size_t olen, const char *oext) +void test(const char *ifname, void *in, size_t ilen, const char *iext, + const char *ofname, void *out, size_t olen, const char *oext) { struct val *lv; - char *out; - char *in; - in = strdup(_in); - if (!in) - fail("failed to duplicate input buffer"); + trim(in, &ilen); + trim(out, &olen); - out = strdup(_out); - if (!out) - fail("failed to duplicate output buffer"); + fprintf(stderr, "input : %s\n", (char *) in); - trim(in); - trim(out); - - fprintf(stderr, "input : %s\n", in); - - lv = sexpr_parse(in, strlen(in)); + lv = sexpr_parse(in, ilen); if (IS_ERR(lv)) fail("failed to parse input: %s", xstrerror(PTR_ERR(lv))); check_file(lv, out, !strcmp(oext, "raw")); val_putref(lv); - - free(in); - free(out); }