45 lines
		
	
	
		
			972 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			972 B
		
	
	
	
		
			Factor
		
	
	
| IN: alien.structs.tests
 | |
| USING: alien alien.syntax alien.c-types kernel tools.test
 | |
| sequences system libc words vocabs namespaces layouts ;
 | |
| 
 | |
| C-STRUCT: bar
 | |
|     { "int" "x" }
 | |
|     { { "int" 8 } "y" } ;
 | |
| 
 | |
| [ 36 ] [ "bar" heap-size ] unit-test
 | |
| [ t ] [ \ <displaced-alien> "bar" c-type-getter memq? ] unit-test
 | |
| 
 | |
| C-STRUCT: align-test
 | |
|     { "int" "x" }
 | |
|     { "double" "y" } ;
 | |
| 
 | |
| os winnt? cpu x86? and [
 | |
|     [ 16 ] [ "align-test" heap-size ] unit-test
 | |
|     
 | |
|     cell 4 = [
 | |
|         C-STRUCT: one
 | |
|         { "long" "a" } { "double" "b" } { "int" "c" } ;
 | |
|     
 | |
|         [ 24 ] [ "one" heap-size ] unit-test
 | |
|     ] when
 | |
| ] when
 | |
| 
 | |
| : MAX_FOOS 30 ;
 | |
| 
 | |
| C-STRUCT: foox
 | |
|     { { "int" MAX_FOOS } "x" } ;
 | |
| 
 | |
| [ 120 ] [ "foox" heap-size ] unit-test
 | |
| 
 | |
| C-UNION: barx
 | |
|     { "int" MAX_FOOS }
 | |
|     "float" ;
 | |
| 
 | |
| [ 120 ] [ "barx" heap-size ] unit-test
 | |
| 
 | |
| "help" vocab [
 | |
|     "print-topic" "help" lookup "help" set
 | |
|     [ ] [ \ foox-x "help" get execute ] unit-test
 | |
|     [ ] [ \ set-foox-x "help" get execute ] unit-test
 | |
| ] when
 |