btrfs-progs: check: Fix lowmem mode override to allow it skip repair work
authorLu Fengqi <lufq.fnst@cn.fujitsu.com>
Tue, 21 Feb 2017 08:34:37 +0000 (16:34 +0800)
committerDavid Sterba <dsterba@suse.com>
Wed, 8 Mar 2017 12:00:49 +0000 (13:00 +0100)
Current common.local doesn't handle lowmem mode well.
It passes "--mode=lowmem" alone with "--repair", making it unable to
check lowmem mode.

It's caused by the following bugs:

1) Wrong variable in test/common.local
   We should check TEST_ARGS_CHECK, not TEST_CHECK, which is not defined
   so we never return 1.

2) Wrong parameter passed to _cmd_spec() in test/common
   This prevents us from grepping the correct parameters.

Fix it.

Signed-off-by: Lu Fengqi <lufq.fnst@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
tests/common
tests/common.local

index 51c2e26..7ad436e 100644 (file)
@@ -106,7 +106,7 @@ run_check()
        ins=$(_get_spec_ins "$@")
        spec=$(($ins-1))
        cmd=$(eval echo "\${$spec}")
-       spec=$(_cmd_spec "$cmd")
+       spec=$(_cmd_spec "${@:$spec}")
        set -- "${@:1:$(($ins-1))}" $spec "${@: $ins}"
        echo "############### $@" >> "$RESULTS" 2>&1
        if [[ $TEST_LOG =~ tty ]]; then echo "CMD: $@" > /dev/tty; fi
@@ -128,7 +128,7 @@ run_check_stdout()
        ins=$(_get_spec_ins "$@")
        spec=$(($ins-1))
        cmd=$(eval echo "\${$spec}")
-       spec=$(_cmd_spec "$cmd")
+       spec=$(_cmd_spec "${@:$spec}")
        set -- "${@:1:$(($ins-1))}" $spec "${@: $ins}"
        echo "############### $@" >> "$RESULTS" 2>&1
        if [[ $TEST_LOG =~ tty ]]; then echo "CMD(stdout): $@" > /dev/tty; fi
@@ -152,7 +152,7 @@ run_mayfail()
        ins=$(_get_spec_ins "$@")
        spec=$(($ins-1))
        cmd=$(eval echo "\${$spec}")
-       spec=$(_cmd_spec "$cmd")
+       spec=$(_cmd_spec "${@:$spec}")
        set -- "${@:1:$(($ins-1))}" $spec "${@: $ins}"
        echo "############### $@" >> "$RESULTS" 2>&1
        if [[ $TEST_LOG =~ tty ]]; then echo "CMD(mayfail): $@" > /dev/tty; fi
@@ -188,7 +188,7 @@ run_mustfail()
        ins=$(_get_spec_ins "$@")
        spec=$(($ins-1))
        cmd=$(eval echo "\${$spec}")
-       spec=$(_cmd_spec "$cmd")
+       spec=$(_cmd_spec "${@:$spec}")
        set -- "${@:1:$(($ins-1))}" $spec "${@: $ins}"
        echo "############### $@" >> "$RESULTS" 2>&1
        if [[ $TEST_LOG =~ tty ]]; then echo "CMD(mustfail): $@" > /dev/tty; fi
index 9f567c2..4f56bb0 100644 (file)
@@ -17,7 +17,7 @@ TEST_ARGS_CHECK=--mode=lowmem
 # break tests
 _skip_spec()
 {
-       if echo "$TEST_CHECK" | grep -q 'mode=lowmem' &&
+       if echo "$TEST_ARGS_CHECK" | grep -q 'mode=lowmem' &&
           echo "$@" | grep -q -- '--repair'; then
                return 0
        fi