All of lore.kernel.org
 help / color / mirror / Atom feed
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
> 

  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 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.