diff --git a/basis/compiler/tests/callback-error.factor b/basis/compiler/tests/callback-error.factor index 9882cc2501..30d05327c3 100644 --- a/basis/compiler/tests/callback-error.factor +++ b/basis/compiler/tests/callback-error.factor @@ -1,17 +1,19 @@ -USING: accessors io io.encodings.ascii io.launcher kernel make -sequences system tools.test ; +USING: accessors io io.encodings.ascii io.files io.files.temp +io.launcher kernel make sequences system tools.test ; IN: compiler.tests.callback-error -: run-vm-with-script ( string -- lines ) - [ ] dip - [ vm , , ] { } make >>command +: callback-error-script ( -- path ) + "callback-error-script" temp-file ; + +: run-vm-with-script ( -- lines ) + + [ vm , callback-error-script , ] { } make >>command +closed+ >>stdin +stdout+ >>stderr ascii stream-lines ; -! Callback error from initial thread -[ t ] [ - """-e=USING: alien alien.c-types alien.syntax kernel ; +[ ] [ + """USING: alien alien.c-types alien.syntax kernel ; IN: scratchpad : callback-death ( -- callback ) @@ -21,13 +23,14 @@ IN: compiler.tests.callback-error void { } cdecl alien-indirect ; callback-death callback-invoke""" - run-vm-with-script - "\"Error!\"" swap member? + callback-error-script ascii set-file-contents ] unit-test -! Callback error from another thread -[ t ] [ - """-e=USING: alien alien.c-types alien.syntax kernel threads ; +! Callback error from initial thread +[ t ] [ run-vm-with-script "\"Error!\"" swap member? ] unit-test + +[ ] [ + """USING: alien alien.c-types alien.syntax kernel threads ; IN: scratchpad : callback-death ( -- callback ) @@ -38,6 +41,8 @@ IN: compiler.tests.callback-error [ callback-death callback-invoke ] in-thread stop""" - run-vm-with-script - "\"Error!\"" swap member? + callback-error-script ascii set-file-contents ] unit-test + +! Callback error from another thread +[ t ] [ run-vm-with-script "\"Error!\"" swap member? ] unit-test