124 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Factor
		
	
	
		
		
			
		
	
	
			124 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Factor
		
	
	
| 
								 | 
							
								IN: io.unix.launcher.tests
							 | 
						||
| 
								 | 
							
								USING: io.files tools.test io.launcher arrays io namespaces
							 | 
						||
| 
								 | 
							
								continuations math io.encodings.binary io.encodings.ascii
							 | 
						||
| 
								 | 
							
								accessors kernel sequences io.encodings.utf8 destructors
							 | 
						||
| 
								 | 
							
								io.streams.duplex ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ ] [
							 | 
						||
| 
								 | 
							
								    [ "launcher-test-1" temp-file delete-file ] ignore-errors
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ ] [
							 | 
						||
| 
								 | 
							
								    "touch"
							 | 
						||
| 
								 | 
							
								    "launcher-test-1" temp-file
							 | 
						||
| 
								 | 
							
								    2array
							 | 
						||
| 
								 | 
							
								    try-process
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ t ] [ "launcher-test-1" temp-file exists? ] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ ] [
							 | 
						||
| 
								 | 
							
								    [ "launcher-test-1" temp-file delete-file ] ignore-errors
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ ] [
							 | 
						||
| 
								 | 
							
								    <process>
							 | 
						||
| 
								 | 
							
								        "echo Hello" >>command
							 | 
						||
| 
								 | 
							
								        "launcher-test-1" temp-file >>stdout
							 | 
						||
| 
								 | 
							
								    try-process
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ "Hello\n" ] [
							 | 
						||
| 
								 | 
							
								    "cat"
							 | 
						||
| 
								 | 
							
								    "launcher-test-1" temp-file
							 | 
						||
| 
								 | 
							
								    2array
							 | 
						||
| 
								 | 
							
								    ascii <process-reader> contents
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ ] [
							 | 
						||
| 
								 | 
							
								    [ "launcher-test-1" temp-file delete-file ] ignore-errors
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ ] [
							 | 
						||
| 
								 | 
							
								    <process>
							 | 
						||
| 
								 | 
							
								        "cat" >>command
							 | 
						||
| 
								 | 
							
								        +closed+ >>stdin
							 | 
						||
| 
								 | 
							
								        "launcher-test-1" temp-file >>stdout
							 | 
						||
| 
								 | 
							
								    try-process
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ f ] [
							 | 
						||
| 
								 | 
							
								    "cat"
							 | 
						||
| 
								 | 
							
								    "launcher-test-1" temp-file
							 | 
						||
| 
								 | 
							
								    2array
							 | 
						||
| 
								 | 
							
								    ascii <process-reader> contents
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ ] [
							 | 
						||
| 
								 | 
							
								    2 [
							 | 
						||
| 
								 | 
							
								        "launcher-test-1" temp-file binary <file-appender> [
							 | 
						||
| 
								 | 
							
								            <process>
							 | 
						||
| 
								 | 
							
								                swap >>stdout
							 | 
						||
| 
								 | 
							
								                "echo Hello" >>command
							 | 
						||
| 
								 | 
							
								            try-process
							 | 
						||
| 
								 | 
							
								        ] with-disposal
							 | 
						||
| 
								 | 
							
								    ] times
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ "Hello\nHello\n" ] [
							 | 
						||
| 
								 | 
							
								    "cat"
							 | 
						||
| 
								 | 
							
								    "launcher-test-1" temp-file
							 | 
						||
| 
								 | 
							
								    2array
							 | 
						||
| 
								 | 
							
								    ascii <process-reader> contents
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ t ] [
							 | 
						||
| 
								 | 
							
								    <process>
							 | 
						||
| 
								 | 
							
								        "env" >>command
							 | 
						||
| 
								 | 
							
								        { { "A" "B" } } >>environment
							 | 
						||
| 
								 | 
							
								    ascii <process-reader> lines
							 | 
						||
| 
								 | 
							
								    "A=B" swap member?
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ { "A=B" } ] [
							 | 
						||
| 
								 | 
							
								    <process>
							 | 
						||
| 
								 | 
							
								        "env" >>command
							 | 
						||
| 
								 | 
							
								        { { "A" "B" } } >>environment
							 | 
						||
| 
								 | 
							
								        +replace-environment+ >>environment-mode
							 | 
						||
| 
								 | 
							
								    ascii <process-reader> lines
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ "hi\n" ] [
							 | 
						||
| 
								 | 
							
								    temp-directory [
							 | 
						||
| 
								 | 
							
								        [ "aloha" delete-file ] ignore-errors
							 | 
						||
| 
								 | 
							
								        <process>
							 | 
						||
| 
								 | 
							
								            { "echo" "hi" } >>command
							 | 
						||
| 
								 | 
							
								            "aloha" >>stdout
							 | 
						||
| 
								 | 
							
								        try-process
							 | 
						||
| 
								 | 
							
								    ] with-directory
							 | 
						||
| 
								 | 
							
								    temp-directory "aloha" append-path
							 | 
						||
| 
								 | 
							
								    utf8 file-contents
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ "append-test" temp-file delete-file ] ignore-errors
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ "hi\nhi\n" ] [
							 | 
						||
| 
								 | 
							
								    2 [
							 | 
						||
| 
								 | 
							
								        <process>
							 | 
						||
| 
								 | 
							
								            "echo hi" >>command
							 | 
						||
| 
								 | 
							
								            "append-test" temp-file <appender> >>stdout
							 | 
						||
| 
								 | 
							
								        try-process
							 | 
						||
| 
								 | 
							
								    ] times
							 | 
						||
| 
								 | 
							
								    "append-test" temp-file utf8 file-contents
							 | 
						||
| 
								 | 
							
								] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ t ] [ "ls" utf8 <process-stream> contents >boolean ] unit-test
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ "Hello world.\n" ] [
							 | 
						||
| 
								 | 
							
								    "cat" utf8 <process-stream> [
							 | 
						||
| 
								 | 
							
								        "Hello world.\n" write
							 | 
						||
| 
								 | 
							
								        output-stream get dispose
							 | 
						||
| 
								 | 
							
								        input-stream get contents
							 | 
						||
| 
								 | 
							
								    ] with-stream
							 | 
						||
| 
								 | 
							
								] unit-test
							 |