* [PATCH v3 0/4] Fix some tests that fail for exfat FS @ 2021-04-15 9:49 Pavel Reichl 2021-04-15 9:49 ` [PATCH v3 1/4] common/rc: Add _require_{chown,chmod}() Pavel Reichl ` (3 more replies) 0 siblings, 4 replies; 7+ messages in thread From: Pavel Reichl @ 2021-04-15 9:49 UTC (permalink / raw) To: fstests Mostly just do not run test that require posix permissions and ownership. Changes in V2 (Thank you for comments on version 1) * Merged patch #1 and #2 (the one introducing the helper and the other actually using them) * Fixed generic/597 by introducing _require_symlink * Fixed generic/598 by adding _require_chmod ** changes are part of patch #1 * Introduced _format_swapon_file() Changes in version #3 (thanks for the comments and hints!) * reuse _require_symlinks() instead of introducing _require_symlink() * implement _require_chown() so it actually checks if chown() is supported. * Don't special case filtering of MKSWAP_PROG's perm. warn for exfat only. * Rename _format_swapon_file() to _swapon_file() and also don't special case the perm. warning filtering * Increase the 'access_delay' by 0.1 s for the exfat to be safe. Pavel Reichl (4): common/rc: Add _require_{chown,chmod}() common: hide permision warning from mkswap for exfat generic/554: hide permision warning on exfat generic/003: Amend the test for exfat common/rc | 33 ++++++++++++++++++++++++++++++++- tests/generic/003 | 29 ++++++++++++++++++++--------- tests/generic/087 | 1 + tests/generic/088 | 1 + tests/generic/125 | 1 + tests/generic/126 | 1 + tests/generic/128 | 1 + tests/generic/193 | 1 + tests/generic/314 | 1 + tests/generic/317 | 1 + tests/generic/355 | 1 + tests/generic/554 | 3 ++- tests/generic/597 | 1 + tests/generic/598 | 1 + 14 files changed, 65 insertions(+), 11 deletions(-) -- 2.30.2 ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v3 1/4] common/rc: Add _require_{chown,chmod}() 2021-04-15 9:49 [PATCH v3 0/4] Fix some tests that fail for exfat FS Pavel Reichl @ 2021-04-15 9:49 ` Pavel Reichl 2021-04-18 12:50 ` Eryu Guan 2021-04-15 9:49 ` [PATCH v3 2/4] common: hide permision warning from mkswap for exfat Pavel Reichl ` (2 subsequent siblings) 3 siblings, 1 reply; 7+ messages in thread From: Pavel Reichl @ 2021-04-15 9:49 UTC (permalink / raw) To: fstests Add helper functions that ensure that test is only executed on file systems that implement chown, chmod and symbolic links. Fixed test are: generic/{87,88,125,126,128,193,314,317,355,597,598} Signed-off-by: Pavel Reichl <preichl@redhat.com> --- common/rc | 23 +++++++++++++++++++++++ tests/generic/087 | 1 + tests/generic/088 | 1 + tests/generic/125 | 1 + tests/generic/126 | 1 + tests/generic/128 | 1 + tests/generic/193 | 1 + tests/generic/314 | 1 + tests/generic/317 | 1 + tests/generic/355 | 1 + tests/generic/597 | 1 + tests/generic/598 | 1 + 12 files changed, 34 insertions(+) diff --git a/common/rc b/common/rc index 23f86ce6..be292aaf 100644 --- a/common/rc +++ b/common/rc @@ -2115,6 +2115,29 @@ _require_user() [ "$?" == "0" ] || _notrun "$qa_user cannot execute commands." } +# check for a chown support +# +_require_chown() +{ + rnd_uid=4242 + + _require_test + + local file="$TEST_DIR/chown_testfile" + touch $file + chown ${rnd_uid}:${rnd_uid} $file >/dev/null 2>&1 \ + || _notrun "chown is not supported ${FSTYP}" + rm -f $file +} + + +# check for a chmod support +# +_require_chmod() +{ + _require_chown +} + # check for a group on the machine, fsgqa as default # _require_group() diff --git a/tests/generic/087 b/tests/generic/087 index 1f30dbf4..c3576117 100755 --- a/tests/generic/087 +++ b/tests/generic/087 @@ -37,6 +37,7 @@ _cleanup() # real QA test starts here _supported_fs generic _require_test +_require_chown QA_FS_PERMS=$here/src/fs_perms diff --git a/tests/generic/088 b/tests/generic/088 index 9388a083..ad99bd7e 100755 --- a/tests/generic/088 +++ b/tests/generic/088 @@ -29,6 +29,7 @@ _filter() # real QA test starts here _supported_fs generic _require_test +_require_chown path=$TEST_DIR/t_access $here/src/t_access_root $path | tee $seqres.full | _filter diff --git a/tests/generic/125 b/tests/generic/125 index e84248d3..8c8f5cd7 100755 --- a/tests/generic/125 +++ b/tests/generic/125 @@ -25,6 +25,7 @@ _supported_fs generic _require_test _require_user _require_odirect +_require_chmod TESTDIR=$TEST_DIR/ftrunc TESTFILE=$TESTDIR/ftrunc.tmp diff --git a/tests/generic/126 b/tests/generic/126 index ac25d294..636ca00d 100755 --- a/tests/generic/126 +++ b/tests/generic/126 @@ -27,6 +27,7 @@ _cleanup() # real QA test starts here _supported_fs generic _require_test +_require_chown QA_FS_PERMS=$here/src/fs_perms diff --git a/tests/generic/128 b/tests/generic/128 index b3e49eff..c1eae77a 100755 --- a/tests/generic/128 +++ b/tests/generic/128 @@ -24,6 +24,7 @@ _supported_fs generic _require_scratch _require_user +_require_chmod _scratch_mkfs >/dev/null 2>&1 _scratch_mount "-o nosuid" diff --git a/tests/generic/193 b/tests/generic/193 index 3125efdd..fd0ebbf6 100755 --- a/tests/generic/193 +++ b/tests/generic/193 @@ -56,6 +56,7 @@ _supported_fs generic _require_test _require_user +_require_chown test_root=$TEST_DIR/$seq.$$.root test_user=$TEST_DIR/$seq.$$.user diff --git a/tests/generic/314 b/tests/generic/314 index 03df81ce..540f0feb 100755 --- a/tests/generic/314 +++ b/tests/generic/314 @@ -29,6 +29,7 @@ _cleanup() _supported_fs generic _require_test _require_user +_require_chown rm -rf $TEST_DIR/$seq-dir diff --git a/tests/generic/317 b/tests/generic/317 index 29c37a57..289dfabe 100755 --- a/tests/generic/317 +++ b/tests/generic/317 @@ -45,6 +45,7 @@ _require_scratch _require_user _require_ugid_map _require_userns +_require_chown qa_user_id=`id -u $qa_user` _filter_output() diff --git a/tests/generic/355 b/tests/generic/355 index 161dd042..74fba0f9 100755 --- a/tests/generic/355 +++ b/tests/generic/355 @@ -32,6 +32,7 @@ _supported_fs generic _require_test _require_user _require_odirect +_require_chown testfile=$TEST_DIR/$seq.test rm -f $testfile diff --git a/tests/generic/597 b/tests/generic/597 index ba769d73..6602dc70 100755 --- a/tests/generic/597 +++ b/tests/generic/597 @@ -43,6 +43,7 @@ _require_sysctl_variable fs.protected_hardlinks _require_user fsgqa2 # Do this SECOND so that qa_user is fsgqa, and _user_do uses that account _require_user fsgqa +_require_symlinks OWNER=fsgqa2 OTHER=fsgqa diff --git a/tests/generic/598 b/tests/generic/598 index 6b765275..230c3ac7 100755 --- a/tests/generic/598 +++ b/tests/generic/598 @@ -43,6 +43,7 @@ _require_sysctl_variable fs.protected_fifos _require_user fsgqa2 # Do this SECOND so that qa_user is fsgqa, and _user_do uses that account _require_user fsgqa +_require_chmod USER1=fsgqa2 USER2=fsgqa -- 2.30.2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH v3 1/4] common/rc: Add _require_{chown,chmod}() 2021-04-15 9:49 ` [PATCH v3 1/4] common/rc: Add _require_{chown,chmod}() Pavel Reichl @ 2021-04-18 12:50 ` Eryu Guan 2021-04-19 22:06 ` Pavel Reichl 0 siblings, 1 reply; 7+ messages in thread From: Eryu Guan @ 2021-04-18 12:50 UTC (permalink / raw) To: Pavel Reichl; +Cc: fstests On Thu, Apr 15, 2021 at 11:49:02AM +0200, Pavel Reichl wrote: > Add helper functions that ensure that test is only executed on file > systems that implement chown, chmod and symbolic links. > > Fixed test are: generic/{87,88,125,126,128,193,314,317,355,597,598} > > Signed-off-by: Pavel Reichl <preichl@redhat.com> > --- > common/rc | 23 +++++++++++++++++++++++ > tests/generic/087 | 1 + > tests/generic/088 | 1 + > tests/generic/125 | 1 + > tests/generic/126 | 1 + > tests/generic/128 | 1 + > tests/generic/193 | 1 + > tests/generic/314 | 1 + > tests/generic/317 | 1 + > tests/generic/355 | 1 + > tests/generic/597 | 1 + > tests/generic/598 | 1 + > 12 files changed, 34 insertions(+) > > diff --git a/common/rc b/common/rc > index 23f86ce6..be292aaf 100644 > --- a/common/rc > +++ b/common/rc > @@ -2115,6 +2115,29 @@ _require_user() > [ "$?" == "0" ] || _notrun "$qa_user cannot execute commands." > } > > +# check for a chown support > +# > +_require_chown() > +{ > + rnd_uid=4242 > + > + _require_test > + > + local file="$TEST_DIR/chown_testfile" > + touch $file > + chown ${rnd_uid}:${rnd_uid} $file >/dev/null 2>&1 \ > + || _notrun "chown is not supported ${FSTYP}" > + rm -f $file > +} > + > + > +# check for a chmod support > +# > +_require_chmod() > +{ > + _require_chown It's not clear to me why _require_chown also works for _require_chmod, other than actually doing chmod test. Some comments would be good. Thanks, Eryu P.S. I've applied other patches in this patchset, thanks for the fixes! ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH v3 1/4] common/rc: Add _require_{chown,chmod}() 2021-04-18 12:50 ` Eryu Guan @ 2021-04-19 22:06 ` Pavel Reichl 0 siblings, 0 replies; 7+ messages in thread From: Pavel Reichl @ 2021-04-19 22:06 UTC (permalink / raw) To: Eryu Guan; +Cc: fstests On 4/18/21 2:50 PM, Eryu Guan wrote: > On Thu, Apr 15, 2021 at 11:49:02AM +0200, Pavel Reichl wrote: ... >> +# >> +_require_chmod() >> +{ >> + _require_chown > > It's not clear to me why _require_chown also works for _require_chmod, > other than actually doing chmod test. Some comments would be good. Yeah, sorry about that. I just sent v4 of this patch that attempts to implement _require_chmod() properly. > > Thanks, > Eryu > > P.S. I've applied other patches in this patchset, thanks for the fixes! Awesome, thanks for the reviews. > ^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH v3 2/4] common: hide permision warning from mkswap for exfat 2021-04-15 9:49 [PATCH v3 0/4] Fix some tests that fail for exfat FS Pavel Reichl 2021-04-15 9:49 ` [PATCH v3 1/4] common/rc: Add _require_{chown,chmod}() Pavel Reichl @ 2021-04-15 9:49 ` Pavel Reichl 2021-04-15 9:49 ` [PATCH v3 3/4] generic/554: hide permision warning on exfat Pavel Reichl 2021-04-15 9:49 ` [PATCH v3 4/4] generic/003: Amend the test for exfat Pavel Reichl 3 siblings, 0 replies; 7+ messages in thread From: Pavel Reichl @ 2021-04-15 9:49 UTC (permalink / raw) To: fstests exfat does not support posix file permisions, so warning from mkswap is inavitable. This patch hides the warning message so the test won't fail. Signed-off-by: Pavel Reichl <preichl@redhat.com> --- common/rc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/common/rc b/common/rc index be292aaf..47098b55 100644 --- a/common/rc +++ b/common/rc @@ -2374,7 +2374,8 @@ _format_swapfile() { # Swap files must be nocow on Btrfs. $CHATTR_PROG +C "$fname" > /dev/null 2>&1 _pwrite_byte 0x61 0 "$sz" "$fname" >> $seqres.full - $MKSWAP_PROG "$fname" >> $seqres.full + # Ignore permission complaints on filesystems that don't support perms + $MKSWAP_PROG "$fname" 2> >(grep -v 'insecure permission' >&2) >> $seqres.full } # Check that the filesystem supports swapfiles -- 2.30.2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v3 3/4] generic/554: hide permision warning on exfat 2021-04-15 9:49 [PATCH v3 0/4] Fix some tests that fail for exfat FS Pavel Reichl 2021-04-15 9:49 ` [PATCH v3 1/4] common/rc: Add _require_{chown,chmod}() Pavel Reichl 2021-04-15 9:49 ` [PATCH v3 2/4] common: hide permision warning from mkswap for exfat Pavel Reichl @ 2021-04-15 9:49 ` Pavel Reichl 2021-04-15 9:49 ` [PATCH v3 4/4] generic/003: Amend the test for exfat Pavel Reichl 3 siblings, 0 replies; 7+ messages in thread From: Pavel Reichl @ 2021-04-15 9:49 UTC (permalink / raw) To: fstests Signed-off-by: Pavel Reichl <preichl@redhat.com> --- common/rc | 7 +++++++ tests/generic/554 | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/common/rc b/common/rc index 47098b55..fb1f7598 100644 --- a/common/rc +++ b/common/rc @@ -2378,6 +2378,13 @@ _format_swapfile() { $MKSWAP_PROG "$fname" 2> >(grep -v 'insecure permission' >&2) >> $seqres.full } +_swapon_file() { + local fname="$1" + + # Ignore permission complaints on filesystems that don't support perms + swapon "$fname" 2> >(grep -v "insecure permissions" >&2) +} + # Check that the filesystem supports swapfiles _require_scratch_swapfile() { diff --git a/tests/generic/554 b/tests/generic/554 index fa4f97d2..da9bfce5 100755 --- a/tests/generic/554 +++ b/tests/generic/554 @@ -46,7 +46,8 @@ $XFS_IO_PROG -f -c "pwrite -S 0x61 0 128k" $SCRATCH_MNT/file >> $seqres.full 2>& echo swap files return ETXTBUSY _format_swapfile $SCRATCH_MNT/swapfile 16m -swapon $SCRATCH_MNT/swapfile +_swapon_file $SCRATCH_MNT/swapfile + $XFS_IO_PROG -f -c "copy_range -l 32k $SCRATCH_MNT/file" $SCRATCH_MNT/swapfile swapoff $SCRATCH_MNT/swapfile -- 2.30.2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH v3 4/4] generic/003: Amend the test for exfat 2021-04-15 9:49 [PATCH v3 0/4] Fix some tests that fail for exfat FS Pavel Reichl ` (2 preceding siblings ...) 2021-04-15 9:49 ` [PATCH v3 3/4] generic/554: hide permision warning on exfat Pavel Reichl @ 2021-04-15 9:49 ` Pavel Reichl 3 siblings, 0 replies; 7+ messages in thread From: Pavel Reichl @ 2021-04-15 9:49 UTC (permalink / raw) To: fstests Update the test so it can be run even for exfat which has 2 seconds granularity for access_time and does not have a timestamp for metadata change. Signed-off-by: Pavel Reichl <preichl@redhat.com> --- tests/generic/003 | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/tests/generic/003 b/tests/generic/003 index ec4fdfc1..b2a3db39 100755 --- a/tests/generic/003 +++ b/tests/generic/003 @@ -37,6 +37,13 @@ _require_relatime rm -f $seqres.full +if [ "$FSTYP" = "exfat" ]; then + # exfat's timestamp for access_time has double seconds granularity + access_delay=2.1 +else + access_delay=1 +fi + _stat() { stat -c "%x;%y;%z" $1 } @@ -79,14 +86,14 @@ echo "aaa" > $TPATH/dir1/file1 file1_stat_before_first_access=`_stat $TPATH/dir1/file1` # Accessing file1 the first time -sleep 1 +sleep $access_delay cat $TPATH/dir1/file1 > /dev/null file1_stat_after_first_access=`_stat $TPATH/dir1/file1` _compare_stat_times YNN "$file1_stat_before_first_access" \ "$file1_stat_after_first_access" "after accessing file1 first time" # Accessing file1 a second time -sleep 1 +sleep $access_delay cat $TPATH/dir1/file1 > /dev/null file1_stat_after_second_access=`_stat $TPATH/dir1/file1` _compare_stat_times NNN "$file1_stat_after_first_access" \ @@ -109,7 +116,7 @@ _compare_stat_times NYY "$dir2_stat_before_file_creation" \ # Accessing file2 file2_stat_before_first_access=`_stat $TPATH/dir2/file2` -sleep 1 +sleep $access_delay cat $TPATH/dir2/file2 > /dev/null file2_stat_after_first_access=`_stat $TPATH/dir2/file2` _compare_stat_times YNN "$file2_stat_before_first_access" \ @@ -135,11 +142,15 @@ echo "xyz" > $TPATH/dir1/file1 file1_stat_after_modify=`_stat $TPATH/dir1/file1` _compare_stat_times NYY "$file1_stat_before_modify" \ "$file1_stat_after_modify" "after modifying file1" -sleep 1 -mv $TPATH/dir1/file1 $TPATH/dir1/file1_renamed -file1_stat_after_change=`_stat $TPATH/dir1/file1_renamed` -_compare_stat_times NNY "$file1_stat_after_modify" \ - "$file1_stat_after_change" "after changing file1" + +# exfat does not support last metadata change timestamp +if [ "$FSTYP" != "exfat" ]; then + sleep 1 + mv $TPATH/dir1/file1 $TPATH/dir1/file1_renamed + file1_stat_after_change=`_stat $TPATH/dir1/file1_renamed` + _compare_stat_times NNY "$file1_stat_after_modify" \ + "$file1_stat_after_change" "after changing file1" +fi # Mounting with strictatime option and # accessing a previously created file twice @@ -148,7 +159,7 @@ cat $TPATH/dir2/file3 > /dev/null file3_stat_after_second_access=`_stat $TPATH/dir2/file3` _compare_stat_times YNN "$file3_stat_after_first_access" \ "$file3_stat_after_second_access" "after accessing file3 second time" -sleep 1 +sleep $access_delay cat $TPATH/dir2/file3 > /dev/null file3_stat_after_third_access=`_stat $TPATH/dir2/file3` _compare_stat_times YNN "$file3_stat_after_second_access" \ -- 2.30.2 ^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-04-19 22:06 UTC | newest] Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2021-04-15 9:49 [PATCH v3 0/4] Fix some tests that fail for exfat FS Pavel Reichl 2021-04-15 9:49 ` [PATCH v3 1/4] common/rc: Add _require_{chown,chmod}() Pavel Reichl 2021-04-18 12:50 ` Eryu Guan 2021-04-19 22:06 ` Pavel Reichl 2021-04-15 9:49 ` [PATCH v3 2/4] common: hide permision warning from mkswap for exfat Pavel Reichl 2021-04-15 9:49 ` [PATCH v3 3/4] generic/554: hide permision warning on exfat Pavel Reichl 2021-04-15 9:49 ` [PATCH v3 4/4] generic/003: Amend the test for exfat Pavel Reichl
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).