45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Factor
		
	
	
| USING: tools.test namespaces assocs alien.syntax kernel
 | |
| compiler.errors accessors alien alien.c-types alien.strings
 | |
| debugger literals kernel.private alien.libraries ;
 | |
| 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 ERROR-UNDEFINED-SYMBOL "this_does_not_exist" string>symbol f }
 | |
|     =
 | |
| ] must-fail-with
 | |
| 
 | |
| { t } [
 | |
|     \ this_does_not_exist linkage-errors get at error>>
 | |
|     [ no-such-symbol? ] [ name>> "this_does_not_exist" = ] bi and
 | |
|     ! 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 ERROR-UNDEFINED-SYMBOL
 | |
|         "no_such_function" string>symbol
 | |
|         "no_such_library" library-dll
 | |
|     }
 | |
|     =
 | |
| ] must-fail-with
 | |
| 
 | |
| { t } [
 | |
|     \ no_such_function linkage-errors get at error>>
 | |
|     [ no-such-library? ] [ name>> "no_such_library" = ] bi and
 | |
| ] unit-test
 |