1 | #include <dlfcn.h> |
---|---|
2 | #include <stdio.h> |
3 | #include <stdlib.h> |
4 | |
5 | static int |
6 | do_test (void) |
7 | { |
8 | void *handle; |
9 | int (*test) (int); |
10 | int res; |
11 | |
12 | handle = dlopen (file: "modstatic.so", RTLD_LAZY); |
13 | if (handle == NULL) |
14 | { |
15 | printf (format: "%s\n", dlerror ()); |
16 | exit(1); |
17 | } |
18 | |
19 | test = dlsym (handle: handle, name: "test"); |
20 | if (test == NULL) |
21 | { |
22 | printf (format: "%s\n", dlerror ()); |
23 | exit(1); |
24 | } |
25 | |
26 | res = test (2); |
27 | if (res != 4) |
28 | { |
29 | printf (format: "Got %i, expected 4\n", res); |
30 | exit (1); |
31 | } |
32 | |
33 | dlclose (handle: handle); |
34 | return 0; |
35 | } |
36 | |
37 | #define TEST_FUNCTION do_test () |
38 | #include "../test-skeleton.c" |
39 |