From: "Darrick J. Wong" <djwong@xxxxxxxxxx> Fix this test to work properly when the filesystem block size is less than 4k. Tripping the error injection points on shape changes in the xattr structure must be done dynamically. Signed-off-by: Darrick J. Wong <djwong@xxxxxxxxxx> Signed-off-by: Catherine Hoang <catherine.hoang@xxxxxxxxxx> --- tests/xfs/018 | 14 +++++++++----- tests/xfs/018.out | 47 ++++------------------------------------------- 2 files changed, 13 insertions(+), 48 deletions(-) diff --git a/tests/xfs/018 b/tests/xfs/018 index 041a3b24..323279b5 100755 --- a/tests/xfs/018 +++ b/tests/xfs/018 @@ -47,7 +47,8 @@ test_attr_replay() touch $testfile # Verify attr recovery - $ATTR_PROG -l $testfile | _filter_scratch + $ATTR_PROG -l $testfile >> $seqres.full + echo "Checking contents of $attr_name" >> $seqres.full echo -n "$attr_name: " $ATTR_PROG -q -g $attr_name $testfile 2> /dev/null | md5sum; @@ -98,6 +99,9 @@ attr64k="$attr32k$attr32k" echo "*** mkfs" _scratch_mkfs >/dev/null +blk_sz=$(_scratch_xfs_get_sb_field blocksize) +multiplier=$(( $blk_sz / 276 )) # 256 + 20 to account for attr name + echo "*** mount FS" _scratch_mount @@ -140,12 +144,12 @@ test_attr_replay extent_file1 "attr_name2" $attr1k "s" "larp" test_attr_replay extent_file1 "attr_name2" $attr1k "r" "larp" # extent, inject error on split -create_test_file extent_file2 3 $attr1k -test_attr_replay extent_file2 "attr_name4" $attr1k "s" "da_leaf_split" +create_test_file extent_file2 $multiplier $attr256 +test_attr_replay extent_file2 "attr_nameXXXX" $attr256 "s" "da_leaf_split" # extent, inject error on fork transition -create_test_file extent_file3 3 $attr1k -test_attr_replay extent_file3 "attr_name4" $attr1k "s" "attr_leaf_to_node" +create_test_file extent_file3 $multiplier $attr256 +test_attr_replay extent_file3 "attr_nameXXXX" $attr256 "s" "attr_leaf_to_node" # extent, remote create_test_file extent_file4 1 $attr1k diff --git a/tests/xfs/018.out b/tests/xfs/018.out index 022b0ca3..57dc448a 100644 --- a/tests/xfs/018.out +++ b/tests/xfs/018.out @@ -4,7 +4,6 @@ QA output created by 018 attr_set: Input/output error Could not set "attr_name" for SCRATCH_MNT/testdir/empty_file1 touch: cannot touch 'SCRATCH_MNT/testdir/empty_file1': Input/output error -Attribute "attr_name" has a 65 byte value for SCRATCH_MNT/testdir/empty_file1 attr_name: cfbe2a33be4601d2b655d099a18378fc - attr_remove: Input/output error @@ -15,7 +14,6 @@ attr_name: d41d8cd98f00b204e9800998ecf8427e - attr_set: Input/output error Could not set "attr_name" for SCRATCH_MNT/testdir/empty_file2 touch: cannot touch 'SCRATCH_MNT/testdir/empty_file2': Input/output error -Attribute "attr_name" has a 1025 byte value for SCRATCH_MNT/testdir/empty_file2 attr_name: 9fd415c49d67afc4b78fad4055a3a376 - attr_remove: Input/output error @@ -26,7 +24,6 @@ attr_name: d41d8cd98f00b204e9800998ecf8427e - attr_set: Input/output error Could not set "attr_name" for SCRATCH_MNT/testdir/empty_file3 touch: cannot touch 'SCRATCH_MNT/testdir/empty_file3': Input/output error -Attribute "attr_name" has a 65536 byte value for SCRATCH_MNT/testdir/empty_file3 attr_name: 7f6fd1b6d872108bd44bd143cbcdfa19 - attr_remove: Input/output error @@ -37,132 +34,96 @@ attr_name: d41d8cd98f00b204e9800998ecf8427e - attr_set: Input/output error Could not set "attr_name2" for SCRATCH_MNT/testdir/inline_file1 touch: cannot touch 'SCRATCH_MNT/testdir/inline_file1': Input/output error -Attribute "attr_name1" has a 16 byte value for SCRATCH_MNT/testdir/inline_file1 -Attribute "attr_name2" has a 65 byte value for SCRATCH_MNT/testdir/inline_file1 attr_name2: cfbe2a33be4601d2b655d099a18378fc - attr_remove: Input/output error Could not remove "attr_name2" for SCRATCH_MNT/testdir/inline_file1 touch: cannot touch 'SCRATCH_MNT/testdir/inline_file1': Input/output error -Attribute "attr_name1" has a 16 byte value for SCRATCH_MNT/testdir/inline_file1 attr_name2: d41d8cd98f00b204e9800998ecf8427e - attr_set: Input/output error Could not set "attr_name2" for SCRATCH_MNT/testdir/inline_file2 touch: cannot touch 'SCRATCH_MNT/testdir/inline_file2': Input/output error -Attribute "attr_name2" has a 1025 byte value for SCRATCH_MNT/testdir/inline_file2 -Attribute "attr_name1" has a 16 byte value for SCRATCH_MNT/testdir/inline_file2 attr_name2: 9fd415c49d67afc4b78fad4055a3a376 - attr_remove: Input/output error Could not remove "attr_name2" for SCRATCH_MNT/testdir/inline_file2 touch: cannot touch 'SCRATCH_MNT/testdir/inline_file2': Input/output error -Attribute "attr_name1" has a 16 byte value for SCRATCH_MNT/testdir/inline_file2 attr_name2: d41d8cd98f00b204e9800998ecf8427e - attr_set: Input/output error Could not set "attr_name2" for SCRATCH_MNT/testdir/inline_file3 touch: cannot touch 'SCRATCH_MNT/testdir/inline_file3': Input/output error -Attribute "attr_name2" has a 65536 byte value for SCRATCH_MNT/testdir/inline_file3 -Attribute "attr_name1" has a 16 byte value for SCRATCH_MNT/testdir/inline_file3 attr_name2: 7f6fd1b6d872108bd44bd143cbcdfa19 - attr_remove: Input/output error Could not remove "attr_name2" for SCRATCH_MNT/testdir/inline_file3 touch: cannot touch 'SCRATCH_MNT/testdir/inline_file3': Input/output error -Attribute "attr_name1" has a 16 byte value for SCRATCH_MNT/testdir/inline_file3 attr_name2: d41d8cd98f00b204e9800998ecf8427e - attr_set: Input/output error Could not set "attr_name2" for SCRATCH_MNT/testdir/extent_file1 touch: cannot touch 'SCRATCH_MNT/testdir/extent_file1': Input/output error -Attribute "attr_name2" has a 1025 byte value for SCRATCH_MNT/testdir/extent_file1 -Attribute "attr_name1" has a 1024 byte value for SCRATCH_MNT/testdir/extent_file1 attr_name2: 9fd415c49d67afc4b78fad4055a3a376 - attr_remove: Input/output error Could not remove "attr_name2" for SCRATCH_MNT/testdir/extent_file1 touch: cannot touch 'SCRATCH_MNT/testdir/extent_file1': Input/output error -Attribute "attr_name1" has a 1024 byte value for SCRATCH_MNT/testdir/extent_file1 attr_name2: d41d8cd98f00b204e9800998ecf8427e - attr_set: Input/output error -Could not set "attr_name4" for SCRATCH_MNT/testdir/extent_file2 +Could not set "attr_nameXXXX" for SCRATCH_MNT/testdir/extent_file2 touch: cannot touch 'SCRATCH_MNT/testdir/extent_file2': Input/output error -Attribute "attr_name4" has a 1025 byte value for SCRATCH_MNT/testdir/extent_file2 -Attribute "attr_name2" has a 1024 byte value for SCRATCH_MNT/testdir/extent_file2 -Attribute "attr_name3" has a 1024 byte value for SCRATCH_MNT/testdir/extent_file2 -Attribute "attr_name1" has a 1024 byte value for SCRATCH_MNT/testdir/extent_file2 -attr_name4: 9fd415c49d67afc4b78fad4055a3a376 - +attr_nameXXXX: f4ea5799d72a0a9bf2d56a685c9cba7a - attr_set: Input/output error -Could not set "attr_name4" for SCRATCH_MNT/testdir/extent_file3 +Could not set "attr_nameXXXX" for SCRATCH_MNT/testdir/extent_file3 touch: cannot touch 'SCRATCH_MNT/testdir/extent_file3': Input/output error -Attribute "attr_name4" has a 1025 byte value for SCRATCH_MNT/testdir/extent_file3 -Attribute "attr_name2" has a 1024 byte value for SCRATCH_MNT/testdir/extent_file3 -Attribute "attr_name3" has a 1024 byte value for SCRATCH_MNT/testdir/extent_file3 -Attribute "attr_name1" has a 1024 byte value for SCRATCH_MNT/testdir/extent_file3 -attr_name4: 9fd415c49d67afc4b78fad4055a3a376 - +attr_nameXXXX: f4ea5799d72a0a9bf2d56a685c9cba7a - attr_set: Input/output error Could not set "attr_name2" for SCRATCH_MNT/testdir/extent_file4 touch: cannot touch 'SCRATCH_MNT/testdir/extent_file4': Input/output error -Attribute "attr_name2" has a 65536 byte value for SCRATCH_MNT/testdir/extent_file4 -Attribute "attr_name1" has a 1024 byte value for SCRATCH_MNT/testdir/extent_file4 attr_name2: 7f6fd1b6d872108bd44bd143cbcdfa19 - attr_remove: Input/output error Could not remove "attr_name2" for SCRATCH_MNT/testdir/extent_file4 touch: cannot touch 'SCRATCH_MNT/testdir/extent_file4': Input/output error -Attribute "attr_name1" has a 1024 byte value for SCRATCH_MNT/testdir/extent_file4 attr_name2: d41d8cd98f00b204e9800998ecf8427e - attr_set: Input/output error Could not set "attr_name2" for SCRATCH_MNT/testdir/remote_file1 touch: cannot touch 'SCRATCH_MNT/testdir/remote_file1': Input/output error -Attribute "attr_name2" has a 1025 byte value for SCRATCH_MNT/testdir/remote_file1 -Attribute "attr_name1" has a 65536 byte value for SCRATCH_MNT/testdir/remote_file1 attr_name2: 9fd415c49d67afc4b78fad4055a3a376 - attr_remove: Input/output error Could not remove "attr_name2" for SCRATCH_MNT/testdir/remote_file1 touch: cannot touch 'SCRATCH_MNT/testdir/remote_file1': Input/output error -Attribute "attr_name1" has a 65536 byte value for SCRATCH_MNT/testdir/remote_file1 attr_name2: d41d8cd98f00b204e9800998ecf8427e - attr_set: Input/output error Could not set "attr_name2" for SCRATCH_MNT/testdir/remote_file2 touch: cannot touch 'SCRATCH_MNT/testdir/remote_file2': Input/output error -Attribute "attr_name2" has a 65536 byte value for SCRATCH_MNT/testdir/remote_file2 -Attribute "attr_name1" has a 65536 byte value for SCRATCH_MNT/testdir/remote_file2 attr_name2: 7f6fd1b6d872108bd44bd143cbcdfa19 - attr_remove: Input/output error Could not remove "attr_name2" for SCRATCH_MNT/testdir/remote_file2 touch: cannot touch 'SCRATCH_MNT/testdir/remote_file2': Input/output error -Attribute "attr_name1" has a 65536 byte value for SCRATCH_MNT/testdir/remote_file2 attr_name2: d41d8cd98f00b204e9800998ecf8427e - attr_set: Input/output error Could not set "attr_name2" for SCRATCH_MNT/testdir/sf_file touch: cannot touch 'SCRATCH_MNT/testdir/sf_file': Input/output error -Attribute "attr_name1" has a 64 byte value for SCRATCH_MNT/testdir/sf_file -Attribute "attr_name2" has a 17 byte value for SCRATCH_MNT/testdir/sf_file attr_name2: 9a6eb1bc9da3c66a9b495dfe2fe8a756 - attr_set: Input/output error Could not set "attr_name2" for SCRATCH_MNT/testdir/leaf_file touch: cannot touch 'SCRATCH_MNT/testdir/leaf_file': Input/output error -Attribute "attr_name2" has a 257 byte value for SCRATCH_MNT/testdir/leaf_file -Attribute "attr_name3" has a 1024 byte value for SCRATCH_MNT/testdir/leaf_file -Attribute "attr_name1" has a 1024 byte value for SCRATCH_MNT/testdir/leaf_file attr_name2: f4ea5799d72a0a9bf2d56a685c9cba7a - attr_set: Input/output error Could not set "attr_name2" for SCRATCH_MNT/testdir/node_file touch: cannot touch 'SCRATCH_MNT/testdir/node_file': Input/output error -Attribute "attr_name2" has a 257 byte value for SCRATCH_MNT/testdir/node_file -Attribute "attr_name1" has a 65536 byte value for SCRATCH_MNT/testdir/node_file attr_name2: f4ea5799d72a0a9bf2d56a685c9cba7a - *** done -- 2.25.1