From: Cyril Hrubis <chrubis@suse.cz>
To: Petr Vorel <pvorel@suse.cz>
Cc: Richard Palethorpe <rpalethorpe@suse.com>, ltp@lists.linux.it
Subject: Re: [LTP] [PATCH v5 06/10] shell: Add $TST_SKIP_FILESYSTEMS + tests
Date: Mon, 12 Sep 2022 17:10:21 +0200 [thread overview]
Message-ID: <Yx9L3SfGpS9LlcEi@yuki> (raw)
In-Reply-To: <20220909141840.18327-7-pvorel@suse.cz>
Hi!
> C API struct tst_test skip_filesystems member equivalent.
>
> Now only running on single filesystem (will be improved in the next
> commit)
>
> Acked-by: Richard Palethorpe <rpalethorpe@suse.com>
> Reviewed-by: Li Wang <liwang@redhat.com>
> Signed-off-by: Petr Vorel <pvorel@suse.cz>
> ---
> changes v4->v5:
> * add fuse to lib/newlib_tests/shell/tst_skip_filesystems.sh
>
> doc/shell-test-api.txt | 2 ++
> .../shell/tst_skip_filesystems.sh | 35 +++++++++++++++++++
> .../shell/tst_skip_filesystems_skip.sh | 17 +++++++++
> lib/tst_supported_fs_types.c | 1 +
> testcases/lib/tst_test.sh | 6 ++++
> 5 files changed, 61 insertions(+)
> create mode 100755 lib/newlib_tests/shell/tst_skip_filesystems.sh
> create mode 100755 lib/newlib_tests/shell/tst_skip_filesystems_skip.sh
>
> diff --git a/doc/shell-test-api.txt b/doc/shell-test-api.txt
> index 65444541e..18ed144a9 100644
> --- a/doc/shell-test-api.txt
> +++ b/doc/shell-test-api.txt
> @@ -229,6 +229,8 @@ simply by setting right '$TST_FOO'.
> | 'TST_NEEDS_KCONFIGS' | Checks kernel kconfigs support for the test (see below).
> | 'TST_NEEDS_KCONFIGS_IFS' | Used for splitting '$TST_NEEDS_KCONFIGS' variable,
> default value is comma, it only supports single character.
> +| 'TST_SKIP_FILESYSTEMS' | Comma separated list of filesystems on which test will be skipped
> + (tst_test.skip_filesystems equivalent).
> | 'TST_TIMEOUT' | Maximum timeout set for the test in sec. Must be int >= 1,
> or -1 (special value to disable timeout), default is 300.
> Variable is meant be set in tests, not by user.
> diff --git a/lib/newlib_tests/shell/tst_skip_filesystems.sh b/lib/newlib_tests/shell/tst_skip_filesystems.sh
> new file mode 100755
> index 000000000..675d0ee5f
> --- /dev/null
> +++ b/lib/newlib_tests/shell/tst_skip_filesystems.sh
> @@ -0,0 +1,35 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +# Copyright (c) 2022 Petr Vorel <pvorel@suse.cz>
> +
> +TST_MOUNT_DEVICE=1
> +TST_NEEDS_ROOT=1
> +TST_FS_TYPE=ext4
> +TST_TESTFUNC=test
> +TST_SKIP_FILESYSTEMS="btrfs,exfat,ext2,ext3,fuse,ntfs,vfat,tmpfs,xfs"
> +TST_CNT=3
> +
> +test1()
> +{
> + EXPECT_PASS "cd $TST_MNTPOINT"
> +}
> +
> +test2()
> +{
> + EXPECT_PASS "grep '$TST_MNTPOINT $TST_FS_TYPE' /proc/mounts"
> +}
> +
> +test3()
> +{
> + local fs fs_skip
> +
> + fs=$(grep "$TST_MNTPOINT $TST_FS_TYPE" /proc/mounts | cut -d ' ' -f3)
> + EXPECT_PASS "[ '$fs' = '$TST_FS_TYPE' ]"
> +
> + for fs_skip in $TST_SKIP_FILESYSTEMS; do
> + EXPECT_FAIL "[ $fs = $fs_skip ]"
> + done
> +}
> +
> +. tst_test.sh
> +tst_run
> diff --git a/lib/newlib_tests/shell/tst_skip_filesystems_skip.sh b/lib/newlib_tests/shell/tst_skip_filesystems_skip.sh
> new file mode 100755
> index 000000000..6748d021d
> --- /dev/null
> +++ b/lib/newlib_tests/shell/tst_skip_filesystems_skip.sh
> @@ -0,0 +1,17 @@
> +#!/bin/sh
> +# SPDX-License-Identifier: GPL-2.0-or-later
> +# Copyright (c) 2022 Petr Vorel <pvorel@suse.cz>
> +
> +TST_MOUNT_DEVICE=1
> +TST_NEEDS_ROOT=1
> +TST_FS_TYPE=ext4
> +TST_TESTFUNC=test
> +TST_SKIP_FILESYSTEMS="ext4"
> +
> +test()
> +{
> + tst_res TFAIL "test should be skipped with TCONF"
> +}
> +
> +. tst_test.sh
> +tst_run
> diff --git a/lib/tst_supported_fs_types.c b/lib/tst_supported_fs_types.c
> index cde162555..41d9bcd27 100644
> --- a/lib/tst_supported_fs_types.c
> +++ b/lib/tst_supported_fs_types.c
> @@ -14,6 +14,7 @@
> #include "tst_test.h"
> #include "tst_fs.h"
>
> +/* NOTE: new filesystem should be also added to tst_skip_filesystems.sh */
> static const char *const fs_type_whitelist[] = {
> "ext2",
> "ext3",
> diff --git a/testcases/lib/tst_test.sh b/testcases/lib/tst_test.sh
> index 7c97b69fe..2937bd80c 100644
> --- a/testcases/lib/tst_test.sh
> +++ b/testcases/lib/tst_test.sh
> @@ -626,6 +626,7 @@ tst_run()
> local _tst_max
> local _tst_name
> local _tst_pattern='[='\''"} \t\/:`$\;].*'
> + local ret
>
> if [ -n "$TST_TEST_PATH" ]; then
> for _tst_i in $(grep '^[^#]*\bTST_' "$TST_TEST_PATH" | sed "s/.*TST_//; s/$_tst_pattern//"); do
> @@ -644,6 +645,7 @@ tst_run()
> CHECKPOINT_WAIT|CHECKPOINT_WAKE);;
> CHECKPOINT_WAKE2|CHECKPOINT_WAKE_AND_WAIT);;
> DEV_EXTRA_OPTS|DEV_FS_OPTS|FORMAT_DEVICE|MOUNT_DEVICE);;
> + SKIP_FILESYSTEMS);;
> *) tst_res TWARN "Reserved variable TST_$_tst_i used!";;
> esac
> done
> @@ -675,6 +677,10 @@ tst_run()
> tst_brk TCONF "test requires kernel $TST_MIN_KVER+"
> fi
>
> + tst_supported_fs -s "$TST_SKIP_FILESYSTEMS" $TST_FS_TYPE
> + ret=$?
> + [ $ret -ne 0 ] && return $ret
So we actually depend here on the tst_supported_fs return value. So at
least we have to do return TCONF in the helper binary even if ve move
the messages into the library.
> _tst_setup_timer
>
> [ "$TST_MOUNT_DEVICE" = 1 ] && TST_FORMAT_DEVICE=1
> --
> 2.37.3
>
--
Cyril Hrubis
chrubis@suse.cz
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2022-09-12 15:08 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-09 14:18 [LTP] [PATCH v5 00/10] shell: df01.sh: $TST_ALL_FILESYSTEMS (.all_filesystems) Petr Vorel
2022-09-09 14:18 ` [LTP] [PATCH v5 01/10] shell: Print mount command in tst_mount() Petr Vorel
2022-09-12 10:02 ` Cyril Hrubis
2022-09-09 14:18 ` [LTP] [PATCH v5 02/10] shell API/tests: Require root for format/mount tests Petr Vorel
2022-09-12 10:03 ` Cyril Hrubis
2022-09-12 10:12 ` Petr Vorel
2022-09-12 10:24 ` Cyril Hrubis
2022-09-12 11:15 ` Petr Vorel
2022-09-13 13:52 ` Petr Vorel
2022-09-09 14:18 ` [LTP] [PATCH v5 03/10] tst_supported_fs: Print TCONF if no filesystem supported Petr Vorel
2022-09-12 14:42 ` Cyril Hrubis
2022-09-12 20:29 ` Petr Vorel
2022-09-13 8:11 ` Cyril Hrubis
2022-09-13 9:29 ` Petr Vorel
2022-09-13 13:08 ` Petr Vorel
2022-09-09 14:18 ` [LTP] [PATCH v5 04/10] tst_supported_fs: Implement skip list Petr Vorel
2022-09-12 14:39 ` Cyril Hrubis
2022-09-12 20:15 ` Petr Vorel
2022-09-09 14:18 ` [LTP] [PATCH v5 05/10] tst_supported_fs: Support skip list when query single fs Petr Vorel
2022-09-12 11:21 ` Petr Vorel
2022-09-12 14:59 ` Cyril Hrubis
2022-09-12 20:38 ` Petr Vorel
2022-09-13 8:14 ` Cyril Hrubis
2022-09-13 9:36 ` Petr Vorel
2022-09-13 10:53 ` Cyril Hrubis
2022-09-13 13:46 ` Petr Vorel
2022-09-09 14:18 ` [LTP] [PATCH v5 06/10] shell: Add $TST_SKIP_FILESYSTEMS + tests Petr Vorel
2022-09-12 15:10 ` Cyril Hrubis [this message]
2022-09-12 20:43 ` Petr Vorel
2022-09-09 14:18 ` [LTP] [PATCH v5 07/10] tst_test.sh: Introduce TST_FS_TYPE_FUSE Petr Vorel
2022-09-12 15:28 ` Cyril Hrubis
2022-09-12 20:04 ` Petr Vorel
2022-09-13 8:15 ` Cyril Hrubis
2022-09-13 8:37 ` Petr Vorel
2022-09-13 14:30 ` Petr Vorel
2022-09-09 14:18 ` [LTP] [PATCH v5 08/10] tst_test.sh: Add $TST_ALL_FILESYSTEMS Petr Vorel
2022-09-09 14:18 ` [LTP] [PATCH v5 09/10] shell: Add tests for TST_ALL_FILESYSTEMS=1 Petr Vorel
2022-09-09 14:18 ` [LTP] [PATCH v5 10/10] df01.sh: Convert to TST_ALL_FILESYSTEMS=1 Petr Vorel
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=Yx9L3SfGpS9LlcEi@yuki \
--to=chrubis@suse.cz \
--cc=ltp@lists.linux.it \
--cc=pvorel@suse.cz \
--cc=rpalethorpe@suse.com \
/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.