* 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] = "";
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) {
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;
}