Message ID | 20170105192636.GA11297@fedori (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
It's not clear from the test what's the purpose. There's one corrupted csum but the whole csum tree rebuild option is used. This is a pretty basic check that the --init-csum-tree works, so it should be mentioned somewhere in the test script. On Thu, Jan 05, 2017 at 08:26:36PM +0100, Lakshmipathi.G wrote: > Signed-off-by: Lakshmipathi.G <Lakshmipathi.G@giis.co.in> > --- > tests/fsck-tests/027-missing-data-csum/test.sh | 39 ++++++++++++++++++++++++++ > 1 file changed, 39 insertions(+) > create mode 100755 tests/fsck-tests/027-missing-data-csum/test.sh > > diff --git a/tests/fsck-tests/027-missing-data-csum/test.sh b/tests/fsck-tests/027-missing-data-csum/test.sh > new file mode 100755 > index 0000000..6d1dc97 > --- /dev/null > +++ b/tests/fsck-tests/027-missing-data-csum/test.sh > @@ -0,0 +1,39 @@ > +#!/bin/bash > + > +source $TOP/tests/common > + > +check_prereq btrfs-corrupt-block > +check_prereq mkfs.btrfs > +check_prereq btrfs > + > +setup_root_helper > +prepare_test_dev 512M > + > + > +# simulate missing csum error and repair using init-csum option > +test_csum_corruption() > +{ > + run_check $SUDO_HELPER $TOP/mkfs.btrfs -f $TEST_DEV > + > + run_check_mount_test_dev > + > + export DATASET_SIZE=1 > + generate_dataset small > + > + run_check_umount_test_dev > + > + # find bytenr > + bytenr=`$SUDO_HELPER $TOP/btrfs-debug-tree $TEST_DEV | \ Please don't use btrfs-debug-tree, it's been obsoleted by the dump-tree subcommand. And you can use the '-t csum' option to dump just the csum tree. > + grep "EXTENT_CSUM EXTENT_CSUM" | \ > + cut -f1 -d')' | awk '{print $6}'` This can be simplified to one sed command. > + > + # corrupt csum bytenr > + run_check $SUDO_HELPER $TOP/btrfs-corrupt-block -C $bytenr $TEST_DEV > + > + $SUDO_HELPER $TOP/btrfs check $TEST_DEV >& /dev/null && \ > + _fail "btrfs check failed to detect missing csum." Here we want to capture the output from 'check' for analysis in case of problems. > + run_check $SUDO_HELPER $TOP/btrfs check --repair --init-csum $TEST_DEV > + run_check $SUDO_HELPER $TOP/btrfs check $TEST_DEV > +} > + > +test_csum_corruption -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Jan 17, 2017 at 04:06:27PM +0100, David Sterba wrote: > It's not clear from the test what's the purpose. There's one corrupted > csum but the whole csum tree rebuild option is used. This is a pretty > basic check that the --init-csum-tree works, so it should be mentioned > somewhere in the test script. I'll rename directory to 027-verify-init-csum-tree instead of current one. Is it possible, to fix only the corrupted csum instead of re-building the csum-tree? > > Please don't use btrfs-debug-tree, it's been obsoleted by the dump-tree > subcommand. And you can use the '-t csum' option to dump just the csum > tree. > > This can be simplified to one sed command. > > > Here we want to capture the output from 'check' for analysis in case of > problems. > Will fix above three issues with next patch. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/tests/fsck-tests/027-missing-data-csum/test.sh b/tests/fsck-tests/027-missing-data-csum/test.sh new file mode 100755 index 0000000..6d1dc97 --- /dev/null +++ b/tests/fsck-tests/027-missing-data-csum/test.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +source $TOP/tests/common + +check_prereq btrfs-corrupt-block +check_prereq mkfs.btrfs +check_prereq btrfs + +setup_root_helper +prepare_test_dev 512M + + +# simulate missing csum error and repair using init-csum option +test_csum_corruption() +{ + run_check $SUDO_HELPER $TOP/mkfs.btrfs -f $TEST_DEV + + run_check_mount_test_dev + + export DATASET_SIZE=1 + generate_dataset small + + run_check_umount_test_dev + + # find bytenr + bytenr=`$SUDO_HELPER $TOP/btrfs-debug-tree $TEST_DEV | \ + grep "EXTENT_CSUM EXTENT_CSUM" | \ + cut -f1 -d')' | awk '{print $6}'` + + # corrupt csum bytenr + run_check $SUDO_HELPER $TOP/btrfs-corrupt-block -C $bytenr $TEST_DEV + + $SUDO_HELPER $TOP/btrfs check $TEST_DEV >& /dev/null && \ + _fail "btrfs check failed to detect missing csum." + run_check $SUDO_HELPER $TOP/btrfs check --repair --init-csum $TEST_DEV + run_check $SUDO_HELPER $TOP/btrfs check $TEST_DEV +} + +test_csum_corruption
Signed-off-by: Lakshmipathi.G <Lakshmipathi.G@giis.co.in> --- tests/fsck-tests/027-missing-data-csum/test.sh | 39 ++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 tests/fsck-tests/027-missing-data-csum/test.sh