[PATCH 06/24] xfs: wrap xfs_db calls to the test device

Darrick J. Wong
2020-09-15T01:43:41Z

From: Darrick J. Wong <darrick.wong@oracle.com>

Create a _test_xfs_db analogue to _scratch_xfs_db so that we can
encapsulate whatever strange test fs options were fed to us by the test
runner.

Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
---
common/xfs | 13 +++++++++++++
tests/xfs/003 | 14 +++++++-------
tests/xfs/016 | 4 ++--
tests/xfs/045 | 2 +-
4 files changed, 23 insertions(+), 10 deletions(-)

diff --git a/common/xfs b/common/xfs
index d9a9784f..eab5e292 100644
--- a/common/xfs
+++ b/common/xfs
@@ -218,6 +218,19 @@ _scratch_xfs_db()
$XFS_DB_PROG "$@" $(_scratch_xfs_db_options)
}

+_test_xfs_db_options()
+{
+ TEST_OPTIONS=""
+ [ "$USE_EXTERNAL" = yes -a ! -z "$TEST_LOGDEV" ] && \
+ TEST_OPTIONS="-l$TEST_LOGDEV"
+ echo $TEST_OPTIONS $* $TEST_DEV
+}
+
+_test_xfs_db()
+{
+ $XFS_DB_PROG "$@" $(_test_xfs_db_options)
+}
+
_scratch_xfs_admin()
{
local options=("$SCRATCH_DEV")
diff --git a/tests/xfs/003 b/tests/xfs/003
index 1ce3e5ce..736bf206 100755
--- a/tests/xfs/003
+++ b/tests/xfs/003
@@ -38,32 +38,32 @@ test_done()
# real QA test starts here

echo "=== TEST 1 ==="
-xfs_db -r -c 'pop' -c 'type sb' $TEST_DEV
+_test_xfs_db -r -c 'pop' -c 'type sb'
test_done

echo "=== TEST 2 ==="
-xfs_db -r -c 'push sb' $TEST_DEV
+_test_xfs_db -r -c 'push sb'
test_done

echo "=== TEST 3 ==="
-xfs_db -r -c 'pop' -c 'push sb' $TEST_DEV
+_test_xfs_db -r -c 'pop' -c 'push sb'
test_done

echo "=== TEST 4 ==="
-xfs_db -r -c 'type sb' -c 'print' $TEST_DEV
+_test_xfs_db -r -c 'type sb' -c 'print'
test_done

echo "=== TEST 5 ==="
-xfs_db -r -c 'inode 128' -c 'push' -c 'type' $TEST_DEV >$tmp.out 2>&1
+_test_xfs_db -r -c 'inode 128' -c 'push' -c 'type' >$tmp.out 2>&1
test_done
if ! grep -q "current type is \"inode\"" $tmp.out; then
cat $tmp.out
fi

echo "=== TEST 6 ==="
-xfs_db -r -c 'sb' -c 'a' $TEST_DEV >$tmp.out 2>&1 # don't care about output
+_test_xfs_db -r -c 'sb' -c 'a' >$tmp.out 2>&1 # don't care about output
test_done

echo "=== TEST 7 ==="
-xfs_db -r -c 'ring' $TEST_DEV
+_test_xfs_db -r -c 'ring'
test_done
diff --git a/tests/xfs/016 b/tests/xfs/016
index 2b41127e..e1b1b6b8 100755
--- a/tests/xfs/016
+++ b/tests/xfs/016
@@ -149,7 +149,7 @@ _log_sunit()

_after_log()
{
- xfs_db -r $1 -c "sb" -c "print" | $AWK_PROG '
+ _scratch_xfs_db -r -c "sb" -c "print" | $AWK_PROG '
/logstart/ { logstart = $3 }
/logblocks/ { logblocks = $3 }
END {
@@ -163,7 +163,7 @@ _check_corrupt()
f="c6c6c6c6"
echo "*** check for corruption"
echo "expect $f..." >>$seqres.full
- xfs_db -r -c "fsblock $2" -c "print" $1 | head | tee -a $seqres.full | \
+ _scratch_xfs_db -r -c "fsblock $2" -c "print" | head | tee -a $seqres.full | \
grep -q -v "$f $f $f $f $f $f $f $f" && \
_fail "!!! block $2 corrupted!"
}
diff --git a/tests/xfs/045 b/tests/xfs/045
index 0c9e1b79..6a44da56 100755
--- a/tests/xfs/045
+++ b/tests/xfs/045
@@ -21,7 +21,7 @@ trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15

_get_existing_uuid()
{
- xfs_db -r $TEST_DEV -c "uuid" | $AWK_PROG '/^UUID/ { print $3 }'
+ _test_xfs_db -r -c "uuid" | $AWK_PROG '/^UUID/ { print $3 }'
}

# real QA test starts here