59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Factor
		
	
	
USING: accessors alien alien.c-types alien.private kernel
 | 
						|
kernel.private literals math namespaces stack-checker.alien
 | 
						|
stack-checker.state stack-checker.values system threads.private
 | 
						|
tools.test ;
 | 
						|
IN: stack-checker.alien.tests
 | 
						|
 | 
						|
! alien-inputs/outputs
 | 
						|
{
 | 
						|
    V{ 31 32 }
 | 
						|
    { 33 }
 | 
						|
} [
 | 
						|
    0 inner-d-index set
 | 
						|
    V{ } clone (meta-d) set
 | 
						|
    H{ } clone known-values set
 | 
						|
    V{ } clone literals set
 | 
						|
    30 \ <value> set-global
 | 
						|
    alien-node-params new int >>return { int int } >>parameters
 | 
						|
    inputs/outputs
 | 
						|
] unit-test
 | 
						|
 | 
						|
{
 | 
						|
    V{ 31 32 33 }
 | 
						|
    { 34 }
 | 
						|
} [
 | 
						|
    0 inner-d-index set
 | 
						|
    V{ } clone (meta-d) set
 | 
						|
    H{ } clone known-values set
 | 
						|
    V{ } clone literals set
 | 
						|
    30 \ <value> set-global
 | 
						|
    alien-indirect-params new int >>return { int int } >>parameters
 | 
						|
    inputs/outputs
 | 
						|
] unit-test
 | 
						|
 | 
						|
! wrap-callback-quot
 | 
						|
${
 | 
						|
    cpu x86.32?
 | 
						|
    [
 | 
						|
        [
 | 
						|
            { integer integer } declare [ [ ] dip ] dip
 | 
						|
            "hello" >integer
 | 
						|
        ] [
 | 
						|
            dup current-callback eq?
 | 
						|
            [ drop ] [ wait-for-callback ] if
 | 
						|
        ] do-callback
 | 
						|
    ]
 | 
						|
    [
 | 
						|
        [
 | 
						|
            { fixnum fixnum } declare [ [ ] dip ] dip
 | 
						|
            "hello" >fixnum
 | 
						|
        ] [
 | 
						|
            dup current-callback eq?
 | 
						|
            [ drop ] [ wait-for-callback ] if
 | 
						|
        ] do-callback
 | 
						|
    ] ?
 | 
						|
} [
 | 
						|
    int { int int } cdecl f alien-node-params boa
 | 
						|
    [ "hello" ] wrap-callback-quot
 | 
						|
] unit-test
 |