aboutsummaryrefslogtreecommitdiff
path: root/nptl
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2016-12-09 08:18:27 +0100
committerFlorian Weimer <fweimer@redhat.com>2016-12-09 08:18:27 +0100
commitc23de0aacbeaa7a091609b35764bed931475a16d (patch)
treebe4396f71292ee7a509912d70e74323d1587d227 /nptl
parentc03073774f915fe7841c2b551fe304544143470f (diff)
downloadglibc-c23de0aacbeaa7a091609b35764bed931475a16d.zip
glibc-c23de0aacbeaa7a091609b35764bed931475a16d.tar.gz
glibc-c23de0aacbeaa7a091609b35764bed931475a16d.tar.bz2
support: Introduce new subdirectory for test infrastructure
The new test driver in <support/test-driver.c> has feature parity with the old one. The main difference is that its hooking mechanism is based on functions and function pointers instead of macros. This commit also implements a new environment variable, TEST_COREDUMPS, which disables the code which disables coredumps (that is, it enables them if the invocation environment has not disabled them). <test-skeleton.c> defines wrapper functions so that it is possible to use existing macros with the new-style hook functionality. This commit changes only a few test cases to the new test driver, to make sure that it works as expected.
Diffstat (limited to 'nptl')
-rw-r--r--nptl/tst-cancel7.c44
-rw-r--r--nptl/tst-cleanup0.c3
2 files changed, 22 insertions, 25 deletions
diff --git a/nptl/tst-cancel7.c b/nptl/tst-cancel7.c
index 7f20862..8eff3a8 100644
--- a/nptl/tst-cancel7.c
+++ b/nptl/tst-cancel7.c
@@ -24,6 +24,9 @@
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
+#include <getopt.h>
+
+#include <support/xthread.h>
const char *command;
const char *pidfile;
@@ -105,18 +108,8 @@ do_test (void)
sleep (1);
while (access (pidfilename, R_OK) != 0);
- if (pthread_cancel (th) != 0)
- {
- puts ("pthread_cancel failed");
- return 1;
- }
-
- void *r;
- if (pthread_join (th, &r) != 0)
- {
- puts ("pthread_join failed");
- return 1;
- }
+ xpthread_cancel (th);
+ void *r = xpthread_join (th);
sleep (1);
@@ -196,15 +189,20 @@ do_cleanup (void)
#define CMDLINE_OPTIONS \
{ "command", required_argument, NULL, OPT_COMMAND }, \
{ "pidfile", required_argument, NULL, OPT_PIDFILE },
-#define CMDLINE_PROCESS \
- case OPT_COMMAND: \
- command = optarg; \
- break; \
- case OPT_PIDFILE: \
- pidfile = optarg; \
- break;
-#define CLEANUP_HANDLER do_cleanup ()
-#define PREPARE(argc, argv) do_prepare (argc, argv)
-#define TEST_FUNCTION do_test ()
+static void
+cmdline_process (int c)
+{
+ switch (c)
+ {
+ command = optarg;
+ break;
+ case OPT_PIDFILE:
+ pidfile = optarg;
+ break;
+ }
+}
+#define CMDLINE_PROCESS cmdline_process
+#define CLEANUP_HANDLER do_cleanup
+#define PREPARE do_prepare
#define TIMEOUT 5
-#include "../test-skeleton.c"
+#include <support/test-driver.c>
diff --git a/nptl/tst-cleanup0.c b/nptl/tst-cleanup0.c
index 011e5a6..601ad73 100644
--- a/nptl/tst-cleanup0.c
+++ b/nptl/tst-cleanup0.c
@@ -71,5 +71,4 @@ do_test (void)
#define EXPECTED_STATUS 9
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#include <support/test-driver.c>