49 lines
1.3 KiB
Factor
49 lines
1.3 KiB
Factor
USING: tools.test namespaces assocs alien.syntax kernel
|
|
compiler.errors accessors alien alien.c-types alien.strings
|
|
debugger literals ;
|
|
FROM: alien.libraries => add-library load-library ;
|
|
IN: compiler.tests.linkage-errors
|
|
|
|
! Regression: calling an undefined function would raise a protection fault
|
|
FUNCTION: void this_does_not_exist ( ) ;
|
|
|
|
[ this_does_not_exist ] try
|
|
|
|
[ this_does_not_exist ] [
|
|
{ "kernel-error" 9 $[ "this_does_not_exist" string>symbol ] f }
|
|
=
|
|
] must-fail-with
|
|
|
|
[ T{ no-such-symbol { name "this_does_not_exist" } } ]
|
|
[
|
|
\ this_does_not_exist linkage-errors get at error>>
|
|
! We don't care about the error message from dlerror, just
|
|
! wipe it out
|
|
clone f >>message
|
|
] unit-test
|
|
|
|
<< "no_such_library" "no_such_library" cdecl add-library >>
|
|
|
|
LIBRARY: no_such_library
|
|
|
|
FUNCTION: void no_such_function ( ) ;
|
|
|
|
[ no_such_function ] try
|
|
|
|
[ no_such_function ] [
|
|
{
|
|
"kernel-error" 9
|
|
$[ "no_such_function" string>symbol ]
|
|
$[ "no_such_library" load-library ]
|
|
}
|
|
=
|
|
] must-fail-with
|
|
|
|
[ T{ no-such-library { name "no_such_library" } } ]
|
|
[
|
|
\ no_such_function linkage-errors get at error>>
|
|
! We don't care about the error message from dlerror, just
|
|
! wipe it out
|
|
clone f >>message
|
|
] unit-test
|