From: Eryu Guan <guan@eryu.me>
To: David Howells <dhowells@redhat.com>
Cc: fstests@vger.kernel.org, linux-afs@lists.infradead.org
Subject: Re: [PATCH 2/9] generic/294, afs: Allow for mknod subtest failing if mknod not supported
Date: Sun, 30 May 2021 20:49:58 +0800 [thread overview]
Message-ID: <YLOJ9h734bmR140Z@desktop> (raw)
In-Reply-To: <162194964249.4011860.17729034205311880257.stgit@warthog.procyon.org.uk>
On Tue, May 25, 2021 at 02:34:02PM +0100, David Howells wrote:
> If mknod is not supported, some of generic/294 will fail due to that rather
> than what's actually being tested - but the other subtests will still work
> as before.
>
> Add a "_has_mknod" function that can be used to find out if the mknod tests
> should be skipped. This is then used to allow the rest of generic/294 to
> be employed on AFS.
>
> Signed-off-by: David Howells <dhowells@redhat.com>
> cc: linux-afs@lists.infradead.org
> ---
>
> common/rc | 10 ++++++++++
> doc/requirement-checking.txt | 9 +++++++++
> tests/generic/294 | 8 ++++++++
> tests/generic/294.cfg | 1 +
> tests/generic/294.out | 5 -----
> tests/generic/294.out.mknod | 6 ++++++
> tests/generic/294.out.nomknod | 7 +++++++
> 7 files changed, 41 insertions(+), 5 deletions(-)
> create mode 100644 tests/generic/294.cfg
> delete mode 100644 tests/generic/294.out
> create mode 100644 tests/generic/294.out.mknod
> create mode 100644 tests/generic/294.out.nomknod
>
> diff --git a/common/rc b/common/rc
> index f24d0e87..4ffec9a2 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -4603,6 +4603,16 @@ _getcap()
> return ${PIPESTATUS[0]}
> }
>
> +_has_mknod()
> +{
> + case $FSTYP in
> + afs)
> + return 1;;
> + *)
> + return 0;;
> + esac
> +}
_require_mknod checks for mknod support by trying to mknod and _notrun
the test if mknod fails.
So does afs return any failure like EOPNOTSUPP? If so I think we could
refactor _require_mknod into something like
_has_mknod || _notrun "xxxx"
and do the mknod check in _has_mknod, isntead of whitelist fs names.
Thanks,
Eryu
> +
> init_rc
>
> ################################################################################
> diff --git a/doc/requirement-checking.txt b/doc/requirement-checking.txt
> index 45d2756b..d31ba3fb 100644
> --- a/doc/requirement-checking.txt
> +++ b/doc/requirement-checking.txt
> @@ -16,6 +16,8 @@ they have. This is done with _require_<xxx> macros, which may take parameters.
>
> _require_chattr <letters>
> _require_exportfs
> + _require_mknod
> + _has_mknod
>
> (3) System call requirements.
>
> @@ -97,6 +99,13 @@ _require_exportfs
> The test also requires the use of the open_by_handle_at() system call and
> will be skipped if it isn't available in the kernel.
>
> +_require_mknod
> +_has_mknod
> +
> + The test requires that the $TEST_DEV filesystem supports mknod(2).
> + _require_mknod will cause the test to be skipped; _has_mknod returns 0 if
> + mknod is supported and 1 otherwise.
> +
>
> ========================
> SYSTEM CALL REQUIREMENTS
> diff --git a/tests/generic/294 b/tests/generic/294
> index 55b24e12..4fc05082 100755
> --- a/tests/generic/294
> +++ b/tests/generic/294
> @@ -8,6 +8,7 @@
> # we ask to create an already-existing entity on an RO filesystem
> #
> seq=`basename $0`
> +seqfull=$0
> seqres=$RESULT_DIR/$seq
> echo "QA output created by $seq"
>
> @@ -34,6 +35,13 @@ _require_scratch
> _require_symlinks
> _require_mknod
>
> +features=""
> +if ! _has_mknod; then
> + echo HAS NO MKNOD $?
> + features="nomknod"
> +fi
> +_link_out_file "$features"
> +
> rm -f $seqres.full
> _scratch_mkfs > $seqres.full 2>&1 || _fail "Could not mkfs scratch device"
>
> diff --git a/tests/generic/294.cfg b/tests/generic/294.cfg
> new file mode 100644
> index 00000000..c0466cde
> --- /dev/null
> +++ b/tests/generic/294.cfg
> @@ -0,0 +1 @@
> +nomknod: nomknod
> diff --git a/tests/generic/294.out b/tests/generic/294.out
> deleted file mode 100644
> index 78024728..00000000
> --- a/tests/generic/294.out
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -QA output created by 294
> -mknod: SCRATCH_MNT/294.test/testnode: File exists
> -mkdir: cannot create directory 'SCRATCH_MNT/294.test/testdir': File exists
> -touch: cannot touch 'SCRATCH_MNT/294.test/testtarget': Read-only file system
> -ln: creating symbolic link 'SCRATCH_MNT/294.test/testlink': File exists
> diff --git a/tests/generic/294.out.mknod b/tests/generic/294.out.mknod
> new file mode 100644
> index 00000000..4aea9d82
> --- /dev/null
> +++ b/tests/generic/294.out.mknod
> @@ -0,0 +1,6 @@
> +QA output created by 294
> +mknod: SCRATCH_MNT/294.test/testnode: Operation not permitted
> +mknod: SCRATCH_MNT/294.test/testnode: Read-only file system
> +mkdir: cannot create directory 'SCRATCH_MNT/294.test/testdir': File exists
> +touch: cannot touch 'SCRATCH_MNT/294.test/testtarget': Read-only file system
> +ln: creating symbolic link 'SCRATCH_MNT/294.test/testlink': File exists
> diff --git a/tests/generic/294.out.nomknod b/tests/generic/294.out.nomknod
> new file mode 100644
> index 00000000..43658aa8
> --- /dev/null
> +++ b/tests/generic/294.out.nomknod
> @@ -0,0 +1,7 @@
> +QA output created by 294
> +HAS NO MKNOD
> +mknod: SCRATCH_MNT/294.test/testnode: Operation not permitted
> +mknod: SCRATCH_MNT/294.test/testnode: Read-only file system
> +mkdir: cannot create directory 'SCRATCH_MNT/294.test/testdir': File exists
> +touch: cannot touch 'SCRATCH_MNT/294.test/testtarget': Read-only file system
> +ln: creating symbolic link 'SCRATCH_MNT/294.test/testlink': File exists
>
next prev parent reply other threads:[~2021-05-30 12:50 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-25 13:33 [PATCH 0/9] Add support for using xfstests to test AFS David Howells
2021-05-25 13:33 ` [PATCH 1/9] Add AFS support David Howells
2021-05-25 13:34 ` [PATCH 2/9] generic/294, afs: Allow for mknod subtest failing if mknod not supported David Howells
2021-05-25 16:09 ` Darrick J. Wong
2021-05-25 16:19 ` David Howells
2021-05-25 16:26 ` Darrick J. Wong
2021-05-30 12:49 ` Eryu Guan [this message]
2021-06-01 14:31 ` David Howells
2021-06-06 11:58 ` Eryu Guan
2021-05-25 13:34 ` [PATCH 3/9] generic/314, afs: Allow for a filesystem that doesn't honour SGID inheritance David Howells
2021-05-25 16:10 ` Darrick J. Wong
2021-05-25 13:34 ` [PATCH 4/9] generic/317, afs: Allow for a filesystem not to honour the local uid/gid David Howells
2021-05-25 16:17 ` Darrick J. Wong
2021-05-25 16:41 ` David Howells
2021-05-25 13:34 ` [PATCH 5/9] generic/123, generic/128, afs: Allow for an fs that does its own perm management David Howells
2021-05-25 16:19 ` Darrick J. Wong
2021-05-25 16:44 ` David Howells
2021-05-25 16:51 ` Darrick J. Wong
2021-05-25 13:34 ` [PATCH 6/9] Add the ability to require O_TMPFILE to be supported for a test David Howells
2021-05-25 16:19 ` Darrick J. Wong
2021-05-30 12:54 ` Eryu Guan
2021-05-25 13:34 ` [PATCH 7/9] afs: Indicate the minimum DIO alignment is 1 David Howells
2021-05-25 13:34 ` [PATCH 8/9] generic/465: Fix handling of DIO alignment < sizeof(long) David Howells
2021-05-25 16:25 ` Darrick J. Wong
2021-05-25 16:46 ` David Howells
2021-05-25 13:34 ` [PATCH 9/9] Fix other posix_memalign() alignment issues David Howells
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=YLOJ9h734bmR140Z@desktop \
--to=guan@eryu.me \
--cc=dhowells@redhat.com \
--cc=fstests@vger.kernel.org \
--cc=linux-afs@lists.infradead.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox