summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Orton <joe@manyfish.uk>2023-01-29 14:18:25 +0000
committerJoe Orton <jorton@apache.org>2023-01-29 14:33:58 +0000
commitb0e18e5d7f78c89c0f37c8c2cc1600c9f8aa9175 (patch)
treef9d0bdd3c0ac596aebb9ac621d1c35574b27431e
parenta18a1628ad788934af5c3fde66a8bff20c5f9f48 (diff)
downloadneon-git-b0e18e5d7f78c89c0f37c8c2cc1600c9f8aa9175.tar.gz
Allow suppressing build of test suite child/server handling functions
for embedded neon build, via NEON_TEST_WITHOUT_CHILD m4 macro. * macros/neon-test.m4: Define NEON_TEST_WITHOUT_CHILD. * test/common/child.c, test/common/tests.c: Suppress code dealing with child/server processes if NEON_TEST_NO_CHILD is defined.
-rw-r--r--macros/neon-test.m44
-rw-r--r--test/common/child.c4
-rw-r--r--test/common/tests.c9
3 files changed, 16 insertions, 1 deletions
diff --git a/macros/neon-test.m4 b/macros/neon-test.m4
index 0eb70f1..469e26c 100644
--- a/macros/neon-test.m4
+++ b/macros/neon-test.m4
@@ -43,3 +43,7 @@ AC_CHECK_FUNCS(pipe isatty usleep shutdown setlocale gethostname)
AC_REQUIRE([NE_FIND_AR])
])
+
+AC_DEFUN([NEON_TEST_WITHOUT_CHILD], [
+AC_DEFINE([NEON_TEST_NO_CHILD], 1, [Define if test suite child process handling is not needed])
+])
diff --git a/test/common/child.c b/test/common/child.c
index 872fbda..7984d2d 100644
--- a/test/common/child.c
+++ b/test/common/child.c
@@ -50,6 +50,8 @@
#include "tests.h"
#include "child.h"
+#ifndef NEON_NO_TEST_CHILD
+
static pid_t child = 0;
int clength;
@@ -537,3 +539,5 @@ int serve_file(ne_socket *sock, void *ud)
return OK;
}
+
+#endif /* NEON_NO_TEST_CHILD */
diff --git a/test/common/tests.c b/test/common/tests.c
index 732e78d..ea7d822 100644
--- a/test/common/tests.c
+++ b/test/common/tests.c
@@ -115,6 +115,8 @@ void t_warning(const char *str, ...)
#define W_RED(m) do { if (use_colour) W("\033[41;37;01m"); \
W(m); if (use_colour) W("\033[00m\n"); } while (0);
+#ifndef NEON_NO_TEST_CHILD
+
/* Signal handler for child processes. */
static void child_segv(int signo)
{
@@ -148,6 +150,7 @@ void in_child(void)
signal(SIGABRT, child_segv);
flag_child = 1;
}
+#endif
static const char dots[] = "......................";
@@ -221,9 +224,11 @@ int main(int argc, char *argv[])
return -1;
}
+#ifndef NEON_NO_TEST_CHILD
/* install special SEGV handler. */
signal(SIGSEGV, parent_segv);
signal(SIGABRT, parent_segv);
+#endif
/* test the "no-debugging" mode of ne_debug. */
ne_debug_init(NULL, 0);
@@ -374,8 +379,10 @@ int main(int argc, char *argv[])
break;
}
+#ifndef NEON_NO_TEST_CHILD
reap_server();
-
+#endif
+
if (quiet) {
print_prefix(n);
}