mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
47 lines
990 B
V
47 lines
990 B
V
import dl
|
|
|
|
fn test_dl() {
|
|
$if linux {
|
|
run_test_invalid_lib_linux()
|
|
return
|
|
}
|
|
$if windows {
|
|
run_test_invalid_lib_windows()
|
|
run_test_valid_lib_windows()
|
|
run_test_invalid_sym_windows()
|
|
run_test_valid_sym_windows()
|
|
return
|
|
} $else {
|
|
eprint('currently not implemented on this platform')
|
|
}
|
|
}
|
|
|
|
fn run_test_invalid_lib_linux() {
|
|
// ensure a not-existing dl won't be loaded
|
|
h := dl.open('not-existing-dynamic-link-library', dl.rtld_now)
|
|
assert h == 0
|
|
}
|
|
|
|
fn run_test_invalid_lib_windows() {
|
|
// ensure a not-existing dl won't be loaded
|
|
h := dl.open('not-existing-dynamic-link-library', dl.rtld_now)
|
|
assert h == 0
|
|
}
|
|
|
|
fn run_test_valid_lib_windows() {
|
|
h := dl.open('shell32', dl.rtld_now)
|
|
assert h != 0
|
|
}
|
|
|
|
fn run_test_invalid_sym_windows() {
|
|
h := dl.open('shell32', dl.rtld_now)
|
|
proc := dl.sym(h, 'CommandLineToArgvW2')
|
|
assert proc == 0
|
|
}
|
|
|
|
fn run_test_valid_sym_windows() {
|
|
h := dl.open('shell32', dl.rtld_now)
|
|
proc := dl.sym(h, 'CommandLineToArgvW')
|
|
assert proc != 0
|
|
}
|