Mercurial > hg > CbC > CbC_gcc
view libphobos/testsuite/libphobos.shared/linkDR.c @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | |
children |
line wrap: on
line source
#include <stdlib.h> #include <string.h> #include <dlfcn.h> #include <assert.h> extern void* rt_loadLibrary(const char*); extern int rt_unloadLibrary(void*); extern int rt_init(void); extern int rt_term(void); int main(int argc, char* argv[]) { if (!rt_init()) return EXIT_FAILURE; const size_t pathlen = strrchr(argv[0], '/') - argv[0] + 1; char *name = malloc(pathlen + sizeof("lib.so")); memcpy(name, argv[0], pathlen); memcpy(name+pathlen, "lib.so", sizeof("lib.so")); void *dlib = rt_loadLibrary(name); free(name); assert(dlib); int (*runTests)(void) = dlsym(dlib, "runTests"); assert(runTests()); assert(rt_unloadLibrary(dlib)); if (!rt_term()) return EXIT_FAILURE; return EXIT_SUCCESS; }