static void usage(void)
{
- printf("Usage: mmap_sanity -d dir [-m dir2]\n");
- printf(" dir lustre mount point\n");
- printf(" dir2 another mount point\n");
+ printf("Usage: mmap_sanity -d dir [-m dir2] [-e <test cases>]\n");
+ printf(" -d dir lustre mount point\n");
+ printf(" -m dir2 another mount point\n");
+ printf(" -e testcases skipped test cases, -e 1 -e 2 to exclude"
+ " test cases 1 and 2.\n");
exit(127);
}
char *desc; /* test description */
int (*test_fn)(char *mnt); /* test function */
int node_cnt; /* node count */
+ int skipped; /* skipped by caller */
};
struct test_case tests[] = {
int main(int argc, char **argv)
{
- struct test_case *test;
- int c, rc = 0;
-
- while ((c = getopt(argc, argv, "d:m:")) != -1) {
- switch (c) {
- case 'd':
- dir = optarg;
- break;
- case 'm':
- dir2 = optarg;
- break;
- default:
- usage();
- break;
- }
- }
+ struct test_case *test;
+ int nr_cases = sizeof(tests)/sizeof(*test);
+ int c, rc = 0;
+
+ while ((c = getopt(argc, argv, "d:m:e:")) != -1) {
+ switch (c) {
+ case 'd':
+ dir = optarg;
+ break;
+ case 'm':
+ dir2 = optarg;
+ break;
+ case 'e': {
+ char *endptr = NULL;
+ rc = strtol(optarg, &endptr, 10);
+ if (endptr != NULL && *endptr != '\0')
+ usage();
+ if (rc > 0 && rc < nr_cases)
+ tests[rc - 1].skipped = 1;
+ break;
+ }
+ default:
+ usage();
+ break;
+ }
+ }
- if (dir == NULL)
- usage();
+ if (dir == NULL)
+ usage();
if (mmap_initialize(argv[0]) != 0) {
fprintf(stderr, "mmap_initialize failed!\n");
return -EINVAL;
}
+ rc = 0;
for (test = tests; test->tc; test++) {
- double duration;
- char *rs;
+ double duration = 0.0;
+ char *rs = "SKIPPED";
- if (test->node_cnt == 1 || dir2 != NULL) {
+ if (!test->skipped && (test->node_cnt == 1 || dir2 != NULL)) {
struct timeval start, end;
gettimeofday(&start, NULL);
duration = (double)(end.tv_sec - start.tv_sec) +
(double)(end.tv_usec - start.tv_usec) / 1000000;
rs = rc ? "FAIL" : "PASS";
- } else {
- duration = 0.0;
- rs = "SKIP";
}
+
fprintf(stderr, "%s (%s, %.5gs)\n", test->desc, rs, duration);
if (rc)
break;
set -e
ONLY=${ONLY:-"$*"}
-# bug number for skipped test: 3192 15528/3811 16929 9977 15528/11549 18080
-ALWAYS_EXCEPT=" 14b 19 22 28 29 35 $SANITYN_EXCEPT"
+# bug number for skipped test: 3192 LU-1205 15528/3811 16929 9977 15528/11549 18080
+ALWAYS_EXCEPT=" 14b 18c 19 22 28 29 35 $SANITYN_EXCEPT"
# UPDATE THE COMMENT ABOVE WITH BUG NUMBERS WHEN CHANGING ALWAYS_EXCEPT!
# bug number for skipped test: 12652 12652
run_test 17 "resource creation/LVB creation race ==============="
test_18() {
- $LUSTRE/tests/mmap_sanity -d $MOUNT1 -m $MOUNT2
+ # turn e.g. ALWAYS_EXCEPT="18c" into "-e 3"
+ local idx
+ local excepts=
+ for idx in {a..z}; do
+ local ptr=EXCEPT_ALWAYS_18$idx
+ [ x${!ptr} = xtrue ] || continue
+
+ excepts="$excepts -e $(($(printf %d \'$idx)-96))"
+ done
+
+ $LUSTRE/tests/mmap_sanity -d $MOUNT1 -m $MOUNT2 $excepts
sync; sleep 1; sync
}
run_test 18 "mmap sanity check ================================="