btrfs-progs: tests: Allow check test to repair in lowmem mode for certain errors
Since lowmem mode can repair certain corruptions (mostly in fs tree), insert a beacon into each fsck test cases to allow some of them be tested in lowmem mode. With this patch, fsck option override will check the beacon file ".lowmem_repairable" in the same directory of the test image, and if the beacon exists, then it will also run lowmem mode repair to repair the image. Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
63edc91441
commit
eca65a8977
|
@ -14,11 +14,24 @@ fi
|
||||||
# gets arguments of a current command and can decide if the argument insertion
|
# gets arguments of a current command and can decide if the argument insertion
|
||||||
# should happen, eg. if some option combination does not make sense or would
|
# should happen, eg. if some option combination does not make sense or would
|
||||||
# break tests
|
# break tests
|
||||||
|
#
|
||||||
|
# Return 0 if we need to skip option override
|
||||||
|
# Return 1 if we don't need to skip option override
|
||||||
_skip_spec()
|
_skip_spec()
|
||||||
{
|
{
|
||||||
|
local beacon
|
||||||
|
|
||||||
|
beacon=.lowmem_repairable
|
||||||
|
|
||||||
|
# For lowmem repair, only support fs tree repair for now
|
||||||
|
# So we place lowmem repair beacon in the same dir of the test case
|
||||||
if echo "$TEST_ARGS_CHECK" | grep -q 'mode=lowmem' &&
|
if echo "$TEST_ARGS_CHECK" | grep -q 'mode=lowmem' &&
|
||||||
echo "$@" | grep -q -- '--repair'; then
|
echo "$@" | grep -q -- '--repair'; then
|
||||||
return 0
|
dir="$(dirname ${@: -1})"
|
||||||
|
if [ -f ${dir}/${beacon} ]; then
|
||||||
|
return 1;
|
||||||
|
fi
|
||||||
|
return 0;
|
||||||
fi
|
fi
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue