Skip to contentSkip to conversation

overlay/038: fix impure xattr test

PATCH In review Amir Goldstein 2 participants 2 messages Sep 15, 2017 – Sep 16, 2017

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 overlay/038: fix impure xattr test

On kvm-xfstest, getfattr (2.4.43) does not return failure exit code when the requested xattr is not found.

Change the test to check the returned xattr value instead of exit code.

Cc Chandan Rajendra <[email protected]>

---

Eryu,

This test is supposed to pass on master now and it does pass on my Ubuntu 16.04, but fails on kvm-xfstests (Debian stretch).

The failure is due to different behavior of getfattr on different systems and as a result of me suggesting to Chandan to check getfattr exit code. So this patch is for my redemption ;-)

I surveyed for other places that check exit code of getfattr as indication of ENODATA and found only one other instance in _require_scratch_richacl_support() (for non xfs/ext4 FSTYP). However, this instance is buggy regardless, because it provides no file argument to getfattr.
I would fix it, but I am not sure what's the semantics and have no idea how to test this.

Amir.

 tests/overlay/038 | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)
tests/overlay/038 +6 -6
index 24cd432..69fd76a 100755
@@ -108,9 +108,9 @@ test_file_st_ino=$(stat -c '%i' $SCRATCH_MNT/test_file)
 
 mv $SCRATCH_MNT/test_file $impure_dir
 
-$GETFATTR_PROG --absolute-names -n 'trusted.overlay.impure' \
-	       $upperdir/test_dir/impure_dir >>$seqres.full 2>&1
-[[ $? == 0 ]] || echo "Impure directory missing impure xattr"
+impure=$($GETFATTR_PROG --absolute-names --only-values -n 'trusted.overlay.impure' \
+			$upperdir/test_dir/impure_dir)
+[[ $impure == "y" ]] || echo "Impure directory missing impure xattr"
 
 # After $impure_dir becomes impure
 parent_d=$($here/src/t_dir_type $impure_dir $impure_dir_parent_st_ino)
@@ -133,9 +133,9 @@ rm -rf $impure_dir/test_file
 $here/src/t_dir_type $impure_dir $test_file_st_ino
 [[ $? != 0 ]] || echo "Directory's readdir cache has stale entries"
 
-$GETFATTR_PROG --absolute-names -n 'trusted.overlay.impure' \
-	       $upperdir/test_dir/impure_dir >>$seqres.full 2>&1
-[[ $? != 0 ]] || echo "Pure directory has impure xattr"
+impure=$($GETFATTR_PROG --absolute-names --only-values -n 'trusted.overlay.impure' \
+			$upperdir/test_dir/impure_dir 2>/dev/null)
+[[ -z $impure ]] || echo "Pure directory has impure xattr"
 
 # Verify d_ino values corresponding to "." and ".." entries of a
 # pure lower dir.
Signature · 1 line
2.7.4