blob: 2a68fca33bce1a3941487452e4f285e8ee5cc104 [file]
#include <dlfcn.h>
#include <stdio.h>
#include <string.h>
#include "loadable_library.h"
int main() {
if (loadable_library() != 42) {
fprintf(stderr, "loadable_library() returned wrong value\n");
return 1;
}
Dl_info info;
if (dladdr((void *)&loadable_library, &info) == 0) {
fprintf(stderr, "dladdr failed to find loadable_library symbol\n");
return 1;
}
const char *dylib = strstr(info.dli_fname, ".dylib");
const char *so = strstr(info.dli_fname, ".so");
if (!dylib && !so) {
fprintf(stderr,
"loadable_library is not in a shared library, found in: %s\n",
info.dli_fname);
return 1;
}
return 0;
}