import HEAD into svn+ssh://svn.samba.org/home/svn/samba/trunk
[metze/old/v3-2-winbind-ndr.git] / testsuite / nsswitch / pam_winbind_syms.c
1 /*
2  * Test required functions are exported from the pam_winbind.so library
3  */
4
5 #include <stdio.h>
6 #include <dlfcn.h>
7
8 /* Symbol list to check */
9
10 static char *symlist[] = {
11     "pam_sm_acct_mgmt",
12     "pam_sm_authenticate",
13     "pam_sm_setcred",
14     NULL
15 };
16
17 /* Main function */
18
19 int main(int argc, char **argv)
20 {
21     void *handle, *sym;
22     int i, y;
23
24     /* Open library */
25
26     if (argc != 2) {
27         printf("FAIL: usage '%s sharedlibname'\n", argv[0]);
28         return 1;
29     }
30
31     handle = dlopen(argv[1], RTLD_NOW);
32
33     if (handle == NULL) {
34         printf("FAIL: could not dlopen library: %s\n", dlerror());
35         return 1;
36     }
37
38     /* Read symbols */
39
40     for (i = 0; symlist[i] != NULL; i++) {
41         sym = dlsym(handle, symlist[i]);
42         if (sym == NULL) {
43             printf("FAIL: could not resolve symbol '%s': %s\n",
44                    symlist[i], dlerror());
45             return 1;
46         } else {
47             printf("loaded symbol '%s' ok\n", symlist[i]);
48         }
49     }
50
51     /* Clean up */
52
53     dlclose(handle);
54     return 0;
55 }