From: "liaohj.jy@fujitsu.com" <liaohj.jy@fujitsu.com>
To: "rpalethorpe@suse.de" <rpalethorpe@suse.de>
Cc: "ltp@lists.linux.it" <ltp@lists.linux.it>
Subject: Re: [LTP] [PATCH] syscalls/read05: Test read with zero count
Date: Fri, 19 Aug 2022 08:59:36 +0000 [thread overview]
Message-ID: <4fcd916d-bb58-0b7a-2e2a-69b84f5ecdf7@fujitsu.com> (raw)
In-Reply-To: <87czds41ub.fsf@suse.de>
Hi Richard
> 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.
OK
>
>> + */
>> +
>> +#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().
Then we can increase 2kb length every time, ie 0 2k 4k 6k 8kb.
But I have a question that used which patten to fill the 8KB space.
Maybe write "A" in the [0-4k] and "B" in the [4-8k]. Or use "A" to
fill the whole 8k space?
>
> 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.
Yes.
Best Regards
>
>> +};
>> --
>> 1.8.3.1
>
>
--
Mailing list info: https://lists.linux.it/listinfo/ltp
prev parent reply other threads:[~2022-08-19 8:59 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
2022-08-19 8:59 ` liaohj.jy [this message]
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=4fcd916d-bb58-0b7a-2e2a-69b84f5ecdf7@fujitsu.com \
--to=liaohj.jy@fujitsu.com \
--cc=ltp@lists.linux.it \
--cc=rpalethorpe@suse.de \
/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;
as well as URLs for NNTP newsgroup(s).