xfstests: fix src/seek_sanity_test -t option
authorEric Sandeen <sandeen@redhat.com>
Tue, 28 May 2013 15:37:39 +0000 (10:37 -0500)
committerRich Johnston <rjohnston@sgi.com>
Tue, 28 May 2013 15:37:39 +0000 (10:37 -0500)
_require_seek_data_hole() does not work because
the -t (test) option of seek_sanity_test is broken,
because of an early check for (argc != 2):

# src/seek_sanity_test -t foo
Usage: src/seek_sanity_test base_file_path

So _require_seek_data_hole() doesn't see the
"Kernel does not support" string it's looking for,
and passes the check.

So rather than _notrun-ing the test, it proceeds to
fail with noisy errors.

Fix that, make a common usage() function, and check for
too many args as well.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Jie Liu <jeff.liu@oracle.com>
Reviewed-by: Zheng Liu <wenqing.lz@taobao.com>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
src/seek_sanity_test.c

index 4275a846737b1b27064a2dcaa940730d01c969c0..eec690360d444a7c9d56ad82d9e6169ed49d446a 100644 (file)
@@ -656,6 +656,12 @@ out:
        return ret;
 }
 
+void usage(char *cmd)
+{
+       fprintf(stdout, "Usage: %s [-t] base_file_path\n", cmd);
+       exit(1);
+}
+
 int main(int argc, char **argv)
 {
        int ret = -1;
@@ -664,23 +670,20 @@ int main(int argc, char **argv)
        int check_support = 0;
        int numtests = sizeof(seek_tests) / sizeof(struct testrec);
 
-       if (argc != 2) {
-               fprintf(stdout, "Usage: %s base_file_path\n", argv[0]);
-               return ret;
-       }
-
        while ((opt = getopt(argc, argv, "t")) != -1) {
                switch (opt) {
                case 't':
                        check_support++;
                        break;
                default:
-                       fprintf(stderr, "Usage: %s [-t] base_file_path\n",
-                               argv[0]);
-                       return ret;
+                       usage(argv[0]);
                }
        }
 
+       /* should be exactly one arg left, the filename */
+       if (optind != argc - 1)
+               usage(argv[0]);
+
        base_file_path = (char *)strdup(argv[optind]);
 
        ret = test_basic_support();