aboutsummaryrefslogtreecommitdiff
path: root/stdlib
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 /stdlib
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 'stdlib')
-rw-r--r--stdlib/tst-secure-getenv.c26
1 files changed, 8 insertions, 18 deletions
diff --git a/stdlib/tst-secure-getenv.c b/stdlib/tst-secure-getenv.c
index 58208db..ce8e73c 100644
--- a/stdlib/tst-secure-getenv.c
+++ b/stdlib/tst-secure-getenv.c
@@ -30,11 +30,12 @@
#include <sys/wait.h>
#include <unistd.h>
+#include <support/support.h>
+#include <support/test-driver.h>
+
static char MAGIC_ARGUMENT[] = "run-actual-test";
#define MAGIC_STATUS 19
-static const char *test_dir;
-
/* Return a GID which is not our current GID, but is present in the
supplementary group list. */
static gid_t
@@ -64,27 +65,17 @@ choose_gid (void)
static int
run_executable_sgid (gid_t target)
{
- char *dirname = 0;
- char *execname = 0;
+ char *dirname = xasprintf ("%s/secure-getenv.%jd",
+ test_dir, (intmax_t) getpid ());
+ char *execname = xasprintf ("%s/bin", dirname);
int infd = -1;
int outfd = -1;
int ret = -1;
- if (asprintf (&dirname, "%s/secure-getenv.%jd",
- test_dir, (intmax_t) getpid ()) < 0)
- {
- printf ("asprintf: %m\n");
- goto err;
- }
if (mkdir (dirname, 0700) < 0)
{
printf ("mkdir: %m\n");
goto err;
}
- if (asprintf (&execname, "%s/bin", dirname) < 0)
- {
- printf ("asprintf: %m\n");
- goto err;
- }
infd = open ("/proc/self/exe", O_RDONLY);
if (infd < 0)
{
@@ -247,6 +238,5 @@ alternative_main (int argc, char **argv)
}
}
-#define PREPARE(argc, argv) alternative_main(argc, argv)
-#define TEST_FUNCTION do_test ()
-#include "../test-skeleton.c"
+#define PREPARE alternative_main
+#include <support/test-driver.c>