]> Savannah Git Hosting - gnulib.git/commitdiff
sig2str: Add tests.
authorCollin Funk <collin.funk1@gmail.com>
Wed, 13 Mar 2024 19:17:41 +0000 (12:17 -0700)
committerBruno Haible <bruno@clisp.org>
Thu, 14 Mar 2024 02:11:13 +0000 (03:11 +0100)
* tests/test-sig2str.c: New file.
* modules/sig2str-tests: New file.

ChangeLog
modules/sig2str-tests [new file with mode: 0644]
tests/test-sig2str.c [new file with mode: 0644]

index ff9cca64391b7cecce8c7b5a41e7469b95702f8a..ff539332cb790910fbdfff67d5831085f2033ffa 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2024-03-13  Collin Funk  <collin.funk1@gmail.com>
+
+       sig2str: Add tests.
+       * tests/test-sig2str.c: New file.
+       * modules/sig2str-tests: New file.
+
 2024-03-12  Collin Funk  <collin.funk1@gmail.com>
 
        gnulib-tool.py: Follow gnulib-tool changes, part 56.
diff --git a/modules/sig2str-tests b/modules/sig2str-tests
new file mode 100644 (file)
index 0000000..c995f14
--- /dev/null
@@ -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 (file)
index 0000000..c7b65d5
--- /dev/null
@@ -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 <https://www.gnu.org/licenses/>.  */
+
+/* Written by Collin Funk <collin.funk1@gmail.com>, 2024.  */
+
+#include <config.h>
+
+#include "sig2str.h"
+
+#include <string.h>
+
+#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;
+}