From: Petr Vorel <pvorel@suse.cz>
To: Wei Gao <wegao@suse.com>
Cc: ltp@lists.linux.it
Subject: Re: [LTP] [PATCH v4 1/2] ptrace05: Refactor the test using new LTP API
Date: Wed, 8 Jan 2025 14:39:20 +0100 [thread overview]
Message-ID: <20250108133920.GA30914@pevik> (raw)
In-Reply-To: <20241217061636.16366-2-wegao@suse.com>
Hi Wei,
Generally LGTM, with few mostly formatting notes below.
Thanks!
Reviewed-by: Petr Vorel <pvorel@suse.cz>
> diff --git a/testcases/kernel/syscalls/ptrace/ptrace05.c b/testcases/kernel/syscalls/ptrace/ptrace05.c
...
> +/*\
> + * [Description]
> *
> - * You should have received a copy of the GNU General Public License along
> - * with this program; if not, write to the Free Software Foundation, Inc.,
> - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
> + * This test ptraces itself as per arbitrarily specified signals,
> + * over 0 to SIGRTMAX range.
> *
nit: could you please pay a bit of attention to the blank lines like this one?
It's also in print_dbg_sig() and test_signal().
> - ******************************************************************************
> */
> -int usage(const char *);
> -
> -int usage(const char *argv0)
> +static void print_dbg_sig(int signum)
> {
> - fprintf(stderr, "usage: %s [start-signum] [end-signum]\n", argv0);
> - return 1;
> +
> + char const *strsig = tst_strsig(signum);
> +
> + if (strstr(strsig, "???")) {
> + tst_res(TDEBUG, "[child] Sending kill(.., %d)",
> + signum);
> + } else {
> + tst_res(TDEBUG, "[child] Sending kill(.., %s)",
> + strsig);
nit: this could be in a single line (below 80 or 90 chars), thus without {}
(readability).
static void print_dbg_sig(int signum)
{
char const *strsig = tst_strsig(signum);
if (strstr(strsig, "???"))
tst_res(TDEBUG, "[child] Sending kill(.., %d)", signum);
else
tst_res(TDEBUG, "[child] Sending kill(.., %s)", strsig);
}
> + }
> }
> -int main(int argc, char **argv)
> +static void test_signal(int signum)
> {
> - int end_signum = -1;
> - int signum;
> - int start_signum = -1;
> int status;
> -
> pid_t child;
> - tst_parse_opts(argc, argv, NULL, NULL);
> + child = SAFE_FORK();
> +
> + if (!child) {
> + TST_EXP_PASS_SILENT(ptrace(PTRACE_TRACEME, 0, NULL, NULL));
> - if (start_signum == -1) {
> - start_signum = 0;
> + print_dbg_sig(signum);
> + SAFE_KILL(getpid(), signum);
> + exit(0);
> }
> - if (end_signum == -1) {
> - end_signum = SIGRTMAX;
> +
> + SAFE_WAITPID(child, &status, 0);
> +
> + switch (signum) {
> + case 0:
> + if (WIFEXITED(status)
> + && WEXITSTATUS(status) == 0) {
> + tst_res(TPASS,
> + "kill(.., 0) exited with 0, as expected.");
> + } else {
> + tst_res(TFAIL,
> + "kill(.., 0) exited with unexpected %s.", tst_strstatus(status));
> + }
> + break;
> + case SIGKILL:
> + if (WIFSIGNALED(status) && WTERMSIG(status) == SIGKILL)
> + tst_res(TPASS, "Child killed by SIGKILL");
> + else
> + tst_res(TFAIL, "Child %s", tst_strstatus(status));
> + break;
> + /* All other processes should be stopped. */
> + default:
> + if (WIFSTOPPED(status))
> + tst_res(TDEBUG, "Stopped as expected");
> + else {
nit: if else uses { }, if should use them as well.
https://www.kernel.org/doc/html/latest/process/coding-style.html#placing-braces-and-spaces
This does not apply if only one branch of a conditional statement is a single
statement; in the latter case use braces in both branches
> + tst_res(TFAIL, "Didn't stop as expected. Child %s", tst_strstatus(status));
> + expect_stop++;
> + }
> + break;
> }
...
> + if (expect_stop == 0)
nit: if (!expect_stop)
> + tst_res(TPASS, "Stopped as expected");
> + else
> + tst_res(TFAIL, "Didn't stop as expected, total %d cases failed", expect_stop);
> }
We don't need another TFAIL it just repeats another TFAIL.
IMHO also TPASS should not be needed (we always get TPASS/TFAIL result for
signum == 0), but it does not harm.
Kind regards,
Petr
--
Mailing list info: https://lists.linux.it/listinfo/ltp
next prev parent reply other threads:[~2025-01-08 13:39 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-09-25 11:22 [LTP] [PATCH v1 0/2] ptrace: Refactor Wei Gao via ltp
2023-09-25 11:22 ` [LTP] [PATCH v1 1/2] ptrace05: Refactor the test using new LTP API Wei Gao via ltp
2023-11-28 8:57 ` Richard Palethorpe
2023-11-28 9:24 ` Petr Vorel
2023-09-25 11:22 ` [LTP] [PATCH v1 2/2] ptrace06: " Wei Gao via ltp
2023-11-28 9:31 ` Richard Palethorpe
2023-11-28 9:51 ` Petr Vorel
2023-12-01 1:06 ` Wei Gao via ltp
2023-12-01 0:59 ` [LTP] [PATCH v2 0/2] ptrace: Refactor Wei Gao via ltp
2023-12-01 0:59 ` [LTP] [PATCH v2 1/2] ptrace05: Refactor the test using new LTP API Wei Gao via ltp
2024-02-08 16:15 ` Andrea Cervesato via ltp
2023-12-01 0:59 ` [LTP] [PATCH v2 2/2] ptrace06: " Wei Gao via ltp
2024-02-08 16:25 ` Andrea Cervesato via ltp
2024-06-03 10:35 ` [LTP] [PATCH v3 0/2] ptrace: Refactor Wei Gao via ltp
2024-06-03 10:35 ` [LTP] [PATCH v3 1/2] ptrace05: Refactor the test using new LTP API Wei Gao via ltp
2024-06-28 15:35 ` Cyril Hrubis
2024-06-03 10:35 ` [LTP] [PATCH v3 2/2] ptrace06: " Wei Gao via ltp
2024-06-28 16:15 ` Cyril Hrubis
2024-12-17 6:16 ` [LTP] [PATCH v4 0/2] ptrace: Refactor Wei Gao via ltp
2024-12-17 6:16 ` [LTP] [PATCH v4 1/2] ptrace05: Refactor the test using new LTP API Wei Gao via ltp
2025-01-08 13:39 ` Petr Vorel [this message]
2024-12-17 6:16 ` [LTP] [PATCH v4 2/2] ptrace06: " Wei Gao via ltp
2025-01-09 8:55 ` Petr Vorel
2025-01-13 8:16 ` [LTP] [PATCH v5 0/2] ptrace: Refactor Wei Gao via ltp
2025-01-13 8:16 ` [LTP] [PATCH v5 1/2] ptrace05: Refactor the test using new LTP API Wei Gao via ltp
2025-01-13 16:02 ` Cyril Hrubis
2025-01-13 21:40 ` Petr Vorel
2025-01-14 9:25 ` Cyril Hrubis
2025-01-13 8:16 ` [LTP] [PATCH v5 2/2] ptrace06: " Wei Gao via ltp
2025-01-14 12:40 ` [LTP] [PATCH v6 0/2] ptrace: Refactor Wei Gao via ltp
2025-01-14 12:40 ` [LTP] [PATCH v6 1/2] ptrace05: Refactor the test using new LTP API Wei Gao via ltp
2025-01-14 13:05 ` Cyril Hrubis
2025-01-14 12:40 ` [LTP] [PATCH v6 2/2] ptrace06: " Wei Gao via ltp
2025-01-14 14:32 ` [LTP] [PATCH v7 0/2] ptrace: Refactor Wei Gao via ltp
2025-01-14 14:32 ` [LTP] [PATCH v7 1/2] ptrace05: Refactor the test using new LTP API Wei Gao via ltp
2025-01-16 16:44 ` Cyril Hrubis
2025-01-14 14:32 ` [LTP] [PATCH v7 2/2] ptrace06: " Wei Gao via ltp
2025-01-16 16:50 ` Cyril Hrubis
2025-01-17 10:40 ` Petr Vorel
2025-01-17 10:42 ` Cyril Hrubis
2025-01-17 11:12 ` Petr Vorel
2025-01-20 4:14 ` [LTP] [PATCH v8 0/2] ptrace: Refactor Wei Gao via ltp
2025-01-20 4:14 ` [LTP] [PATCH v8 1/2] ptrace06: Refactor the test using new LTP API Wei Gao via ltp
2025-01-20 13:35 ` Petr Vorel
2025-01-20 4:14 ` [LTP] [PATCH v8 2/2] ptrace06_child.c: Remove unused ptrace06_child.c Wei Gao via ltp
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=20250108133920.GA30914@pevik \
--to=pvorel@suse.cz \
--cc=ltp@lists.linux.it \
--cc=wegao@suse.com \
/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.