diff --git a/pkg/arvo/app/herm.hoon b/pkg/arvo/app/herm.hoon index f20bf2b2d8..8c2b77f06a 100644 --- a/pkg/arvo/app/herm.hoon +++ b/pkg/arvo/app/herm.hoon @@ -5,7 +5,6 @@ :: keep relevant mark conversions in cache for performance :: /$ blit-to-json %blit %json -/$ json-to-blit %json %blit /$ json-to-task %json %herm-task :: =, jael diff --git a/pkg/arvo/lib/hood/drum.hoon b/pkg/arvo/lib/hood/drum.hoon index bec10edf07..532205c505 100644 --- a/pkg/arvo/lib/hood/drum.hoon +++ b/pkg/arvo/lib/hood/drum.hoon @@ -1070,8 +1070,9 @@ ++ wrd :: next or current word |= a=(list @) =| i=@ud + ?~ a i |- ^- @ud - ?: |(?=(~ a) (alnm i.a)) i + ?: |(?=(~ t.a) (alnm i.a)) i $(i +(i), a t.a) -- -- diff --git a/pkg/arvo/sys/vane/clay.hoon b/pkg/arvo/sys/vane/clay.hoon index 9f93f4894b..df4457570a 100644 --- a/pkg/arvo/sys/vane/clay.hoon +++ b/pkg/arvo/sys/vane/clay.hoon @@ -729,11 +729,7 @@ :: %- (trace 1 |.("make cast {} -> {}")) =^ old=vase nub (build-fit %mar a) - ?: =/ ram (mule |.((slap old !,(*hoon grow)))) - ?: ?=(%| -.ram) %.n - =/ lab (mule |.((slob b p.p.ram))) - ?: ?=(%| -.lab) %.n - p.lab + ?: (has-arm %grow b old) :: +grow core has .b arm; use that :: %+ gain-leak cast+a^b @@ -749,8 +745,9 @@ :: try direct +grab :: =^ new=vase nub (build-fit %mar b) + =/ arm=? (has-arm %grab a new) =/ rab (mule |.((slap new tsgl/[limb/a limb/%grab]))) - ?: &(?=(%& -.rab) ?=(^ q.p.rab)) + ?: &(arm ?=(%& -.rab) ?=(^ q.p.rab)) %+ gain-leak cast+a^b |= nob=state %- (trace 4 |.("{} -> {}: +{(trip a)}:grab:{(trip b)}")) @@ -759,11 +756,11 @@ :: try +jump :: =/ jum (mule |.((slap old tsgl/[limb/b limb/%jump]))) - ?: ?=(%& -.jum) + ?: &((has-arm %jump a old) ?=(%& -.jum)) =/ via !<(mark p.jum) %- (trace 4 |.("{} -> {}: via {} per +jump:{(trip a)}")) (compose-casts a via b) - ?: ?=(%& -.rab) + ?: &(arm ?=(%& -.rab)) =/ via !<(mark p.rab) %- (trace 4 |.("{} -> {}: via {} per +grab:{(trip b)}")) (compose-casts a via b) @@ -787,6 +784,15 @@ %+ slap (with-faces uno+uno dos+dos ~) !,(*hoon |=(_+<.uno (dos (uno +<)))) + :: + ++ has-arm + |= [arm=@tas =mark core=vase] + ^- ? + =/ rib (mule |.((slap core [%wing ~[arm]]))) + ?: ?=(%| -.rib) %.n + =/ lab (mule |.((slob mark p.p.rib))) + ?: ?=(%| -.lab) %.n + p.lab :: +build-tube: produce a $tube mark conversion gate from .a to .b :: ++ build-tube diff --git a/pkg/arvo/ted/test.hoon b/pkg/arvo/ted/test.hoon index be97bd6586..2f5ec55db3 100644 --- a/pkg/arvo/ted/test.hoon +++ b/pkg/arvo/ted/test.hoon @@ -27,14 +27,15 @@ :: +run-test: execute an individual test :: ++ run-test - |= [bem=beam test=test-func] - ^- [ok=? =tang] + |= [pax=path test=test-func] + ^- [ok=? output=tang result=tang] + =+ name=(spud pax) =+ run=(mule test) ?- -.run - %| |+p.run + %| |+[p.run [leaf+"CRASHED {name}" ~]] %& ?: =(~ p.run) - &+~ - |+(flop `tang`[leaf+"FAILED" p.run]) + &+[p.run [leaf+"OK {name}" ~]] + |+[p.run [leaf+"FAILED {name}" ~]] == :: +resolve-test-paths: add test names to file paths to form full identifiers :: @@ -138,7 +139,9 @@ ?^ fiz ;< [cor=(unit vase) =tang] bind:m (build-file beam.i.fiz) ?~ cor - gather-tests(fiz t.fiz, build-failed [[beam.i.fiz tang] build-failed]) + ~> %slog.3^leaf+"FAILED {(spud s.beam.i.fiz)} (build)" + gather-tests(fiz t.fiz, build-ok |) + ~> %slog.0^leaf+"built {(spud s.beam.i.fiz)}" =/ arms=(list test-arm) (get-test-arms u.cor) :: if test path specified an arm prefix, filter arms to match =? arms ?=(^ test.i.fiz) @@ -154,10 +157,9 @@ |= [=beam *] beam %+ roll (resolve-test-paths test-arms) -|= [[=beam =test-func] failed=_build-failed] -^+ failed -=/ res (run-test beam test-func) -?: -.res - failed -:_ failed -[beam +.res] +|= [[=path =test-func] ok=_build-ok] +^+ ok +=/ res (run-test path test-func) +%- (%*(. slog pri ?:(ok.res 0 3)) output.res) +%- (%*(. slog pri ?:(ok.res 0 3)) result.res) +&(ok ok.res) \ No newline at end of file