44 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Factor
		
	
	
USING: interpolate multiline
 | 
						|
io io.directories io.encodings.ascii io.files
 | 
						|
io.files.temp io.launcher io.streams.string kernel locals system
 | 
						|
tools.test sequences ;
 | 
						|
IN: alien.remote-control.tests
 | 
						|
 | 
						|
: compile-file ( contents -- )
 | 
						|
    "test.c" ascii set-file-contents
 | 
						|
    { "gcc" "-I../" "-L.." "-lfactor" "test.c" }
 | 
						|
    os macosx? cpu x86.64? and [ "-m64" suffix ] when
 | 
						|
    try-process ;
 | 
						|
 | 
						|
: run-test ( -- line )
 | 
						|
    os windows? "temp/a.exe" "temp/a.out" ?
 | 
						|
    ascii [ readln ] with-process-reader ;
 | 
						|
 | 
						|
:: test-embedding ( code -- line )
 | 
						|
    image :> image
 | 
						|
 | 
						|
    [
 | 
						|
        I[
 | 
						|
#include <vm/master.h>
 | 
						|
#include <stdio.h>
 | 
						|
#include <stdbool.h>
 | 
						|
 | 
						|
int main(int argc, char **argv)
 | 
						|
{
 | 
						|
    F_PARAMETERS p;
 | 
						|
    default_parameters(&p);
 | 
						|
    p.image_path = STRING_LITERAL("${image}");
 | 
						|
    init_factor(&p);
 | 
						|
    start_embedded_factor(&p);
 | 
						|
    ${code}
 | 
						|
    printf("Done.\n");
 | 
						|
    return 0;
 | 
						|
}
 | 
						|
        ]I
 | 
						|
    ] with-string-writer
 | 
						|
    "resource:temp" [ compile-file ] with-directory
 | 
						|
    "resource:" [ run-test ] with-directory ;
 | 
						|
 | 
						|
! [ "Done." ] [ "" test-embedding ] unit-test
 | 
						|
 | 
						|
! [ "Done." ] [ "factor_yield();" test-embedding ] unit-test |