1*627f7eb2Smrg import core.runtime; 2*627f7eb2Smrg import core.stdc.string; 3*627f7eb2Smrg import core.sys.posix.dlfcn; 4*627f7eb2Smrg 5*627f7eb2Smrg extern(C) alias RunDepTests = int function(const char*); 6*627f7eb2Smrg main(string[]args)7*627f7eb2Smrgvoid main(string[] args) 8*627f7eb2Smrg { 9*627f7eb2Smrg auto name = args[0] ~ '\0'; 10*627f7eb2Smrg const pathlen = strrchr(name.ptr, '/') - name.ptr + 1; 11*627f7eb2Smrg auto root = name[0 .. pathlen]; 12*627f7eb2Smrg auto libloaddep = root ~ "libloaddep.so"; 13*627f7eb2Smrg auto h = Runtime.loadLibrary(libloaddep); 14*627f7eb2Smrg auto runDepTests = cast(RunDepTests)dlsym(h, "runDepTests"); 15*627f7eb2Smrg assert(runDepTests((root ~ "lib.so\0").ptr)); 16*627f7eb2Smrg assert(Runtime.unloadLibrary(h)); 17*627f7eb2Smrg } 18