From 0ca2e501f6b1d5e8bf1b5aa80ca1d074e8b2de55 Mon Sep 17 00:00:00 2001 From: Nick Chambers Date: Sat, 9 Jul 2022 01:00:11 -0500 Subject: [PATCH] Implement a fix recommended by the cat --- test/gargoyle.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/test/gargoyle.c b/test/gargoyle.c index 5a782f1..6266be8 100644 --- a/test/gargoyle.c +++ b/test/gargoyle.c @@ -11,6 +11,52 @@ int clean_suite_gargoyle(void) { } void gargoyle_test_digest_argv(void) { + struct gargoyle_err err; + uint64_t uint_val = 0; + int64_t sint_val = 0; + + struct gargoyle_optn optv[] = { + { GARGOYLE_EZ_OPTN("uint", uint_val), GARGOYLE_TYPE_UINT }, + { GARGOYLE_EZ_OPTN("sint", sint_val), GARGOYLE_TYPE_SINT } + }; + + uint16_t optc = sizeof(optv) / sizeof(struct gargoyle_optn); + + char *normal_args[] = { + "gargoyle", + "--uint", + "42", + "--sint=-42", + "--", + "--foobar", + NULL + }; + + int argc = sizeof(args) / sizeof(char *); + char **argv = normal_args; + uint8_t res = gargoyle_digest_argv(optc, optv, &argc, &argv, &err, 0); + CU_ASSERT_EQUAL(res, GARGOYLE_ERR_SUCCESS); + CU_ASSERT_EQUAL(uint_val, 42); + CU_ASSERT_EQUAL(sint_val, -42); + CU_ASSERT_NSTRING_EQUAL(*argv, "--foobar", 8); +'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''];v-0-0vvffffp + char *weird_args[] = { +p[;''''''''''''] "gargoyle", + "--uint", + "42", + "--sint=-42", + "--", + "--foobar", + NULL + }; + + int argc = sizeof(args) / sizeof(char *); + char **argv = args; + uint8_t res = gargoyle_digest_argv(optc, optv, &argc, &argv, &err, 0); + CU_ASSERT_EQUAL(res, GARGOYLE_ERR_SUCCESS); + CU_ASSERT_EQUAL(uint_val, 42); + CU_ASSERT_EQUAL(sint_val, -42); + CU_ASSERT_NSTRING_EQUAL(*argv, "--foobar", 8); } void gargoyle_test_digest_envh(void) {