From: Cyril Hrubis <chrubis@suse.cz>
To: Amir Goldstein <amir73il@gmail.com>
Cc: ltp@lists.linux.it, Jan Stancek <jstancek@redhat.com>,
Miklos Szeredi <miklos@szeredi.hu>,
linux-unionfs@vger.kernel.org
Subject: Re: [PATCH v4 2/6] syscalls/readahead02: abort test if readahead syscall fails
Date: Mon, 3 Dec 2018 15:27:48 +0100 [thread overview]
Message-ID: <20181203142748.GA4974@rei.lan> (raw)
In-Reply-To: <20181128164645.783-3-amir73il@gmail.com>
Hi!
> There is no reason to continue the test if readahead syscall fails
> and we can also check and report TCONF if filesystem does not support
> readahead.
>
> Signed-off-by: Amir Goldstein <amir73il@gmail.com>
> ---
> .../kernel/syscalls/readahead/readahead02.c | 27 +++++++++----------
> 1 file changed, 12 insertions(+), 15 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/readahead/readahead02.c b/testcases/kernel/syscalls/readahead/readahead02.c
> index 956a1d5e5..88eb5fbff 100644
> --- a/testcases/kernel/syscalls/readahead/readahead02.c
> +++ b/testcases/kernel/syscalls/readahead/readahead02.c
> @@ -44,19 +44,6 @@ static struct tst_option options[] = {
> {NULL, NULL, NULL}
> };
>
> -static int check_ret(long expected_ret)
> -{
> - if (expected_ret == TST_RET) {
> - tst_res(TPASS, "expected ret success - "
> - "returned value = %ld", TST_RET);
> - return 0;
> - }
> - tst_res(TFAIL | TTERRNO, "unexpected failure - "
> - "returned value = %ld, expected: %ld",
> - TST_RET, expected_ret);
> - return 1;
> -}
> -
> static int has_file(const char *fname, int required)
> {
> struct stat buf;
> @@ -162,8 +149,8 @@ static void read_testfile(int do_readahead, const char *fname, size_t fsize,
> do {
> TEST(readahead(fd, offset, fsize - offset));
> if (TST_RET != 0) {
> - check_ret(0);
> - break;
> + SAFE_CLOSE(fd);
> + return;
> }
>
> /* estimate max readahead size based on first call */
> @@ -251,6 +238,16 @@ static void test_readahead(void)
> tst_res(TINFO, "read_testfile(1)");
> read_testfile(1, testfile, testfile_size, &read_bytes_ra,
> &usec_ra, &cached_ra);
> + if (TST_RET != 0) {
> + if (TST_ERR == EINVAL) {
> + tst_res(TCONF, "readahead not supported on %s",
> + tst_device->fs_type);
> + } else {
> + tst_res(TFAIL | TTERRNO, "readahead failed on %s",
> + tst_device->fs_type);
> + }
> + return;
> + }
I do not like that we depend on the fact that TST_RET is not set
read_testfile() function. Can we rather than that explicitely return
the TST_ERR from the read_testfile() function instead? As it is zeroed
before the call in the TEST() macro we can just do return TST_ERR in the
read_testfile() and then ret = read_testfile() if (ret) ...
Also no need to resend, if you agree with the change I will fix that
before applying.
--
Cyril Hrubis
chrubis@suse.cz
WARNING: multiple messages have this Message-ID (diff)
From: Cyril Hrubis <chrubis@suse.cz>
To: ltp@lists.linux.it
Subject: [LTP] [PATCH v4 2/6] syscalls/readahead02: abort test if readahead syscall fails
Date: Mon, 3 Dec 2018 15:27:48 +0100 [thread overview]
Message-ID: <20181203142748.GA4974@rei.lan> (raw)
In-Reply-To: <20181128164645.783-3-amir73il@gmail.com>
Hi!
> There is no reason to continue the test if readahead syscall fails
> and we can also check and report TCONF if filesystem does not support
> readahead.
>
> Signed-off-by: Amir Goldstein <amir73il@gmail.com>
> ---
> .../kernel/syscalls/readahead/readahead02.c | 27 +++++++++----------
> 1 file changed, 12 insertions(+), 15 deletions(-)
>
> diff --git a/testcases/kernel/syscalls/readahead/readahead02.c b/testcases/kernel/syscalls/readahead/readahead02.c
> index 956a1d5e5..88eb5fbff 100644
> --- a/testcases/kernel/syscalls/readahead/readahead02.c
> +++ b/testcases/kernel/syscalls/readahead/readahead02.c
> @@ -44,19 +44,6 @@ static struct tst_option options[] = {
> {NULL, NULL, NULL}
> };
>
> -static int check_ret(long expected_ret)
> -{
> - if (expected_ret == TST_RET) {
> - tst_res(TPASS, "expected ret success - "
> - "returned value = %ld", TST_RET);
> - return 0;
> - }
> - tst_res(TFAIL | TTERRNO, "unexpected failure - "
> - "returned value = %ld, expected: %ld",
> - TST_RET, expected_ret);
> - return 1;
> -}
> -
> static int has_file(const char *fname, int required)
> {
> struct stat buf;
> @@ -162,8 +149,8 @@ static void read_testfile(int do_readahead, const char *fname, size_t fsize,
> do {
> TEST(readahead(fd, offset, fsize - offset));
> if (TST_RET != 0) {
> - check_ret(0);
> - break;
> + SAFE_CLOSE(fd);
> + return;
> }
>
> /* estimate max readahead size based on first call */
> @@ -251,6 +238,16 @@ static void test_readahead(void)
> tst_res(TINFO, "read_testfile(1)");
> read_testfile(1, testfile, testfile_size, &read_bytes_ra,
> &usec_ra, &cached_ra);
> + if (TST_RET != 0) {
> + if (TST_ERR == EINVAL) {
> + tst_res(TCONF, "readahead not supported on %s",
> + tst_device->fs_type);
> + } else {
> + tst_res(TFAIL | TTERRNO, "readahead failed on %s",
> + tst_device->fs_type);
> + }
> + return;
> + }
I do not like that we depend on the fact that TST_RET is not set
read_testfile() function. Can we rather than that explicitely return
the TST_ERR from the read_testfile() function instead? As it is zeroed
before the call in the TEST() macro we can just do return TST_ERR in the
read_testfile() and then ret = read_testfile() if (ret) ...
Also no need to resend, if you agree with the change I will fix that
before applying.
--
Cyril Hrubis
chrubis@suse.cz
next prev parent reply other threads:[~2018-12-03 14:27 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-11-28 16:46 [PATCH v4 0/6] Tests for readahead() and fadvise() on overlayfs Amir Goldstein
2018-11-28 16:46 ` [LTP] " Amir Goldstein
2018-11-28 16:46 ` [PATCH v4 1/6] syscalls/readahead02: Convert to newlib and cleanup Amir Goldstein
2018-11-28 16:46 ` [LTP] " Amir Goldstein
2018-12-03 14:39 ` Cyril Hrubis
2018-12-03 14:39 ` [LTP] " Cyril Hrubis
2018-12-03 14:59 ` Amir Goldstein
2018-12-03 14:59 ` [LTP] " Amir Goldstein
2018-11-28 16:46 ` [PATCH v4 2/6] syscalls/readahead02: abort test if readahead syscall fails Amir Goldstein
2018-11-28 16:46 ` [LTP] " Amir Goldstein
2018-12-03 14:27 ` Cyril Hrubis [this message]
2018-12-03 14:27 ` Cyril Hrubis
2018-12-03 14:52 ` Amir Goldstein
2018-12-03 14:52 ` [LTP] " Amir Goldstein
2018-11-28 16:46 ` [PATCH v4 3/6] syscalls/readahead02: fail test if readahead did not use any cache Amir Goldstein
2018-11-28 16:46 ` [LTP] " Amir Goldstein
2018-11-28 16:46 ` [PATCH v4 4/6] syscalls/readahead02: Convert to tst_timer helpers Amir Goldstein
2018-11-28 16:46 ` [LTP] " Amir Goldstein
2018-11-28 16:46 ` [PATCH v4 5/6] syscalls/readahead02: test readahead() on an overlayfs file Amir Goldstein
2018-11-28 16:46 ` [LTP] " Amir Goldstein
2018-12-04 14:02 ` Cyril Hrubis
2018-12-04 14:02 ` [LTP] " Cyril Hrubis
2018-11-28 16:46 ` [PATCH v4 6/6] syscalls/readahead02: test readahead using posix_fadvise() Amir Goldstein
2018-11-28 16:46 ` [LTP] " Amir Goldstein
2018-12-04 14:10 ` Cyril Hrubis
2018-12-04 14:10 ` [LTP] " Cyril Hrubis
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=20181203142748.GA4974@rei.lan \
--to=chrubis@suse.cz \
--cc=amir73il@gmail.com \
--cc=jstancek@redhat.com \
--cc=linux-unionfs@vger.kernel.org \
--cc=ltp@lists.linux.it \
--cc=miklos@szeredi.hu \
/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.