Message ID | 20231122152013.2569153-1-amir73il@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v2] overlay/026: Fix test expectation for newer kernels | expand |
On Wed, Nov 22, 2023 at 5:20 PM Amir Goldstein <amir73il@gmail.com> wrote: > > 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. Ping. > > 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 >
On Wed, Nov 22, 2023 at 05:20:13PM +0200, Amir Goldstein wrote: > 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 > +} > + Hi Amir, Sorry for this late review, got a little busy on other things recently. Won't this patch be conflict with another patchset which you/Alex have sent: https://lore.kernel.org/fstests/20231114064857.1666718-2-amir73il@gmail.com/ So you'll rebase that patchset on this, right? Thanks, Zorro > _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 >
On Mon, Dec 4, 2023 at 6:58 PM Zorro Lang <zlang@redhat.com> wrote: > > On Wed, Nov 22, 2023 at 05:20:13PM +0200, Amir Goldstein wrote: > > 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 > > +} > > + > > Hi Amir, > > Sorry for this late review, got a little busy on other things recently. > Won't this patch be conflict with another patchset which you/Alex have sent: > https://lore.kernel.org/fstests/20231114064857.1666718-2-amir73il@gmail.com/ > > So you'll rebase that patchset on this, right? I rebased and pushed to this branch: https://github.com/amir73il/xfstests/commits/overlayfs-devel If you want I can re-post the entire series, but really, the only change is the common/overlay chunk in the first patch which should be ignored. The version of _require_scratch_overlay_xattr_escapes() in this patch is newer. If you remove the overlay/common chunk from the overlay/084 patch, it will apply cleanly. Thanks, Amir.
On Mon, Dec 04, 2023 at 07:09:08PM +0200, Amir Goldstein wrote: > On Mon, Dec 4, 2023 at 6:58 PM Zorro Lang <zlang@redhat.com> wrote: > > > > On Wed, Nov 22, 2023 at 05:20:13PM +0200, Amir Goldstein wrote: > > > 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 > > > +} > > > + > > > > Hi Amir, > > > > Sorry for this late review, got a little busy on other things recently. > > Won't this patch be conflict with another patchset which you/Alex have sent: > > https://lore.kernel.org/fstests/20231114064857.1666718-2-amir73il@gmail.com/ > > > > So you'll rebase that patchset on this, right? > > I rebased and pushed to this branch: > https://github.com/amir73il/xfstests/commits/overlayfs-devel > > If you want I can re-post the entire series, but really, the only change is > the common/overlay chunk in the first patch which should be ignored. Hi Amir, I just tried, there're two _require_scratch_overlay_xattr_escapes() in common/overlay [1]. So please rebase and re-send that patchset, then I can merge them easily and clearly. This patch is good to me, let me give RVB to this patch at first. Reviewed-by: Zorro Lang <zlang@redhat.com> Thanks, Zorro [1] _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_xattr_escapes() { _scratch_mkfs > /dev/null 2>&1 _overlay_scratch_mount_dirs $OVL_BASE_SCRATCH_MNT/$OVL_LOWER $OVL_BASE_SCRATCH_MNT/$OVL_UPPER $OVL_BASE_SCRATCH_MNT/$OVL_WORK -o rw touch $SCRATCH_MNT/file (getfattr -n trusted.overlay.foo $SCRATCH_MNT/file 2>&1 | grep -q "not supported") && \ _notrun "xattr escaping is not supported by overlay" _scratch_unmount } > The version of _require_scratch_overlay_xattr_escapes() in this patch > is newer. > > If you remove the overlay/common chunk from the overlay/084 patch, > it will apply cleanly. > > Thanks, > Amir. >
On Mon, Dec 4, 2023 at 7:52 PM Zorro Lang <zlang@redhat.com> wrote: > > On Mon, Dec 04, 2023 at 07:09:08PM +0200, Amir Goldstein wrote: > > On Mon, Dec 4, 2023 at 6:58 PM Zorro Lang <zlang@redhat.com> wrote: > > > > > > On Wed, Nov 22, 2023 at 05:20:13PM +0200, Amir Goldstein wrote: > > > > 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 > > > > +} > > > > + > > > > > > Hi Amir, > > > > > > Sorry for this late review, got a little busy on other things recently. > > > Won't this patch be conflict with another patchset which you/Alex have sent: > > > https://lore.kernel.org/fstests/20231114064857.1666718-2-amir73il@gmail.com/ > > > > > > So you'll rebase that patchset on this, right? > > > > I rebased and pushed to this branch: > > https://github.com/amir73il/xfstests/commits/overlayfs-devel > > > > If you want I can re-post the entire series, but really, the only change is > > the common/overlay chunk in the first patch which should be ignored. > > Hi Amir, > > I just tried, there're two _require_scratch_overlay_xattr_escapes() in > common/overlay [1]. Yes, as I said, the one from *this* patch is the correct one the other one is obsolete. > So please rebase and re-send that patchset, then I can > merge them easily and clearly. Ok. Sent v2. You should apply it on top of this patch. Thanks, Amir.
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