mirror of
https://github.com/urbit/shrub.git
synced 2024-12-19 00:13:12 +03:00
test: khan test cleanup
;;(vase ...) does a nest-check of the type of the kernel. This is undesirable, so we instead run everything through +slum and cast the result to +tang.
This commit is contained in:
parent
21ea32e8ad
commit
ccf9110f7f
@ -2,7 +2,7 @@
|
||||
/= khan-raw /sys/vane/khan
|
||||
=/ khan-gate (khan-raw ~nul)
|
||||
|%
|
||||
++ test-khan-fyrd-basic
|
||||
++ test-khan-fyrd-start-args
|
||||
=^ results1 khan-gate
|
||||
%- khan-call :*
|
||||
khan-gate
|
||||
@ -21,56 +21,61 @@
|
||||
%nonexistent (vale.dais ~)
|
||||
==
|
||||
=^ results2 khan-gate
|
||||
%- khan-call :*
|
||||
khan-gate
|
||||
now
|
||||
scry=scry-provides-mark
|
||||
^= call-args
|
||||
:* duct=~[//khan/1/0vsome.ductt] ~
|
||||
%fyrd fyrd
|
||||
==
|
||||
^= moves-check
|
||||
|= mev=(list move:khan-gate)
|
||||
^- tang
|
||||
=/ r1
|
||||
%+ expect-eq
|
||||
!> :* ~[//khan/1/0vsome.ductt]
|
||||
%pass //g %g %deal
|
||||
[~nul ~nul] %spider %watch
|
||||
/thread-result/'khan-fyrd--0vsome.ductt'
|
||||
==
|
||||
!> (head mev)
|
||||
:: XX this is extremely verbose because we do not have
|
||||
:: a +expect-eq for recursive vases, and spider takes a
|
||||
:: double-nested vase. so we first test that the poke is
|
||||
:: correct aside from the vase; then we check that the
|
||||
:: outer vase is correct aside from the inner vase; then
|
||||
:: we check that the inner vase is correct.
|
||||
::
|
||||
=/ rem (rear mev)
|
||||
=/ r2
|
||||
%+ expect-eq
|
||||
!> :* ~[//khan/1/0vsome.ductt]
|
||||
%pass //g %g %deal
|
||||
[~nul ~nul] %spider %poke
|
||||
%spider-start ~
|
||||
==
|
||||
!> rem(+1023 ~)
|
||||
=/ vez=vase ;;(vase +1023:(rear mev))
|
||||
=/ r3
|
||||
%+ expect-eq
|
||||
!> args(+31 ~)
|
||||
!> q.vez(+31 ~)
|
||||
=/ r4
|
||||
%+ expect-eq
|
||||
;;(vase +31.args)
|
||||
;;(vase +31.q.vez)
|
||||
;: weld
|
||||
r1
|
||||
r2
|
||||
r3
|
||||
r4
|
||||
== ==
|
||||
%- khan-call
|
||||
:* khan-gate
|
||||
now
|
||||
scry=scry-provides-mark
|
||||
^= call-args
|
||||
:* duct=~[//khan/1/0vsome.ductt] ~
|
||||
%fyrd fyrd
|
||||
==
|
||||
^= moves-check
|
||||
|= mev=(list move:khan-gate)
|
||||
^- tang
|
||||
=/ r0 (expect-eq !>(2) !>((lent mev)))
|
||||
=/ r1
|
||||
%+ expect-eq
|
||||
!> :* ~[//khan/1/0vsome.ductt]
|
||||
%pass //g %g %deal
|
||||
[~nul ~nul] %spider %watch
|
||||
/thread-result/'khan-fyrd--0vsome.ductt'
|
||||
==
|
||||
!> (head mev)
|
||||
:: XX this is somewhat verbose because we do not
|
||||
:: have a +expect-eq for recursive vases, and spider
|
||||
:: takes a double-nested vase. so we first test that
|
||||
:: the poke is correct aside from the vase; then we
|
||||
:: check that the outer vase is correct aside from
|
||||
:: the inner vase; then we check that the inner vase
|
||||
:: is correct.
|
||||
::
|
||||
=/ rem (rear mev)
|
||||
=/ r2
|
||||
%+ expect-eq
|
||||
!> :* ~[//khan/1/0vsome.ductt]
|
||||
%pass //g %g %deal
|
||||
[~nul ~nul] %spider %poke
|
||||
%spider-start ~
|
||||
==
|
||||
!> rem(+1023 ~)
|
||||
=/ vez=* +1023:(rear mev)
|
||||
=/ r3
|
||||
;; tang
|
||||
%+ slum expect-eq
|
||||
:- !> args(+31 ~)
|
||||
!> +.vez(+31 ~)
|
||||
=/ r4
|
||||
;; tang
|
||||
%+ slum expect-eq
|
||||
:- +31.args
|
||||
+31.+.vez
|
||||
;: weld
|
||||
r0
|
||||
r1
|
||||
r2
|
||||
r3
|
||||
r4
|
||||
== ==
|
||||
(weld results1 results2)
|
||||
:: ++ test-khan-take-dud
|
||||
:: !!
|
||||
@ -84,12 +89,19 @@
|
||||
|= $: khan-gate=_khan-gate
|
||||
now=@da
|
||||
scry=roof
|
||||
call-args=[=duct dud=(unit goof) wrapped-task=(hobo task:khan)]
|
||||
moves-check=$-((list move:khan-gate) tang)
|
||||
$= call-args
|
||||
$: =duct
|
||||
dud=(unit goof)
|
||||
wrapped-task=(hobo task:khan)
|
||||
==
|
||||
$= moves-check
|
||||
$- (list move:khan-gate) tang
|
||||
==
|
||||
^- [tang _khan-gate]
|
||||
=/ khan-core (khan-gate now eny=`@uvJ`0xdead.beef scry=scry)
|
||||
=^ moves khan-gate (call:khan-core [duct dud wrapped-task]:call-args)
|
||||
=/ khan-core
|
||||
(khan-gate now eny=`@uvJ`0xdead.beef scry=scry)
|
||||
=^ moves khan-gate
|
||||
(call:khan-core [duct dud wrapped-task]:call-args)
|
||||
=/ output=tang
|
||||
(moves-check moves)
|
||||
[output khan-gate]
|
||||
|
Loading…
Reference in New Issue
Block a user