From: Fei Jie Date: Thu, 16 Jun 2016 02:42:13 +0000 (+0800) Subject: tests: add signal2name function to libtests X-Git-Tag: v4.13~134 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0d8eaa9c017826e03f08f54a05cc64b7c94511a4;p=strace tests: add signal2name function to libtests * tests/tests.h (signal2name): New prototype. * tests/signal2name.c: New file. * tests/Makefile.am (libtests_a_SOURCES): Add it. --- diff --git a/tests/Makefile.am b/tests/Makefile.am index 7a029b63..a136e2ae 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -51,6 +51,7 @@ libtests_a_SOURCES = \ print_quoted_string.c \ printflags.c \ printxval.c \ + signal2name.c \ tail_alloc.c \ tests.h \ tprintf.c \ diff --git a/tests/signal2name.c b/tests/signal2name.c new file mode 100644 index 00000000..e301f4ee --- /dev/null +++ b/tests/signal2name.c @@ -0,0 +1,55 @@ +#include "tests.h" +#include + +#define CASE(x) case x: return #x + +const char * +signal2name(int sig) +{ + switch (sig) { + CASE(SIGALRM); + CASE(SIGBUS); + CASE(SIGCHLD); + CASE(SIGCONT); + CASE(SIGFPE); + CASE(SIGHUP); + CASE(SIGILL); + CASE(SIGINT); + CASE(SIGIO); + CASE(SIGPIPE); + CASE(SIGPROF); + CASE(SIGQUIT); + CASE(SIGSEGV); + CASE(SIGSYS); + CASE(SIGTERM); + CASE(SIGTRAP); + CASE(SIGTSTP); + CASE(SIGTTIN); + CASE(SIGTTOU); + CASE(SIGURG); + CASE(SIGUSR1); + CASE(SIGUSR2); + CASE(SIGVTALRM); + CASE(SIGWINCH); + CASE(SIGXCPU); + CASE(SIGXFSZ); +#if defined ALPHA + CASE(SIGABRT); + CASE(SIGEMT); + CASE(SIGINFO); +#elif defined SPARC || defined SPARC64 + CASE(SIGABRT); + CASE(SIGEMT); + CASE(SIGLOST); +#elif defined MIPS + CASE(SIGEMT); + CASE(SIGIOT); + CASE(SIGPWR); +#else + CASE(SIGABRT); + CASE(SIGPWR); + CASE(SIGSTKFLT); +#endif + default: perror_msg_and_fail("unknown signal number %d", sig); + } +} diff --git a/tests/tests.h b/tests/tests.h index 9f556ae4..02d588ed 100644 --- a/tests/tests.h +++ b/tests/tests.h @@ -93,6 +93,9 @@ void check_overflowgid(const int); /* Translate errno to its name. */ const char *errno2name(void); +/* Translate signal number to its name. */ +const char *signal2name(int); + struct xlat; /* Print flags in symbolic form according to xlat table. */