fstests: _require_chattr() must get an input arg
authorAmir Goldstein <amir73il@gmail.com>
Thu, 6 Apr 2017 05:49:18 +0000 (08:49 +0300)
committerEryu Guan <eguan@redhat.com>
Fri, 7 Apr 2017 05:11:56 +0000 (13:11 +0800)
_require_chattr() was never intended to be called without an input
argument (specifiying the required attribute to set).

However, calling it without input arguments did work and error
was silently discarded into full test output.

Fix the function to abort on missing input argument and fix the
only test that called _require_chattr() with no input argument.

Signed-off-by: Amir Goldstein <amir73il@gmail.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
common/rc
tests/overlay/027

index e1ab2c6779739951290ecbc5b1b693552bf8dece..ae3add319ae7d8bdf52ce9def89f5803ac54cbfe 100644 (file)
--- a/common/rc
+++ b/common/rc
@@ -3134,18 +3134,21 @@ _require_test_lsattr()
 
 _require_chattr()
 {
-    attribute=$1
-
-    touch $TEST_DIR/syscalltest
-    chattr "+$attribute" $TEST_DIR/syscalltest > $TEST_DIR/syscalltest.out 2>&1
-    status=$?
-    chattr "-$attribute" $TEST_DIR/syscalltest > $TEST_DIR/syscalltest.out 2>&1
-    if [ "$status" -ne 0 ]; then
-      _notrun "file system doesn't support chattr +$attribute"
-    fi
-    cat $TEST_DIR/syscalltest.out >> $seqres.full
+       if [ -z "$1" ]; then
+               echo "Usage: _require_chattr <attr>"
+               exit 1
+       fi
+       local attribute=$1
 
-    rm -f $TEST_DIR/syscalltest.out
+       touch $TEST_DIR/syscalltest
+       chattr "+$attribute" $TEST_DIR/syscalltest > $TEST_DIR/syscalltest.out 2>&1
+       status=$?
+       chattr "-$attribute" $TEST_DIR/syscalltest > $TEST_DIR/syscalltest.out 2>&1
+       if [ "$status" -ne 0 ]; then
+               _notrun "file system doesn't support chattr +$attribute"
+       fi
+       cat $TEST_DIR/syscalltest.out >> $seqres.full
+       rm -f $TEST_DIR/syscalltest.out
 }
 
 _get_total_inode()
index 10111b7e36ce444e6b5b55484a212ad72c5f9b16..90da4e74a5497a11215b0152b6b76a4fc6e8c0c4 100755 (executable)
@@ -57,7 +57,7 @@ rm -f $seqres.full
 _supported_fs overlay
 _supported_os Linux
 _require_scratch
-_require_chattr
+_require_chattr i
 
 # Remove all files from previous tests
 _scratch_mkfs