| 
									
										
										
										
											2009-02-08 18:34:17 -05:00
										 |  |  | USING: arrays debugger.threads destructors io io.directories | 
					
						
							|  |  |  | io.encodings.8-bit io.encodings.ascii io.encodings.binary | 
					
						
							|  |  |  | io.files io.files.private io.files.temp io.files.unique kernel | 
					
						
							| 
									
										
										
										
											2009-04-30 23:56:15 -04:00
										 |  |  | make math sequences system threads tools.test generic.single ;
 | 
					
						
							| 
									
										
										
										
											2008-03-01 17:00:45 -05:00
										 |  |  | IN: io.files.tests | 
					
						
							| 
									
										
										
										
											2007-09-20 18:09:08 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-14 21:03:00 -05:00
										 |  |  | [ ] [ "append-test" temp-file dup exists? [ delete-file ] [ drop ] if ] unit-test | 
					
						
							| 
									
										
										
										
											2008-02-27 15:59:15 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-14 21:03:00 -05:00
										 |  |  | [ ] [ "append-test" temp-file ascii <file-appender> dispose ] unit-test | 
					
						
							| 
									
										
										
										
											2008-02-27 15:59:15 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-14 21:03:00 -05:00
										 |  |  | [ | 
					
						
							|  |  |  |     "This is a line.\rThis is another line.\r" | 
					
						
							|  |  |  | ] [ | 
					
						
							| 
									
										
										
										
											2009-02-15 21:45:06 -05:00
										 |  |  |     "vocab:io/test/mac-os-eol.txt" latin1 | 
					
						
							|  |  |  |     [ 500 read ] with-file-reader | 
					
						
							| 
									
										
										
										
											2008-02-27 15:59:15 -05:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-12-14 21:03:00 -05:00
										 |  |  | [ | 
					
						
							|  |  |  |     255
 | 
					
						
							|  |  |  | ] [ | 
					
						
							| 
									
										
										
										
											2009-02-15 21:45:06 -05:00
										 |  |  |     "vocab:io/test/binary.txt" latin1 | 
					
						
							|  |  |  |     [ read1 ] with-file-reader >fixnum
 | 
					
						
							| 
									
										
										
										
											2008-02-27 15:59:15 -05:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ ] [ | 
					
						
							| 
									
										
										
										
											2008-12-14 21:03:00 -05:00
										 |  |  |     "It seems Jobs has lost his grasp on reality again.\n" | 
					
						
							|  |  |  |     "separator-test.txt" temp-file latin1 set-file-contents | 
					
						
							| 
									
										
										
										
											2008-03-26 20:40:40 -04:00
										 |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-06-27 21:10:47 -04:00
										 |  |  | [ | 
					
						
							| 
									
										
										
										
											2008-12-14 21:03:00 -05:00
										 |  |  |     { | 
					
						
							|  |  |  |         { "It seems " CHAR: J } | 
					
						
							|  |  |  |         { "obs has lost h" CHAR: i } | 
					
						
							|  |  |  |         { "s grasp on reality again.\n" f } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | ] [ | 
					
						
							|  |  |  |     [ | 
					
						
							|  |  |  |         "separator-test.txt" temp-file | 
					
						
							| 
									
										
										
										
											2009-02-15 21:45:06 -05:00
										 |  |  |         latin1 [ | 
					
						
							| 
									
										
										
										
											2008-12-14 21:03:00 -05:00
										 |  |  |             "J" read-until 2array , | 
					
						
							|  |  |  |             "i" read-until 2array , | 
					
						
							|  |  |  |             "X" read-until 2array , | 
					
						
							| 
									
										
										
										
											2009-02-15 21:45:06 -05:00
										 |  |  |         ] with-file-reader | 
					
						
							| 
									
										
										
										
											2008-12-14 21:03:00 -05:00
										 |  |  |     ] { } make | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ ] [ | 
					
						
							|  |  |  |     image binary [ | 
					
						
							|  |  |  |         10 [ 65536 read drop ] times
 | 
					
						
							|  |  |  |     ] with-file-reader | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ! Test EOF behavior | 
					
						
							|  |  |  | [ 10 ] [ | 
					
						
							|  |  |  |     image binary [ | 
					
						
							|  |  |  |         0 read drop
 | 
					
						
							|  |  |  |         10 read length
 | 
					
						
							|  |  |  |     ] with-file-reader | 
					
						
							|  |  |  | ] unit-test | 
					
						
							| 
									
										
										
										
											2008-12-14 22:21:44 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | USE: debugger.threads | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ ] [ "test-quux.txt" temp-file ascii [ [ yield "Hi" write ] "Test" spawn drop ] with-file-writer ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ ] [ "test-quux.txt" temp-file delete-file ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ ] [ "test-quux.txt" temp-file ascii [ [ yield "Hi" write ] "Test" spawn drop ] with-file-writer ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ ] [ "test-quux.txt" "quux-test.txt" [ temp-file ] bi@ move-file ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ t ] [ "quux-test.txt" temp-file exists? ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ ] [ "quux-test.txt" temp-file delete-file ] unit-test | 
					
						
							| 
									
										
										
										
											2009-02-08 14:59:32 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | ! File seeking tests | 
					
						
							|  |  |  | [ B{ 3 2 3 4 5 } ] | 
					
						
							|  |  |  | [ | 
					
						
							|  |  |  |     "seek-test1" unique-file binary | 
					
						
							|  |  |  |     [ | 
					
						
							|  |  |  |         [ | 
					
						
							|  |  |  |             B{ 1 2 3 4 5 } write 0 seek-absolute seek-output
 | 
					
						
							|  |  |  |             B{ 3 } write
 | 
					
						
							|  |  |  |         ] with-file-writer | 
					
						
							|  |  |  |     ] [ | 
					
						
							|  |  |  |         file-contents | 
					
						
							|  |  |  |     ] 2bi
 | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ B{ 1 2 3 4 3 } ] | 
					
						
							|  |  |  | [ | 
					
						
							|  |  |  |     "seek-test2" unique-file binary | 
					
						
							|  |  |  |     [ | 
					
						
							|  |  |  |         [ | 
					
						
							|  |  |  |             B{ 1 2 3 4 5 } write -1 seek-relative seek-output
 | 
					
						
							|  |  |  |             B{ 3 } write
 | 
					
						
							|  |  |  |         ] with-file-writer | 
					
						
							|  |  |  |     ] [ | 
					
						
							|  |  |  |         file-contents | 
					
						
							|  |  |  |     ] 2bi
 | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ B{ 1 2 3 4 5 0 3 } ] | 
					
						
							|  |  |  | [ | 
					
						
							|  |  |  |     "seek-test3" unique-file binary | 
					
						
							|  |  |  |     [ | 
					
						
							|  |  |  |         [ | 
					
						
							|  |  |  |             B{ 1 2 3 4 5 } write 1 seek-relative seek-output
 | 
					
						
							|  |  |  |             B{ 3 } write
 | 
					
						
							|  |  |  |         ] with-file-writer | 
					
						
							|  |  |  |     ] [ | 
					
						
							|  |  |  |         file-contents | 
					
						
							|  |  |  |     ] 2bi
 | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ B{ 3 } ] | 
					
						
							|  |  |  | [ | 
					
						
							|  |  |  |     B{ 1 2 3 4 5 } "seek-test4" unique-file binary [ | 
					
						
							|  |  |  |         set-file-contents | 
					
						
							|  |  |  |     ] [ | 
					
						
							|  |  |  |         [ | 
					
						
							|  |  |  |             -3 seek-end seek-input 1 read
 | 
					
						
							|  |  |  |         ] with-file-reader | 
					
						
							|  |  |  |     ] 2bi
 | 
					
						
							|  |  |  | ] unit-test | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ B{ 2 } ] | 
					
						
							|  |  |  | [ | 
					
						
							|  |  |  |     B{ 1 2 3 4 5 } "seek-test5" unique-file binary [ | 
					
						
							|  |  |  |         set-file-contents | 
					
						
							|  |  |  |     ] [ | 
					
						
							|  |  |  |         [ | 
					
						
							|  |  |  |             3 seek-absolute seek-input
 | 
					
						
							|  |  |  |             -2 seek-relative seek-input
 | 
					
						
							|  |  |  |             1 read
 | 
					
						
							|  |  |  |         ] with-file-reader | 
					
						
							|  |  |  |     ] 2bi
 | 
					
						
							|  |  |  | ] unit-test | 
					
						
							| 
									
										
										
										
											2009-02-08 21:18:30 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ | 
					
						
							|  |  |  |     "seek-test6" unique-file binary [ | 
					
						
							|  |  |  |         -10 seek-absolute seek-input
 | 
					
						
							|  |  |  |     ] with-file-reader | 
					
						
							|  |  |  | ] must-fail | 
					
						
							| 
									
										
										
										
											2009-04-20 04:26:56 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | [ | 
					
						
							|  |  |  |     "non-string-error" unique-file ascii [ | 
					
						
							|  |  |  |         { } write
 | 
					
						
							|  |  |  |     ] with-file-writer | 
					
						
							|  |  |  | ] [ no-method? ] must-fail-with | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [ | 
					
						
							|  |  |  |     "non-byte-array-error" unique-file binary [ | 
					
						
							|  |  |  |         "" write
 | 
					
						
							|  |  |  |     ] with-file-writer | 
					
						
							|  |  |  | ] [ no-method? ] must-fail-with |