The test_valid_kvargs() function is too long to understand, extract
the basic token count tests as one stand-alone testcase.

Signed-off-by: Chengwen Feng <fengcheng...@huawei.com>
---
 app/test/test_kvargs.c | 120 ++++++++++++++++-------------------------
 1 file changed, 45 insertions(+), 75 deletions(-)

diff --git a/app/test/test_kvargs.c b/app/test/test_kvargs.c
index 9aeb9aa0aa..a27b2aabfb 100644
--- a/app/test/test_kvargs.c
+++ b/app/test/test_kvargs.c
@@ -36,25 +36,6 @@ static int check_handler(const char *key, const char *value,
        return 0;
 }
 
-/* test parsing. */
-static int test_kvargs_parsing(const char *args, unsigned int n)
-{
-       struct rte_kvargs *kvlist;
-
-       kvlist = rte_kvargs_parse(args, NULL);
-       if (kvlist == NULL) {
-               printf("rte_kvargs_parse() error: %s\n", args);
-               return -1;
-       }
-       if (kvlist->count != n) {
-               printf("invalid count value %d: %s\n", kvlist->count, args);
-               rte_kvargs_free(kvlist);
-               return -1;
-       }
-       rte_kvargs_free(kvlist);
-       return 0;
-}
-
 /* test a valid case */
 static int test_valid_kvargs(void)
 {
@@ -62,29 +43,6 @@ static int test_valid_kvargs(void)
        const char *args;
        const char *valid_keys_list[] = { "foo", "check", NULL };
        const char **valid_keys;
-       static const struct {
-               unsigned int expected;
-               const char *input;
-       } valid_inputs[] = {
-               { 2, "foo=1,foo=" },
-               { 2, "foo=1,foo=" },
-               { 2, "foo=1,foo" },
-               { 2, "foo=1,=2" },
-               { 1, "foo=[1,2" },
-               { 1, ",=" },
-               { 1, "foo=[" },
-       };
-       unsigned int i;
-
-       /* empty args is valid */
-       args = "";
-       valid_keys = NULL;
-       kvlist = rte_kvargs_parse(args, valid_keys);
-       if (kvlist == NULL) {
-               printf("rte_kvargs_parse() error");
-               goto fail;
-       }
-       rte_kvargs_free(kvlist);
 
        /* first test without valid_keys */
        args = "foo=1234,check=value0,check=value1";
@@ -128,14 +86,6 @@ static int test_valid_kvargs(void)
                rte_kvargs_free(kvlist);
                goto fail;
        }
-       /* count all entries */
-       count = rte_kvargs_count(kvlist, NULL);
-       if (count != 3) {
-               printf("invalid count value %d after rte_kvargs_count(NULL)\n",
-                       count);
-               rte_kvargs_free(kvlist);
-               goto fail;
-       }
        /* count all entries with key="nonexistent_key" */
        count = rte_kvargs_count(kvlist, "nonexistent_key");
        if (count != 0) {
@@ -190,19 +140,6 @@ static int test_valid_kvargs(void)
        }
        rte_kvargs_free(kvlist);
 
-       /* test using empty string (it is valid) */
-       args = "";
-       kvlist = rte_kvargs_parse(args, NULL);
-       if (kvlist == NULL) {
-               printf("rte_kvargs_parse() error\n");
-               goto fail;
-       }
-       if (rte_kvargs_count(kvlist, NULL) != 0) {
-               printf("invalid count value\n");
-               goto fail;
-       }
-       rte_kvargs_free(kvlist);
-
        /* test using empty elements (it is valid) */
        args = "foo=1,,check=value2,,";
        kvlist = rte_kvargs_parse(args, NULL);
@@ -210,10 +147,6 @@ static int test_valid_kvargs(void)
                printf("rte_kvargs_parse() error\n");
                goto fail;
        }
-       if (rte_kvargs_count(kvlist, NULL) != 2) {
-               printf("invalid count value\n");
-               goto fail;
-       }
        if (rte_kvargs_count(kvlist, "foo") != 1) {
                printf("invalid count value for 'foo'\n");
                goto fail;
@@ -224,14 +157,6 @@ static int test_valid_kvargs(void)
        }
        rte_kvargs_free(kvlist);
 
-       valid_keys = NULL;
-
-       for (i = 0; i < RTE_DIM(valid_inputs); ++i) {
-               args = valid_inputs[i].input;
-               if (test_kvargs_parsing(args, valid_inputs[i].expected))
-                       goto fail;
-       }
-
        return 0;
 
  fail:
@@ -246,6 +171,50 @@ static int test_valid_kvargs(void)
        return -1;
 }
 
+static int
+test_basic_token_count(void)
+{
+       static const struct {
+               unsigned int expected;
+               const char *input;
+       } valid_inputs[] = {
+               { 3, "foo=1,check=1,check=2" },
+               { 3, "foo=1,check,check=2"   },
+               { 2, "foo=1,foo="            },
+               { 2, "foo=1,foo="            },
+               { 2, "foo=1,foo"             },
+               { 2, "foo=1,=2"              },
+               { 2, "foo=1,,foo=2,,"        },
+               { 1, "foo=[1,2"              },
+               { 1, ",="                    },
+               { 1, "foo=["                 },
+               { 0, ""                      },
+       };
+       struct rte_kvargs *kvlist;
+       unsigned int count;
+       const char *args;
+       unsigned int i;
+
+       for (i = 0; i < RTE_DIM(valid_inputs); i++) {
+               args = valid_inputs[i].input;
+               kvlist = rte_kvargs_parse(args, NULL);
+               if (kvlist == NULL) {
+                       printf("rte_kvargs_parse() error: %s\n", args);
+                       return -1;
+               }
+               count = rte_kvargs_count(kvlist, NULL);
+               if (count != valid_inputs[i].expected) {
+                       printf("invalid count value %u (expected %u): %s\n",
+                              count, valid_inputs[i].expected, args);
+                       rte_kvargs_free(kvlist);
+                       return -1;
+               }
+               rte_kvargs_free(kvlist);
+       }
+
+       return 0;
+}
+
 /* test several error cases */
 static int test_invalid_kvargs(void)
 {
@@ -287,6 +256,7 @@ static struct unit_test_suite kvargs_test_suite  = {
        .teardown = NULL,
        .unit_test_cases = {
                TEST_CASE(test_valid_kvargs),
+               TEST_CASE(test_basic_token_count),
                TEST_CASE(test_invalid_kvargs),
                TEST_CASES_END() /**< NULL terminate unit test array */
        }
-- 
2.17.1

Reply via email to