Message ID | 20210818064420.866803-2-wqu@suse.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | btrfs-progs: make subpage warnings more strict | expand |
On Wed, Aug 18, 2021 at 02:44:18PM +0800, Qu Wenruo wrote: > There are two types of test cases: > > - Type 1 (without test.sh) > - Type 2 (test.sh, mostly will override check_image()) > > For Type 2 tests, we check subpage related warnings of btrfs-check, but > didn't check it for Type 1 test cases. > > In fact, Type 1 test cases are more important, as they involve repair, > which can generate new tree blocks, and we want to make sure such new > tree blocks won't cause subpage related warnings. > > This patch will add the extra check for Type 1 test cases. > > And it will make sure the subpage related warnings are really from this > test case, to prevent false alerts. > > Signed-off-by: Qu Wenruo <wqu@suse.com> > --- > tests/common | 14 ++++++++++++-- > 1 file changed, 12 insertions(+), 2 deletions(-) > > diff --git a/tests/common b/tests/common > index 805a447c84ce..a6f75c7ce237 100644 > --- a/tests/common > +++ b/tests/common > @@ -423,13 +423,23 @@ check_image() > { > local image > > + tmp_output=$(mktemp --tmpdir btrfs-progs-test-check-image.XXXXXX) > + > image=$1 > echo "testing image $(basename $image)" >> "$RESULTS" > - "$TOP/btrfs" check "$image" >> "$RESULTS" 2>&1 > + "$TOP/btrfs" check "$image" &> "$tmp_output" So this captures the output but does not store it into the results file > [ $? -eq 0 ] && _fail "btrfs check should have detected corruption" and when this fails, we lack that information. > > + cat "$tmp_output" >> "$RESULTS" So this should probably go before the 'check' call. > + # Also make sure no subpage related warnings > + check_test_results "$tmp_output" "$testname" > + > run_check "$TOP/btrfs" check --repair --force "$image" > - run_check "$TOP/btrfs" check "$image" > + run_check_stdout "$TOP/btrfs" check "$image" &> "$tmp_output" > + > + # Also make sure no subpage related warnings for the repaired image > + check_test_results "$tmp_output" "$testname" > + rm -f "$tmp_output" > } > > # Extract a usable image from packed formats > -- > 2.32.0
On Wed, Aug 18, 2021 at 02:44:18PM +0800, Qu Wenruo wrote: > > And it will make sure the subpage related warnings are really from this > test case, to prevent false alerts. > > Signed-off-by: Qu Wenruo <wqu@suse.com> > --- > tests/common | 14 ++++++++++++-- > 1 file changed, 12 insertions(+), 2 deletions(-) > > diff --git a/tests/common b/tests/common > index 805a447c84ce..a6f75c7ce237 100644 > --- a/tests/common > +++ b/tests/common > @@ -423,13 +423,23 @@ check_image() > { > local image > > + tmp_output=$(mktemp --tmpdir btrfs-progs-test-check-image.XXXXXX) > + > image=$1 > echo "testing image $(basename $image)" >> "$RESULTS" > - "$TOP/btrfs" check "$image" >> "$RESULTS" 2>&1 > + "$TOP/btrfs" check "$image" &> "$tmp_output" > [ $? -eq 0 ] && _fail "btrfs check should have detected corruption" > > + cat "$tmp_output" >> "$RESULTS" > + # Also make sure no subpage related warnings > + check_test_results "$tmp_output" "$testname" > + > run_check "$TOP/btrfs" check --repair --force "$image" > - run_check "$TOP/btrfs" check "$image" > + run_check_stdout "$TOP/btrfs" check "$image" &> "$tmp_output" > + > + # Also make sure no subpage related warnings for the repaired image > + check_test_results "$tmp_output" "$testname" > + rm -f "$tmp_output" > } Applied with the following fixup --- a/tests/common +++ b/tests/common @@ -422,15 +422,17 @@ check_dm_target_support() check_image() { local image + local tmp_output tmp_output=$(mktemp --tmpdir btrfs-progs-test-check-image.XXXXXX) image=$1 echo "testing image $(basename $image)" >> "$RESULTS" "$TOP/btrfs" check "$image" &> "$tmp_output" - [ $? -eq 0 ] && _fail "btrfs check should have detected corruption" - + ret=$? cat "$tmp_output" >> "$RESULTS" + [ "$ret" -eq 0 ] && _fail "btrfs check should have detected corruption" + # Also make sure no subpage related warnings check_test_results "$tmp_output" "$testname" @@ -439,7 +441,7 @@ check_image() # Also make sure no subpage related warnings for the repaired image check_test_results "$tmp_output" "$testname" - rm -f "$tmp_output" + rm -f -- "$tmp_output" } # Extract a usable image from packed formats
diff --git a/tests/common b/tests/common index 805a447c84ce..a6f75c7ce237 100644 --- a/tests/common +++ b/tests/common @@ -423,13 +423,23 @@ check_image() { local image + tmp_output=$(mktemp --tmpdir btrfs-progs-test-check-image.XXXXXX) + image=$1 echo "testing image $(basename $image)" >> "$RESULTS" - "$TOP/btrfs" check "$image" >> "$RESULTS" 2>&1 + "$TOP/btrfs" check "$image" &> "$tmp_output" [ $? -eq 0 ] && _fail "btrfs check should have detected corruption" + cat "$tmp_output" >> "$RESULTS" + # Also make sure no subpage related warnings + check_test_results "$tmp_output" "$testname" + run_check "$TOP/btrfs" check --repair --force "$image" - run_check "$TOP/btrfs" check "$image" + run_check_stdout "$TOP/btrfs" check "$image" &> "$tmp_output" + + # Also make sure no subpage related warnings for the repaired image + check_test_results "$tmp_output" "$testname" + rm -f "$tmp_output" } # Extract a usable image from packed formats
There are two types of test cases: - Type 1 (without test.sh) - Type 2 (test.sh, mostly will override check_image()) For Type 2 tests, we check subpage related warnings of btrfs-check, but didn't check it for Type 1 test cases. In fact, Type 1 test cases are more important, as they involve repair, which can generate new tree blocks, and we want to make sure such new tree blocks won't cause subpage related warnings. This patch will add the extra check for Type 1 test cases. And it will make sure the subpage related warnings are really from this test case, to prevent false alerts. Signed-off-by: Qu Wenruo <wqu@suse.com> --- tests/common | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-)