FS/XFS testing framework
 help / color / mirror / Atom feed
From: "Darrick J. Wong" <djwong@kernel.org>
To: Zorro Lang <zlang@kernel.org>
Cc: fstests@vger.kernel.org, tytso@mit.edu, linux-xfs@vger.kernel.org
Subject: Re: [PATCH] fstests: provides smoketest template
Date: Wed, 26 Jul 2023 18:51:48 -0700	[thread overview]
Message-ID: <20230727015148.GI11340@frogsfrogsfrogs> (raw)
In-Reply-To: <20230726200327.239085-1-zlang@kernel.org>

On Thu, Jul 27, 2023 at 04:03:27AM +0800, Zorro Lang wrote:
> Darrick suggests that fstests can provide a simple smoketest, by running
> several generic filesystem smoke testing for five minutes apiece. Since
> there are only five smoke tests, this is effectively a 16min super-quick
> test.
> 
> With gcov enabled, running these tests yields about ~75% coverage for
> iomap and ~60% for xfs; or ~50% for ext4 and ~75% for ext4; and ~45% for
> btrfs.  Coverage was about ~65% for the pagecache.
> 
> To implement that, this patch add a new "-t" option to ./check, and a
> new directory "template" under xfstests/, then we can have smoketest
> template, also can have more other testing templates.
> 
> Signed-off-by: Darrick J. Wong <djwong@kernel.org>
> Signed-off-by: Zorro Lang <zlang@kernel.org>
> ---
> 
> Hi,
> 
> This patch uses another way to achieve the smoketest requirement[1]. When
> I reviewed the patch from Darrick [2], I thought "smoketest" might not be
> the last one requirement likes that. I don't want to give each kind of
> tests a separated option. But we might can leave a hook for more fs-devel
> who have good testing templates for fstests.
> 
> Although we have test groups, but those group names are too complex for
> the users who not always use fstests. So I'm thinking about providing
> some simple templates to run fstests, these templates base on test groups
> and some fstests global parameters, help users to know what kind of
> test they can do.
> 
> Feel free to discuss, and if most of you prefer the original patch [2],
> I'll also think about merging the original one :)
> 
> Thanks,
> Zorro
> 
> [1]
> https://lore.kernel.org/fstests/20230726145441.lbzzokwigrztimyq@zlang-mailbox/T/#mabc0de98699f1b877c87caccb13809c9283c0606
> [2]
> https://lore.kernel.org/fstests/169033660570.3222210.3010411210438664310.stgit@frogsfrogsfrogs/T/#u
> 
> 
>  check               |  8 ++++++++
>  doc/group-names.txt |  1 +
>  templates/smoketest | 16 ++++++++++++++++
>  tests/generic/475   |  2 +-
>  tests/generic/476   |  2 +-
>  tests/generic/521   |  2 +-
>  tests/generic/522   |  2 +-
>  tests/generic/642   |  2 +-
>  8 files changed, 30 insertions(+), 5 deletions(-)
>  create mode 100644 templates/smoketest
> 
> diff --git a/check b/check
> index 89e7e7bf..7100aae4 100755
> --- a/check
> +++ b/check
> @@ -335,6 +335,14 @@ while [ $# -gt 0 ]; do
>  		;;
>  	-i)	iterations=$2; shift ;;
>  	-I) 	iterations=$2; istop=true; shift ;;
> +	-t)
> +		source templates/$2
> +		if [ $? -ne 0 ];then
> +			echo "Cannot import the templates/$2"
> +			exit 1
> +		fi
> +		shift
> +		;;
>  	-T)	timestamp=true ;;
>  	-d)	DUMP_OUTPUT=true ;;
>  	-b)	brief_test_summary=true;;
> diff --git a/doc/group-names.txt b/doc/group-names.txt
> index 1c35a394..c3dcca37 100644
> --- a/doc/group-names.txt
> +++ b/doc/group-names.txt
> @@ -118,6 +118,7 @@ selftest		tests with fixed results, used to validate testing setup
>  send			btrfs send/receive
>  shrinkfs		decreasing the size of a filesystem
>  shutdown		FS_IOC_SHUTDOWN ioctl
> +smoketest		Simple smoke tests
>  snapshot		btrfs snapshots
>  soak			long running soak tests whose runtime can be controlled
>                          directly by setting the SOAK_DURATION variable
> diff --git a/templates/smoketest b/templates/smoketest
> new file mode 100644
> index 00000000..40a0104b
> --- /dev/null
> +++ b/templates/smoketest
> @@ -0,0 +1,16 @@
> +##/bin/bash
> +# For infrequent filesystem developers who simply want to run a quick test
> +# of the most commonly used filesystem functionality, use this command:
> +#
> +#     ./check -t smoketest <other config options>
> +#
> +# This template helps fstests to run several tests to exercise the file I/O,
> +# metadata, and crash recovery exercisers for four minutes apiece.  This
> +# should complete in approximately 20 minutes.
> +
> +echo "**********************"
> +echo "* A Quick Smoke Test *"
> +echo "**********************"
> +
> +[ -z "$SOAK_DURATION" ] && SOAK_DURATION="4m"
> +GROUP_LIST="smoketest"

Why not simply put

SOAK_DURATION=4m
GROUP_LIST=smoketest

in configs/smoketest.config and tell people to run

HOST_OPTIONS=configs/smoketest.config ./check

?

--D

> diff --git a/tests/generic/475 b/tests/generic/475
> index 0cbf5131..ce7fe013 100755
> --- a/tests/generic/475
> +++ b/tests/generic/475
> @@ -12,7 +12,7 @@
>  # testing efforts.
>  #
>  . ./common/preamble
> -_begin_fstest shutdown auto log metadata eio recoveryloop
> +_begin_fstest shutdown auto log metadata eio recoveryloop smoketest
>  
>  # Override the default cleanup function.
>  _cleanup()
> diff --git a/tests/generic/476 b/tests/generic/476
> index 8e93b734..b1ae4df4 100755
> --- a/tests/generic/476
> +++ b/tests/generic/476
> @@ -8,7 +8,7 @@
>  # bugs in the write path.
>  #
>  . ./common/preamble
> -_begin_fstest auto rw long_rw stress soak
> +_begin_fstest auto rw long_rw stress soak smoketest
>  
>  # Override the default cleanup function.
>  _cleanup()
> diff --git a/tests/generic/521 b/tests/generic/521
> index 22dd31a8..0956e501 100755
> --- a/tests/generic/521
> +++ b/tests/generic/521
> @@ -7,7 +7,7 @@
>  # Long-soak directio fsx test
>  #
>  . ./common/preamble
> -_begin_fstest soak long_rw
> +_begin_fstest soak long_rw smoketest
>  
>  # Import common functions.
>  . ./common/filter
> diff --git a/tests/generic/522 b/tests/generic/522
> index f0cbcb24..0e4e6009 100755
> --- a/tests/generic/522
> +++ b/tests/generic/522
> @@ -7,7 +7,7 @@
>  # Long-soak buffered fsx test
>  #
>  . ./common/preamble
> -_begin_fstest soak long_rw
> +_begin_fstest soak long_rw smoketest
>  
>  # Import common functions.
>  . ./common/filter
> diff --git a/tests/generic/642 b/tests/generic/642
> index eba90903..e6a475a8 100755
> --- a/tests/generic/642
> +++ b/tests/generic/642
> @@ -8,7 +8,7 @@
>  # bugs in the xattr code.
>  #
>  . ./common/preamble
> -_begin_fstest auto soak attr long_rw stress
> +_begin_fstest auto soak attr long_rw stress smoketest
>  
>  _cleanup()
>  {
> -- 
> 2.40.1
> 

  reply	other threads:[~2023-07-27  1:51 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-07-26 20:03 [PATCH] fstests: provides smoketest template Zorro Lang
2023-07-27  1:51 ` Darrick J. Wong [this message]
2023-07-27  3:05   ` Zorro Lang

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=20230727015148.GI11340@frogsfrogsfrogs \
    --to=djwong@kernel.org \
    --cc=fstests@vger.kernel.org \
    --cc=linux-xfs@vger.kernel.org \
    --cc=tytso@mit.edu \
    --cc=zlang@kernel.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