From: Collin Funk Date: Wed, 13 Mar 2024 19:17:41 +0000 (-0700) Subject: sig2str: Add tests. X-Git-Tag: v1.0~294 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=aa7548454bed4cf5bf1041ce23176479c4415865;p=gnulib.git sig2str: Add tests. * tests/test-sig2str.c: New file. * modules/sig2str-tests: New file. --- diff --git a/ChangeLog b/ChangeLog index ff9cca6439..ff539332cb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2024-03-13 Collin Funk + + sig2str: Add tests. + * tests/test-sig2str.c: New file. + * modules/sig2str-tests: New file. + 2024-03-12 Collin Funk gnulib-tool.py: Follow gnulib-tool changes, part 56. diff --git a/modules/sig2str-tests b/modules/sig2str-tests new file mode 100644 index 0000000000..c995f1474a --- /dev/null +++ b/modules/sig2str-tests @@ -0,0 +1,11 @@ +Files: +tests/test-sig2str.c +tests/macros.h + +Depends-on: + +configure.ac: + +Makefile.am: +TESTS += test-sig2str +check_PROGRAMS += test-sig2str diff --git a/tests/test-sig2str.c b/tests/test-sig2str.c new file mode 100644 index 0000000000..c7b65d50b3 --- /dev/null +++ b/tests/test-sig2str.c @@ -0,0 +1,82 @@ +/* Test the sig2str and str2sig functions. + Copyright (C) 2024 Free Software Foundation, Inc. + + This file is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published + by the Free Software Foundation, either version 3 of the License, + or (at your option) any later version. + + This file is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* Written by Collin Funk , 2024. */ + +#include + +#include "sig2str.h" + +#include + +#include "macros.h" + +int +main (void) +{ + char buffer[SIG2STR_MAX]; + int signo; + + /* Test sig2str on signals specified by ISO C. */ + + ASSERT (sig2str (SIGABRT, buffer) == 0); + ASSERT (STREQ (buffer, "ABRT")); + + ASSERT (sig2str (SIGFPE, buffer) == 0); + ASSERT (STREQ (buffer, "FPE")); + + ASSERT (sig2str (SIGILL, buffer) == 0); + ASSERT (STREQ (buffer, "ILL")); + + ASSERT (sig2str (SIGINT, buffer) == 0); + ASSERT (STREQ (buffer, "INT")); + + ASSERT (sig2str (SIGSEGV, buffer) == 0); + ASSERT (STREQ (buffer, "SEGV")); + + ASSERT (sig2str (SIGTERM, buffer) == 0); + ASSERT (STREQ (buffer, "TERM")); + + /* Test str2sig on signals specified by ISO C. */ + + ASSERT (str2sig ("ABRT", &signo) == 0); + ASSERT (signo == SIGABRT); + + ASSERT (str2sig ("FPE", &signo) == 0); + ASSERT (signo == SIGFPE); + + ASSERT (str2sig ("ILL", &signo) == 0); + ASSERT (signo == SIGILL); + + ASSERT (str2sig ("INT", &signo) == 0); + ASSERT (signo == SIGINT); + + ASSERT (str2sig ("SEGV", &signo) == 0); + ASSERT (signo == SIGSEGV); + + ASSERT (str2sig ("TERM", &signo) == 0); + ASSERT (signo == SIGTERM); + + /* Check behavior of sig2str on invalid signals. */ + + ASSERT (sig2str (-714, buffer) == -1); + + /* Check behavior of str2sig on invalid signals. */ + + ASSERT (str2sig ("Not a signal", &signo) == -1); + + return 0; +}