From: Richard Palethorpe <rpalethorpe@suse.de>
To: Liao Huangjie <liaohj.jy@fujitsu.com>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH] syscalls/read05: Test read with zero count
Date: Tue, 26 Jul 2022 10:52:23 +0100 [thread overview]
Message-ID: <87czds41ub.fsf@suse.de> (raw)
In-Reply-To: <1658732564-31728-1-git-send-email-liaohj.jy@fujitsu.com>
Hello,
Liao Huangjie <liaohj.jy@fujitsu.com> writes:
> From: Huangjie Liao <liaohj.jy@fujitsu.com>
>
> Signed-off-by: Huangjie Liao <liaohj.jy@fujitsu.com>
> ---
> runtest/syscalls | 1 +
> testcases/kernel/syscalls/read/.gitignore | 1 +
> testcases/kernel/syscalls/read/read05.c | 44 +++++++++++++++++++++++++++++++
> 3 files changed, 46 insertions(+)
> create mode 100644 testcases/kernel/syscalls/read/read05.c
>
> diff --git a/runtest/syscalls b/runtest/syscalls
> index 3847e8a..0bd47fc 100644
> --- a/runtest/syscalls
> +++ b/runtest/syscalls
> @@ -1094,6 +1094,7 @@ read01 read01
> read02 read02
> read03 read03
> read04 read04
> +read05 read05
>
> readahead01 readahead01
> readahead02 readahead02
> diff --git a/testcases/kernel/syscalls/read/.gitignore b/testcases/kernel/syscalls/read/.gitignore
> index e89c008..69d97b3 100644
> --- a/testcases/kernel/syscalls/read/.gitignore
> +++ b/testcases/kernel/syscalls/read/.gitignore
> @@ -2,3 +2,4 @@
> /read02
> /read03
> /read04
> +/read05
> diff --git a/testcases/kernel/syscalls/read/read05.c b/testcases/kernel/syscalls/read/read05.c
> new file mode 100644
> index 0000000..83ac763
> --- /dev/null
> +++ b/testcases/kernel/syscalls/read/read05.c
> @@ -0,0 +1,44 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later
> +/*
> + * Copyright (c) 2022 FUJITSU LIMITED. All Rights Reserved.
> + * Author: Huangjie Liao <liaohj.jy@fujitsu.com>
> + */
> +
> +/*\
> + * [Description]
> + *
> + * In the absence of any errors, a read() with a count of 0 returns
> zero.
This test is quite similar to read04. You could modify that test to read
multiple times from 0 bytes to the total number of bytes available.
> + */
> +
> +#include <errno.h>
> +#include "tst_test.h"
> +
> +#define SIZE 512
This could be set to 2*getpagesize() at runtime. Then you can try
reading every length between 0 and 2*getpagesize().
Errors tend to be made on page boundaries and similar.
> +
> +static int fd;
> +static char buf[SIZE];
> +
> +static void verify_read(void)
> +{
> + TST_EXP_VAL(read(fd, buf, 0), 0);
> +}
> +
> +static void setup(void)
> +{
> + memset(buf, '*', SIZE);
> + fd = SAFE_OPEN("testfile", O_RDWR | O_CREAT, 0700);
> + SAFE_WRITE(1, fd, buf, SIZE);
> +}
> +
> +static void cleanup(void)
> +{
> + if (fd > 0)
> + SAFE_CLOSE(fd);
> +}
> +
> +static struct tst_test test = {
> + .test_all = verify_read,
> + .setup = setup,
> + .cleanup = cleanup,
> + .needs_tmpdir = 1,
It would increase test coverage greatly to run this on all filesystems
(i.e. set .all_filesystems = 1). For an example see rename10.
> +};
> --
> 1.8.3.1
--
Thank you,
Richard.
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2022-07-26 10:15 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-25 7:02 [LTP] [PATCH] syscalls/read05: Test read with zero count Liao Huangjie
2022-07-26 9:52 ` Richard Palethorpe [this message]
2022-08-19 8:59 ` liaohj.jy
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=87czds41ub.fsf@suse.de \
--to=rpalethorpe@suse.de \
--cc=liaohj.jy@fujitsu.com \
--cc=ltp@lists.linux.it \
/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.