New upstream version 18.11-rc4
[deb_dpdk.git] / test / test / test_eal_flags.c
index 3a99076..2acab9d 100644 (file)
@@ -951,10 +951,15 @@ test_file_prefix(void)
         * 2. try to run secondary process without a corresponding primary process
         * (while failing to run, it will also remove any unused hugepage files)
         * 3. check if current process hugefiles are still in place and are locked
-        * 4. run a primary process with memtest1 prefix
-        * 5. check if memtest1 hugefiles are created
-        * 6. run a primary process with memtest2 prefix
-        * 7. check that only memtest2 hugefiles are present in the hugedir
+        * 4. run a primary process with memtest1 prefix in default and legacy
+        *    mem mode
+        * 5. check if memtest1 hugefiles are created in case of legacy mem
+        *    mode, and deleted in case of default mem mode
+        * 6. run a primary process with memtest2 prefix in default and legacy
+        *    mem modes
+        * 7. check that memtest2 hugefiles are present in the hugedir after a
+        *    run in legacy mode, and not present at all after run in default
+        *    mem mode
         */
        char prefix[PATH_MAX] = "";
 
@@ -971,13 +976,23 @@ test_file_prefix(void)
        const char *argv0[] = {prgname, mp_flag, "-c", "1", "-n", "2", "-m", DEFAULT_MEM_SIZE,
                        "--file-prefix=" memtest };
 
-       /* primary process with memtest1 */
-       const char *argv1[] = {prgname, "-c", "1", "-n", "2", "-m", DEFAULT_MEM_SIZE,
-                               "--file-prefix=" memtest1 };
+       /* primary process with memtest1 and default mem mode */
+       const char *argv1[] = {prgname, "-c", "1", "-n", "2", "-m",
+                       DEFAULT_MEM_SIZE, "--file-prefix=" memtest1 };
 
-       /* primary process with memtest2 */
-       const char *argv2[] = {prgname, "-c", "1", "-n", "2", "-m", DEFAULT_MEM_SIZE,
-                               "--file-prefix=" memtest2 };
+       /* primary process with memtest1 and legacy mem mode */
+       const char *argv2[] = {prgname, "-c", "1", "-n", "2", "-m",
+                       DEFAULT_MEM_SIZE, "--file-prefix=" memtest1,
+                       "--legacy-mem" };
+
+       /* primary process with memtest2 and legacy mem mode */
+       const char *argv3[] = {prgname, "-c", "1", "-n", "2", "-m",
+                       DEFAULT_MEM_SIZE, "--file-prefix=" memtest2,
+                       "--legacy-mem" };
+
+       /* primary process with memtest2 and default mem mode */
+       const char *argv4[] = {prgname, "-c", "1", "-n", "2", "-m",
+                       DEFAULT_MEM_SIZE, "--file-prefix=" memtest2 };
 
        /* check if files for current prefix are present */
        if (process_hugefiles(prefix, HUGEPAGE_CHECK_EXISTS) != 1) {
@@ -1024,31 +1039,78 @@ test_file_prefix(void)
                return -1;
        }
 
+       /* we're running this process in default memory mode, which means it
+        * should clean up after itself on exit and leave no hugepages behind.
+        */
        if (launch_proc(argv1) != 0) {
-               printf("Error - failed to run with --file-prefix=%s\n", memtest);
+               printf("Error - failed to run with --file-prefix=%s\n",
+                               memtest1);
                return -1;
        }
 
        /* check if memtest1_map0 is present */
-       if (process_hugefiles(memtest1, HUGEPAGE_CHECK_EXISTS) != 1) {
-               printf("Error - hugepage files for %s were not created!\n", memtest1);
+       if (process_hugefiles(memtest1, HUGEPAGE_CHECK_EXISTS) != 0) {
+               printf("Error - hugepage files for %s were not deleted!\n",
+                               memtest1);
                return -1;
        }
 
+       /* now, we're running a process under the same prefix, but with legacy
+        * mem mode - this should leave behind hugepage files.
+        */
        if (launch_proc(argv2) != 0) {
-               printf("Error - failed to run with --file-prefix=%s\n", memtest2);
+               printf("Error - failed to run with --file-prefix=%s\n",
+                               memtest1);
+               return -1;
+       }
+
+       /* check if memtest1_map0 is present */
+       if (process_hugefiles(memtest1, HUGEPAGE_CHECK_EXISTS) != 1) {
+               printf("Error - hugepage files for %s were not created!\n",
+                               memtest1);
+               return -1;
+       }
+
+       if (launch_proc(argv3) != 0) {
+               printf("Error - failed to run with --file-prefix=%s\n",
+                               memtest2);
                return -1;
        }
 
        /* check if hugefiles for memtest2 are present */
        if (process_hugefiles(memtest2, HUGEPAGE_CHECK_EXISTS) != 1) {
-               printf("Error - hugepage files for %s were not created!\n", memtest2);
+               printf("Error - hugepage files for %s were not created!\n",
+                               memtest2);
+               return -1;
+       }
+
+       /* check if hugefiles for memtest1 are present */
+       if (process_hugefiles(memtest1, HUGEPAGE_CHECK_EXISTS) != 0) {
+               printf("Error - hugepage files for %s were not deleted!\n",
+                               memtest1);
+               return -1;
+       }
+
+       /* this process will run in default mem mode, so it should not leave any
+        * hugepage files behind.
+        */
+       if (launch_proc(argv4) != 0) {
+               printf("Error - failed to run with --file-prefix=%s\n",
+                               memtest2);
+               return -1;
+       }
+
+       /* check if hugefiles for memtest2 are present */
+       if (process_hugefiles(memtest2, HUGEPAGE_CHECK_EXISTS) != 0) {
+               printf("Error - hugepage files for %s were not deleted!\n",
+                               memtest2);
                return -1;
        }
 
        /* check if hugefiles for memtest1 are present */
        if (process_hugefiles(memtest1, HUGEPAGE_CHECK_EXISTS) != 0) {
-               printf("Error - hugepage files for %s were not deleted!\n", memtest1);
+               printf("Error - hugepage files for %s were not deleted!\n",
+                               memtest1);
                return -1;
        }