import core.runtime; | |
import core.stdc.string; | |
import core.sys.posix.dlfcn; | |
extern(C) alias RunDepTests = int function(const char*); | |
void main(string[] args) | |
{ | |
auto name = args[0] ~ '\0'; | |
const pathlen = strrchr(name.ptr, '/') - name.ptr + 1; | |
auto root = name[0 .. pathlen]; | |
auto libloaddep = root ~ "libloaddep.so"; | |
auto h = Runtime.loadLibrary(libloaddep); | |
auto runDepTests = cast(RunDepTests)dlsym(h, "runDepTests"); | |
assert(runDepTests((root ~ "lib.so\0").ptr)); | |
assert(Runtime.unloadLibrary(h)); | |
} |