| #include <dlfcn.h> | 
 | #include <stdio.h> | 
 |  | 
 |  | 
 | /* Number of rounds we perform the test.  */ | 
 | #define TEST_ROUNDS	10 | 
 |  | 
 |  | 
 | static const char unknown[] = "a-file-with-this-name-does-not-exist"; | 
 | static const char exists[] = "failtestmod.so"; | 
 |  | 
 |  | 
 | int | 
 | main (void) | 
 | { | 
 |   int i; | 
 |  | 
 |   setvbuf (stdout, NULL, _IONBF, 0); | 
 |  | 
 |   for (i = 0; i < TEST_ROUNDS; ++i) | 
 |     { | 
 |       void *dsc; | 
 |  | 
 |       printf ("Round %d: Try loading \"%s\"\n", i, unknown); | 
 |  | 
 |       dsc = dlopen (unknown, RTLD_NOW); | 
 |       if (dsc != NULL) | 
 | 	{ | 
 | 	  printf ("We found a file of name \"%s\": this should not happen\n", | 
 | 		  unknown); | 
 | 	  return 1; | 
 | 	} | 
 |  | 
 |       printf ("Round %d: loading \"%s\" failed\n", i, unknown); | 
 |  | 
 |       /* Don't use `dlerror', just load an existing file.  */ | 
 |       dsc = dlopen (exists, RTLD_NOW); | 
 |       if (dsc == NULL) | 
 | 	{ | 
 | 	  printf ("Could not load \"%s\": %s\n", exists, dlerror ()); | 
 | 	  return 1; | 
 | 	} | 
 |  | 
 |       printf ("Round %d: Loaded \"%s\"\n", i, exists); | 
 |  | 
 |       dlclose (dsc); | 
 |  | 
 |       printf ("Round %d: Unloaded \"%s\"\n", i, exists); | 
 |     } | 
 |  | 
 |   return 0; | 
 | } | 
 |  | 
 |  | 
 | extern void foo (void); | 
 |  | 
 | void | 
 | foo (void) | 
 | { | 
 | } |