check: source common/rc again if TEST_DEV was recreated
authorEryu Guan <eguan@redhat.com>
Fri, 4 Dec 2020 10:43:53 +0000 (16:13 +0530)
committerEryu Guan <guaneryu@gmail.com>
Sun, 6 Dec 2020 14:15:08 +0000 (22:15 +0800)
If TEST_DEV is recreated by check, FSTYP derived from TEST_DEV
previously could be changed too and might not reflect the reality.
So source common/rc again with correct FSTYP to get fs-specific
configs, e.g. common/xfs.

For example, using this config-section config file, and run section
ext4 first then xfs, you can see:

our local _scratch_mkfs routine ...
./common/rc: line 825: _scratch_mkfs_xfs: command not found
check: failed to mkfs $SCRATCH_DEV using specified options

local.config:
[default]
RECREATE_TEST_DEV=true
TEST_DEV=/dev/sda5
SCRATCH_DEV=/dev/sda6
TEST_DIR=/mnt/test
SCRATCH_MNT=/mnt/scratch

[ext4]
MKFS_OPTIONS="-b 4096"
FSTYP=ext4

[xfs]
FSTYP=xfs
MKFS_OPTIONS="-f -b size=4k"

Tested-by: Ritesh Harjani <riteshh@linux.ibm.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Ritesh Harjani <riteshh@linux.ibm.com>
check

diff --git a/check b/check
index 83f6fc8..c6ad1d6 100755 (executable)
--- a/check
+++ b/check
@@ -630,6 +630,10 @@ function run_section()
                        status=1
                        exit
                fi
+               # TEST_DEV has been recreated, previous FSTYP derived from
+               # TEST_DEV could be changed, source common/rc again with
+               # correct FSTYP to get FSTYP specific configs, e.g. common/xfs
+               . common/rc
                _prepare_test_list
        elif [ "$OLD_TEST_FS_MOUNT_OPTS" != "$TEST_FS_MOUNT_OPTS" ]; then
                _test_unmount 2> /dev/null