diff options
Diffstat (limited to 'stdlib/source/test/lux/world/shell.lux')
-rw-r--r-- | stdlib/source/test/lux/world/shell.lux | 64 |
1 files changed, 32 insertions, 32 deletions
diff --git a/stdlib/source/test/lux/world/shell.lux b/stdlib/source/test/lux/world/shell.lux index 1cd1473e8..4008c4c5a 100644 --- a/stdlib/source/test/lux/world/shell.lux +++ b/stdlib/source/test/lux/world/shell.lux @@ -36,29 +36,29 @@ (implementation (def: (on_read dead?) (if dead? - (exception.throw ..dead []) + (exception.except ..dead []) (do try.monad [to_echo (try.of_maybe (list.head arguments))] - (wrap [dead? to_echo])))) + (in [dead? to_echo])))) (def: (on_error dead?) (if dead? - (exception.throw ..dead []) + (exception.except ..dead []) (exception.return [dead? ""]))) (def: (on_write message dead?) (if dead? - (exception.throw ..dead []) + (exception.except ..dead []) (#try.Success dead?))) (def: (on_destroy dead?) (if dead? - (exception.throw ..dead []) + (exception.except ..dead []) (#try.Success true))) (def: (on_await dead?) (if dead? - (exception.throw ..dead []) + (exception.except ..dead []) (#try.Success [true /.normal]))))) (def: (io_shell command oops input destruction exit) @@ -96,33 +96,33 @@ destruction (random.ascii/alpha 5) exit random.int #let [shell (/.async (..io_shell command oops input destruction exit))]] - (wrap (do {! async.monad} - [verdict (do (try.with !) - [process (\ shell execute [environment.empty "~" command (list)]) - read (\ process read []) - error (\ process error []) - wrote! (do ! - [write (\ process write input)] - (wrap (#try.Success (case write + (in (do {! async.monad} + [verdict (do (try.with !) + [process (\ shell execute [environment.empty "~" command (list)]) + read (\ process read []) + error (\ process error []) + wrote! (do ! + [write (\ process write input)] + (in (#try.Success (case write + (#try.Success _) + false + + (#try.Failure write) + (text\= input write))))) + destroyed! (do ! + [destroy (\ process destroy [])] + (in (#try.Success (case destroy (#try.Success _) false - (#try.Failure write) - (text\= input write))))) - destroyed! (do ! - [destroy (\ process destroy [])] - (wrap (#try.Success (case destroy - (#try.Success _) - false - - (#try.Failure destroy) - (text\= destruction destroy))))) - await (\ process await [])] - (wrap (and (text\= command read) - (text\= oops error) - wrote! - destroyed! - (i.= exit await))))] - (_.cover' [/.Shell] - (try.default false verdict))))) + (#try.Failure destroy) + (text\= destruction destroy))))) + await (\ process await [])] + (in (and (text\= command read) + (text\= oops error) + wrote! + destroyed! + (i.= exit await))))] + (_.cover' [/.Shell] + (try.default false verdict))))) ))) |