Projet_SETI_RISC-V/riscv-gnu-toolchain/gcc/libphobos/testsuite/libphobos.shared/load_loaddep.d
2023-03-06 14:48:14 +01:00

17 lines
535 B
D

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));
}