diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-12-27 19:31:37 +0000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-12-27 19:31:37 +0000 |
commit | 74a412373b66a38b6ce8156f027ce26f89a7462f (patch) | |
tree | a59ce0af7ffd48641ca9124d697f7a6b57b26931 /elf/tst-leaks1.c | |
parent | 2004eeba8fb2a92105bbf95b280fff6dc1d84144 (diff) | |
parent | 4cbfda396f7cd9e83116c28965ade73d80c1cb82 (diff) |
Merge commit 'refs/top-bases/t/ONSTACK' into t/ONSTACK
Diffstat (limited to 'elf/tst-leaks1.c')
-rw-r--r-- | elf/tst-leaks1.c | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/elf/tst-leaks1.c b/elf/tst-leaks1.c index dcff28dafa..75bc92d25f 100644 --- a/elf/tst-leaks1.c +++ b/elf/tst-leaks1.c @@ -6,13 +6,28 @@ static int do_test (void) { + void *h; + int ret = 0; + /* Carry out *one* failing call to dlopen before starting mtrace to + force any one-time inintialization that may happen to the + executable link map e.g. expansion and caching of $ORIGIN. */ + h = dlopen ("$ORIGIN/tst-leaks1.o", RTLD_LAZY); + if (h != NULL) + { + puts ("dlopen unexpectedly succeeded"); + ret = 1; + dlclose (h); + } + + /* Start tracing and run each test 5 times to see if there are any + leaks in the failing dlopen. */ mtrace (); - int ret = 0; for (int i = 0; i < 10; i++) { - void *h = dlopen (i < 5 ? "./tst-leaks1.c" - : "$ORIGIN/tst-leaks1.o", RTLD_LAZY); + h = dlopen (i < 5 + ? "./tst-leaks1.c" + : "$ORIGIN/tst-leaks1.o", RTLD_LAZY); if (h != NULL) { puts ("dlopen unexpectedly succeeded"); @@ -24,5 +39,4 @@ do_test (void) return ret; } -#define TEST_FUNCTION do_test () -#include "../test-skeleton.c" +#include <support/test-driver.c> |