[LTP] [PATCH v5 1/2] ptrace05: Refactor the test using new LTP API
Cyril Hrubis
chrubis@suse.cz
Mon Jan 13 17:02:19 CET 2025
Hi!
> +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);
> }
This works around the library defficiencies. I would rather see patch
that changes the tst_strsig() return the number if we do not have a
match.
This should work:
diff --git a/lib/tests/tst_strsig.c b/lib/tests/tst_strsig.c
index 9a5ca80aa..ed5be3f00 100644
--- a/lib/tests/tst_strsig.c
+++ b/lib/tests/tst_strsig.c
@@ -29,6 +29,7 @@ int TST_TOTAL = 1;
int main(void)
{
+ fprintf(stderr, "0 = %s\n", tst_strsig(0));
fprintf(stderr, "SIGKILL = %s\n", tst_strsig(SIGKILL));
fprintf(stderr, "SIGALRM = %s\n", tst_strsig(SIGALRM));
return 0;
diff --git a/lib/tst_res.c b/lib/tst_res.c
index 7c66d2f6c..90403bc67 100644
--- a/lib/tst_res.c
+++ b/lib/tst_res.c
@@ -141,11 +141,14 @@ struct pair {
#define PAIR(def) [def] = {.name = #def, .val = def},
#define STRPAIR(key, value) [key] = {.name = value, .val = key},
-#define PAIR_LOOKUP(pair_arr, idx) do { \
- if (idx < 0 || (size_t)idx >= ARRAY_SIZE(pair_arr) || \
- pair_arr[idx].name == NULL) \
- return "???"; \
- return pair_arr[idx].name; \
+#define PAIR_LOOKUP(pair_arr, idx) do { \
+ static char par_str_buf__[16]; \
+ if (idx < 0 || (size_t)idx >= ARRAY_SIZE(pair_arr) || \
+ pair_arr[idx].name == NULL) { \
+ snprintf(par_str_buf__, sizeof(par_str_buf__), "%i", idx); \
+ return par_str_buf__; \
+ } \
+ return pair_arr[idx].name; \
} while (0)
--
Cyril Hrubis
chrubis@suse.cz
More information about the ltp
mailing list