aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/test/lux/world/shell.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/test/lux/world/shell.lux')
-rw-r--r--stdlib/source/test/lux/world/shell.lux64
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)))))
)))