From: Shuah Khan <skhan@linuxfoundation.org>
To: Abdulrasaq Lawani <abdulrasaqolawani@gmail.com>,
Shuah Khan <shuah@kernel.org>
Cc: javiercarrascocruz@gmail.com, linux-kernel@vger.kernel.org,
linux-kselftest@vger.kernel.org,
Shuah Khan <skhan@linuxfoundation.org>
Subject: Re: [PATCH] selftest: acct: Add selftest for the acct() syscall
Date: Wed, 26 Jun 2024 16:39:29 -0600 [thread overview]
Message-ID: <c6e845c0-e6ea-4849-bb0c-50024383431f@linuxfoundation.org> (raw)
In-Reply-To: <20240622-kselftest-acct-syscall-v1-1-d270b5be8d37@gmail.com>
On 6/22/24 11:24, Abdulrasaq Lawani wrote:
> Noticed that there was no selftest for the acct() syscall
> which enables the kernel to record terminated processes
> into a specified file.
>
> This patch provides a test for the acct() syscall.
Describe the functionality being tested. Add testcases to
test error conditions.
The code doesn't meet coding guidelines for C and also kernel.
Please check other kernel source files and coding standards document.
Use ksft_* function for reporting results. Refer to an existing test
on how to.
>
> Signed-off-by: Abdulrasaq Lawani <abdulrasaqolawani@gmail.com>
> ---
> tools/testing/selftests/Makefile | 1 +
> tools/testing/selftests/acct/.gitignore | 2 +
> tools/testing/selftests/acct/Makefile | 4 ++
> tools/testing/selftests/acct/acct_syscall.c | 60 +++++++++++++++++++++++++++++
> 4 files changed, 67 insertions(+)
>
> diff --git a/tools/testing/selftests/Makefile b/tools/testing/selftests/Makefile
> index 9039f3709aff..45a58ef5ad92 100644
> --- a/tools/testing/selftests/Makefile
> +++ b/tools/testing/selftests/Makefile
> @@ -1,4 +1,5 @@
> # SPDX-License-Identifier: GPL-2.0
> +TARGETS += acct
> TARGETS += alsa
> TARGETS += amd-pstate
> TARGETS += arm64
> diff --git a/tools/testing/selftests/acct/.gitignore b/tools/testing/selftests/acct/.gitignore
> new file mode 100644
> index 000000000000..8ab358d81bd2
> --- /dev/null
> +++ b/tools/testing/selftests/acct/.gitignore
> @@ -0,0 +1,2 @@
> +acct_syscall
> +config
> \ No newline at end of file
> diff --git a/tools/testing/selftests/acct/Makefile b/tools/testing/selftests/acct/Makefile
> new file mode 100644
> index 000000000000..ff3e238c5634
> --- /dev/null
> +++ b/tools/testing/selftests/acct/Makefile
> @@ -0,0 +1,4 @@
> +TEST_GEN_PROGS := acct_syscall
> +CFLAGS += -Wall
> +
> +include ../lib.mk
> \ No newline at end of file
> diff --git a/tools/testing/selftests/acct/acct_syscall.c b/tools/testing/selftests/acct/acct_syscall.c
> new file mode 100644
> index 000000000000..457b83937cac
> --- /dev/null
> +++ b/tools/testing/selftests/acct/acct_syscall.c
> @@ -0,0 +1,60 @@
> +// SPDX-License-Identifier: GPL-2.0
> +
> +// kselftest for acct() syscall
> +
> +// This tests the acct() syscall, which logs closed processes
> +// until deactivated or when criteria in /proc/sys/kernel/acct is met
> +
> +#include <stdio.h>
> +#include <unistd.h>
> +#include <errno.h>
> +#include <string.h>
> +#include <sys/wait.h>
> +
> +int main(void)
> +{
> +// Create file to log closed processes
Missing tabs for the body of the function.
> +char filename[] = "process_log";
> +FILE *fp;
> +fp = fopen(filename, "w");
> +
> +int i = acct(filename);
> +
> +if (i) {
> + printf("Test Result: %s\n", strerror(errno));
> + remove(filename);
> + fclose(fp);
> + return 1;
> +}
> +
> + // Create child process and wait to close
> +pid_t child_pid;
> +
> +child_pid = fork();
> +
> +if (child_pid < 0) {
> + printf("Process failed\n");
> + return 1;
> +} else if (child_pid == 0) {
> + printf("Child process successfully created!\n");
> +} else {
> + wait(NULL);
> + fseek(fp, 0L, SEEK_END);
> + int sz = ftell(fp);
> + printf("Parent process successfully created!\n");
> +
> + i = acct(NULL);
> +
> + if (sz <= 0) {
> + printf("Child process not logged");
> + return 1;
> + }
> +
> + printf("Test Result: Successfully logged closed process.\n");
> + remove(filename);
> + fclose(fp);
> + return 0;
> +}
> +
> +return 1;
> +}
> thanks,
-- Shuah
prev parent reply other threads:[~2024-06-26 22:39 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-22 17:24 [PATCH] selftest: acct: Add selftest for the acct() syscall Abdulrasaq Lawani
2024-06-26 22:39 ` Shuah Khan [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=c6e845c0-e6ea-4849-bb0c-50024383431f@linuxfoundation.org \
--to=skhan@linuxfoundation.org \
--cc=abdulrasaqolawani@gmail.com \
--cc=javiercarrascocruz@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@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 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.