From: swarup <swarupkotikalapudi@gmail.com>
To: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org, shuah@kernel.org, hughd@google.com
Subject: Re: + selftests-proc-add-proc-pid-statm-output-validation.patch added to mm-nonmm-unstable branch
Date: Mon, 2 Oct 2023 23:22:24 +0530 [thread overview]
Message-ID: <ZRsDWFxy3rcILfxg@swarup-virtual-machine> (raw)
In-Reply-To: <c1c55bdb-78cd-4b74-b9e5-2667dfdf9b2a@p183>
On Mon, Oct 02, 2023 at 03:38:25PM +0300, Alexey Dobriyan wrote:
> On Sun, Oct 01, 2023 at 12:37:40PM -0700, Andrew Morton wrote:
> > selftests-proc-add-proc-pid-statm-output-validation.patch
>
> > Add /proc/${pid}/statm validation
> >
> > /proc/$(pid)/statm output is expected to be:
> > "0 0 0 * 0 0 0\n"
> > Here * can be any value
> >
> > Read output of /proc/$(pid)/statm
> > and compare length of output is
> > equal or greater than expected output
>
> > --- a/tools/testing/selftests/proc/proc-empty-vm.c~selftests-proc-add-proc-pid-statm-output-validation
> > +++ a/tools/testing/selftests/proc/proc-empty-vm.c
> > @@ -303,6 +303,37 @@ static int test_proc_pid_smaps_rollup(pi
> > }
> > }
> >
> > +static const char g_statm[] = "0 0 0 * 0 0 0\n";
>
> This is both unreliable and incorrect.
>
> 4th value is "end_code - start_code" when exec is done which could be
> anything not 1-digit number (although unlikely).
>
> Testing for strlen is simply too weak of a test.
>
> > +static int test_proc_pid_statm(pid_t pid)
> > +{
> > + char buf[4096];
> > +
> > + snprintf(buf, sizeof(buf), "/proc/%u/statm", pid);
> > +
> > + int fd = open(buf, O_RDONLY);
> > +
> > + if (fd == -1) {
> > + if (errno == ENOENT) {
> > + /*
> > + * /proc/${pid}/statm is under CONFIG_PROC_PAGE_MONITOR,
> > + * it doesn't necessarily exist.
> > + */
> > + return EXIT_SUCCESS;
> > + }
> > + perror("open /proc/${pid}/statm");
> > + return EXIT_FAILURE;
> > + } else {
> > + ssize_t rv = read(fd, buf, sizeof(buf));
> > +
> > + close(fd);
> > + size_t len = strlen(g_statm);
> > +
> > + assert(rv >= len);
> > + return EXIT_SUCCESS;
> > + }
> > +}
> > +
> > int main(void)
> > {
> > int rv = EXIT_SUCCESS;
> > @@ -389,11 +420,8 @@ int main(void)
> > if (rv == EXIT_SUCCESS) {
> > rv = test_proc_pid_smaps_rollup(pid);
> > }
> > - /*
> > - * TODO test /proc/${pid}/statm, task_statm()
> > - * ->start_code, ->end_code aren't updated by munmap().
> > - * Output can be "0 0 0 2 0 0 0\n" where "2" can be anything.
> > - */
> > + if (rv == EXIT_SUCCESS)
> > + rv = test_proc_pid_statm(pid);
> >
> > /* Cut the rope. */
Hi Alexey,
Thanks for reviewing the changes.
I assume below output of /proc/${procid}/statm
can be assumed as mentioned below:
static const char g_statm[] = "0 0 0 * 0 0 0\n"
If 0 is correct at their places, only issue is *,
whose value will be single digit or could change?
If this assumption is correct, i can change the
validation to handle 4th postion, and remaining
place will validate if it has zero or not,
and will send another patch?
Thanks,
Swarup
next prev parent reply other threads:[~2023-10-02 17:52 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20231001193740.B716AC433C7@smtp.kernel.org>
2023-10-02 12:38 ` + selftests-proc-add-proc-pid-statm-output-validation.patch added to mm-nonmm-unstable branch Alexey Dobriyan
2023-10-02 17:52 ` swarup [this message]
2023-10-03 19:43 ` [PATCH v2] selftests:proc Add /proc/$(pid)/statm output validation Swarup Laxman Kotiaklapudi
[not found] <20231004201701.87CB5C433C7@smtp.kernel.org>
2023-10-09 6:14 ` + selftests-proc-add-proc-pid-statm-output-validation.patch added to mm-nonmm-unstable branch Alexey Dobriyan
2023-10-09 9:00 ` Alexey Dobriyan
2023-10-09 18:18 ` swarup
2023-10-09 18:16 ` swarup
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=ZRsDWFxy3rcILfxg@swarup-virtual-machine \
--to=swarupkotikalapudi@gmail.com \
--cc=adobriyan@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=hughd@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=shuah@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