config: Add -s option to run only specified sections
authorLukas Czerner <lczerner@redhat.com>
Fri, 11 Apr 2014 00:19:29 +0000 (10:19 +1000)
committerDave Chinner <david@fromorbit.com>
Fri, 11 Apr 2014 00:19:29 +0000 (10:19 +1000)
This commit adds -s option which allows you to specify only certain
sections from the config file to be run. The '-s' argument can be
specified multiple times to allow multiple sections to be run.

The options are still carried between section, that includes the
sections which are not going to be run.

Update README.config-sections as well.

Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
README.config-sections
check

index 2849fd55757b8acb056be8f4e7637fc758708f95..865ca9324ddaaf52ab1d54ff7a72a195205b16e0 100644 (file)
@@ -57,6 +57,36 @@ system.
 
 You can also force the file system recreation by specifying RECREATE_TEST_DEV.
 
+Run specified section only
+--------------------------
+
+Specifying '-s' argument with section name will run only the section
+specified. The '-s' argument can be specified multiple times to allow multiple
+sections to be run.
+
+The options are still carried between section, that includes the sections
+which are not going to be run. So you can do something like
+
+[ext4]
+TEST_DEV=/dev/sda1
+TEST_DIR=/mnt/test
+SCRATCH_DEV=/dev/sdb1
+SCRATCH_MNT=/mnt/test1
+FSTYP=ext4
+
+[xfs]
+FSTYP=xfs
+
+[btrfs]
+FSTYP=btrfs
+
+
+and run
+
+./check -s xfs -s btrfs
+
+to check xfs and btrfs only. All the devices and mounts are still going to
+be parsed from the section [ext4].
 
 Example
 -------
diff --git a/check b/check
index 09d753b52ae13a8cb658ed899cb80d3f98a41c57..e7ace63d8f0c397bb5bd377343b05e05b787e222 100755 (executable)
--- a/check
+++ b/check
@@ -75,6 +75,7 @@ check options
     -T                 output timestamps
     -r                 randomize test order
     --large-fs         optimise scratch device for large filesystems
+    -s section         run only specified section from config file
 
 testlist options
     -g group[,group...]        include tests from these groups
@@ -221,7 +222,7 @@ while [ $# -gt 0 ]; do
                        done
                done
                ;;
-
+       -s)     RUN_SECTION="$RUN_SECTION $2"; shift ;;
        -l)     diff="diff" ;;
        -udiff) diff="$diff -u" ;;
 
@@ -389,6 +390,19 @@ for section in $HOST_OPTIONS_SECTIONS; do
        OLD_MOUNT_OPTIONS=$MOUNT_OPTIONS
        get_next_config $section
 
+       # Do we need to run only some sections ?
+       if [ ! -z "$RUN_SECTION" ]; then
+               skip=true
+               for s in $RUN_SECTION; do
+                       if [ $section == $s ]; then
+                               skip=false
+                       fi
+               done
+               if $skip; then
+                       continue
+               fi
+       fi
+
        mkdir -p $RESULT_BASE
        if [ ! -d $RESULT_BASE ]; then
                echo "failed to create results directory $RESULT_BASE"