1234567891011121314151617181920212223242526272829303132333435363738 |
- #include <dlfcn.h>
- #include <stdio.h>
- #include <stdlib.h>
- static int
- do_test (void)
- {
- char modname[sizeof "tst-tlsmod18aXX.so"];
- void *h[20];
- for (int i = 0; i < 20; i++)
- {
- snprintf (modname, sizeof modname, "tst-tlsmod18a%d.so", i);
- h[i] = dlopen (modname, RTLD_LAZY);
- if (h[i] == NULL)
- {
- printf ("unexpectedly failed to open %s", modname);
- exit (1);
- }
- }
- for (int i = 0; i < 20; i++)
- {
- int (*fp) (void) = (int (*) (void)) dlsym (h[i], "test");
- if (fp == NULL)
- {
- printf ("cannot find test in tst-tlsmod18a%d.so", i);
- exit (1);
- }
- if (fp ())
- exit (1);
- }
- return 0;
- }
- #define TEST_FUNCTION do_test ()
- #include "../test-skeleton.c"
|