app/test: fix and separate --vdev unit test
authorPablo de Lara <pablo.de.lara.guarch@intel.com>
Tue, 1 Jul 2014 16:13:57 +0000 (17:13 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Tue, 1 Jul 2014 18:48:20 +0000 (20:48 +0200)
In EAL flags unit test, vdev test was being included
(and broken) in whitelist test. It has been separated
in different test and fixed, by calling another
primary process, instead of a secondary one.

Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Thomas Monjalon <thomas.monjalon@6wind.com>
app/test/test.c
app/test/test_eal_flags.c

index 516829d..a41e43d 100644 (file)
@@ -86,6 +86,7 @@ do_recursive_call(void)
                        { "test_no_hpet_flag", no_action },
                        { "test_whitelist_flag", no_action },
                        { "test_invalid_b_flag", no_action },
+                       { "test_invalid_vdev_flag", no_action },
                        { "test_invalid_r_flag", no_action },
 #ifdef RTE_LIBRTE_XEN_DOM0
                        { "test_dom0_misc_flags", no_action },
index 1b80b80..729d4ee 100644 (file)
@@ -317,9 +317,6 @@ test_whitelist_flag(void)
        const char *wlval3[] = {prgname, prefix, mp_flag, "-n", "1", "-c", "1",
                        pci_whitelist, "09:0B.3,type=test",
                        pci_whitelist, "08:00.1,type=normal",
-#ifdef RTE_LIBRTE_PMD_RING
-                       vdev, "eth_ring,arg=test",
-#endif
        };
 
        for (i = 0; i < sizeof(wlinval) / sizeof(wlinval[0]); i++) {
@@ -391,6 +388,53 @@ test_invalid_b_flag(void)
        return 0;
 }
 
+/*
+ *  Test that the app doesn't run with invalid vdev option.
+ *  Final test ensures it does run with valid options as sanity check
+ */
+#ifdef RTE_LIBRTE_PMD_RING
+static int
+test_invalid_vdev_flag(void)
+{
+       /* Test with invalid vdev option */
+       const char *vdevinval[] = {prgname, "--file-prefix=vdev","-n", "1",
+                               "-c", "1", vdev, "eth_dummy"};
+
+       /* Test with valid vdev option */
+       const char *vdevval1[] = {prgname, "--file-prefix=vdev", "-n", "1",
+       "-c", "1", vdev, "eth_ring0"};
+
+       const char *vdevval2[] = {prgname, "--file-prefix=vdev", "-n", "1",
+       "-c", "1", vdev, "eth_ring0,args=test"};
+
+       const char *vdevval3[] = {prgname, "--file-prefix=vdev", "-n", "1",
+       "-c", "1", vdev, "eth_ring0,nodeaction=r1:0:CREATE"};
+
+       if (launch_proc(vdevinval) == 0) {
+               printf("Error - process did run ok with invalid "
+                       "vdev parameter\n");
+               return -1;
+       }
+
+       if (launch_proc(vdevval1) != 0) {
+               printf("Error - process did not run ok with valid vdev value\n");
+               return -1;
+       }
+
+       if (launch_proc(vdevval2) != 0) {
+               printf("Error - process did not run ok with valid vdev value,"
+                       "with dummy args\n");
+               return -1;
+       }
+
+       if (launch_proc(vdevval3) != 0) {
+               printf("Error - process did not run ok with valid vdev value,"
+                       "with valid args\n");
+               return -1;
+       }
+       return 0;
+}
+#endif
 
 /*
  * Test that the app doesn't run with invalid -r option.
@@ -1201,6 +1245,13 @@ test_eal_flags(void)
                return ret;
        }
 
+#ifdef RTE_LIBRTE_PMD_RING
+       ret = test_invalid_vdev_flag();
+       if (ret < 0) {
+               printf("Error in test_invalid_vdev_flag()\n");
+               return ret;
+       }
+#endif
        ret = test_invalid_r_flag();
        if (ret < 0) {
                printf("Error in test_invalid_r_flag()\n");