From: Amir Goldstein <amir73il@gmail.com>
To: Zorro Lang <zlang@redhat.com>
Cc: Alexander Larsson <alexl@redhat.com>,
Miklos Szeredi <miklos@szeredi.hu>,
linux-unionfs@vger.kernel.org, fstests@vger.kernel.org
Subject: [PATCH v2] overlay/026: Fix test expectation for newer kernels
Date: Wed, 22 Nov 2023 17:20:13 +0200 [thread overview]
Message-ID: <20231122152013.2569153-1-amir73il@gmail.com> (raw)
From: Alexander Larsson <alexl@redhat.com>
The test checks the expectaion from old kernels that set/get of
trusted.overlay.* xattrs is not supported on an overlayfs filesystem.
New kernels support set/get xattr of trusted.overlay.* xattrs, so adapt
the test to check that either both set and get work on new kernel, or
neither work on old kernel.
Signed-off-by: Alexander Larsson <alexl@redhat.com>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
---
Zorro,
Per your request on v1 [1], I've added a helper to check escaped overlay
xattrs support.
The helper was taken from the patch that adds test overlay/084 [2], and
re-factored, but other than that, overlay/084 itself is unchanged, so
I am not re-posting it nor any of the other patches in the overlay tests
for v6.7-rc1.
Let me know if this works for you.
Thanks,
Amir.
[1] https://lore.kernel.org/fstests/20231116075250.ntopaswush4sn2qf@dell-per750-06-vm-08.rhts.eng.pek2.redhat.com/
[2] https://lore.kernel.org/fstests/20231114064857.1666718-2-amir73il@gmail.com/
common/overlay | 19 +++++++++++++++++++
tests/overlay/026 | 42 +++++++++++++++++++++++++++++-------------
tests/overlay/026.out | 2 --
3 files changed, 48 insertions(+), 15 deletions(-)
diff --git a/common/overlay b/common/overlay
index 7004187f..8f275228 100644
--- a/common/overlay
+++ b/common/overlay
@@ -201,6 +201,25 @@ _require_scratch_overlay_features()
_scratch_unmount
}
+_check_scratch_overlay_xattr_escapes()
+{
+ local testfile=$1
+
+ touch $testfile
+ ! ($GETFATTR_PROG -n trusted.overlay.foo $testfile 2>&1 | grep -E -q "not (permitted|supported)")
+}
+
+_require_scratch_overlay_xattr_escapes()
+{
+ _scratch_mkfs > /dev/null 2>&1
+ _scratch_mount
+
+ _check_scratch_overlay_xattr_escapes $SCRATCH_MNT/file || \
+ _notrun "xattr escaping is not supported by overlay"
+
+ _scratch_unmount
+}
+
_require_scratch_overlay_verity()
{
local lowerdirs="$OVL_BASE_SCRATCH_MNT/$OVL_UPPER:$OVL_BASE_SCRATCH_MNT/$OVL_LOWER"
diff --git a/tests/overlay/026 b/tests/overlay/026
index 77030d20..25c70bc8 100755
--- a/tests/overlay/026
+++ b/tests/overlay/026
@@ -52,26 +52,42 @@ touch $SCRATCH_MNT/testf1
# getfattr ok no attr ok ok
#
$SETFATTR_PROG -n "trusted.overlayfsrz" -v "n" \
- $SCRATCH_MNT/testf0 2>&1 | _filter_scratch
+ $SCRATCH_MNT/testf0 2>&1 | tee -a $seqres.full | _filter_scratch
_getfattr --absolute-names -n "trusted.overlayfsrz" \
- $SCRATCH_MNT/testf0 2>&1 | _filter_scratch
+ $SCRATCH_MNT/testf0 2>&1 | tee -a $seqres.full | _filter_scratch
-# {s,g}etfattr of "trusted.overlay.xxx" should fail.
+# {s,g}etfattr of "trusted.overlay.xxx" fail on older kernels
# The errno returned varies among kernel versions,
-# v4.3/7 v4.8-rc1 v4.8 v4.10
-# setfattr not perm not perm not perm not supp
-# getfattr no attr no attr not perm not supp
+# v4.3/7 v4.8-rc1 v4.8 v4.10 v6.7
+# setfattr not perm not perm not perm not supp ok
+# getfattr no attr no attr not perm not supp ok
#
-# Consider "Operation not {supported,permitted}" pass.
+# Consider "Operation not {supported,permitted}" pass for old kernels.
#
-$SETFATTR_PROG -n "trusted.overlay.fsz" -v "n" \
- $SCRATCH_MNT/testf1 2>&1 | _filter_scratch | \
- sed -e 's/permitted/supported/g'
+if _check_scratch_overlay_xattr_escapes $SCRATCH_MNT/testf0; then
+ setexp=""
+ getexp="No such attribute"
+else
+ setexp="Operation not supported"
+ getexp="Operation not supported"
+fi
-_getfattr --absolute-names -n "trusted.overlay.fsz" \
- $SCRATCH_MNT/testf1 2>&1 | _filter_scratch | \
- sed -e 's/permitted/supported/g'
+getres=$(_getfattr --absolute-names -n "trusted.overlay.fsz" \
+ $SCRATCH_MNT/testf1 2>&1 | tee -a $seqres.full | _filter_scratch | \
+ sed 's/permitted/supported/')
+
+[[ "$getres" =~ "$getexp" ]] || echo unexpected getattr result: $getres
+
+setres=$($SETFATTR_PROG -n "trusted.overlay.fsz" -v "n" \
+ $SCRATCH_MNT/testf1 2>&1 | tee -a $seqres.full |_filter_scratch | \
+ sed -e 's/permitted/supported/g')
+
+if [ "$setexp" ]; then
+ [[ "$setres" =~ "$expres" ]] || echo unexpected setattr result: $setres
+else
+ [[ "$setres" == "" ]] || echo unexpected setattr result: $setres
+fi
# success, all done
status=0
diff --git a/tests/overlay/026.out b/tests/overlay/026.out
index c4572d67..53030009 100644
--- a/tests/overlay/026.out
+++ b/tests/overlay/026.out
@@ -2,5 +2,3 @@ QA output created by 026
# file: SCRATCH_MNT/testf0
trusted.overlayfsrz="n"
-setfattr: SCRATCH_MNT/testf1: Operation not supported
-SCRATCH_MNT/testf1: trusted.overlay.fsz: Operation not supported
--
2.34.1
next reply other threads:[~2023-11-22 15:20 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-22 15:20 Amir Goldstein [this message]
2023-12-04 14:30 ` [PATCH v2] overlay/026: Fix test expectation for newer kernels Amir Goldstein
2023-12-04 16:58 ` Zorro Lang
2023-12-04 17:09 ` Amir Goldstein
2023-12-04 17:52 ` Zorro Lang
2023-12-04 19:01 ` Amir Goldstein
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231122152013.2569153-1-amir73il@gmail.com \
--to=amir73il@gmail.com \
--cc=alexl@redhat.com \
--cc=fstests@vger.kernel.org \
--cc=linux-unionfs@vger.kernel.org \
--cc=miklos@szeredi.hu \
--cc=zlang@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.