integration testing / negative tests
✓ 41 passing ✗ 8 failing
Lessons
1 ✓
Passing
001 unclosed input brace
2 ✓
Passing 002 unclosed branch brace
3 ✓
Passing 005 missing event name
4 ✓
Passing 011 invalid module qualifier
5 ✓
Passing 012 multiple defaults error
6 ✓
Passing 013 ambiguous override error
7 ✓
Passing 021 duplicate branch names
8 ✓
Passing 022 double pipe branch
9 ✓
Passing 023 branch without name
10 ✓
Passing 030 missing colon in field
11 ✓
Passing 031 missing comma between fields
12 ✓
Passing 032 numeric field name
13 ✓
Passing 033 empty type after colon
14 ✓
Passing 050 import empty path
15 ✓
Passing 052 reject tilde import
16 ✓
Passing 053 reject quoted import
17 ✓
Passing 061 unknown branch in flow
18 ✓
Passing 062 undefined event call
19 ✓
Passing 063 missing event param
20 ✓
Passing 064 extra event param
21 ✓
Passing 065 pub proc double tilde
22 ⏭
Skipped 066 duplicate proc — QUESTION: Is duplicate proc intentional (last-wins) or should it be rejected?
23 ✓
Passing 067 orphan loop jump
24 ✓
Passing 070 eof in subflow impl
25 ✓
Passing 071 module wildcard concrete
26 ✓
Passing 072 event wildcard concrete
27 ✓
Passing 073 universal wildcard concrete
28 ✓
Passing 074 std log event name
29 ✓
Passing 080 comment inside chain
30 ✗
Failing 081 mock shape mismatch — backend-exec
31 ✓
Passing 090 unknown label error
32 ✓
Passing 100 effect decl handled as terminal
33 ✗
Failing 101 terminal decl handled as effect — backend-exec
34 ✓
Passing 102 resume type mismatch
35 ✓
Passing 103 resume body discard
36 ✓
Passing 104 reject raw slice return
37 ✓
Passing 105 reject raw slice in event
38 ✓
Passing 106 raw slice return caret locates the tor
39 ✓
Passing 107 raw slice return on multiline shape close
40 ✗
Failing 108 reject compound raw slice return — expected-error-missing
41 ✓
Passing 109 midchain branch coverage unchecked
42 ✓
Passing 110 unused chain bind at head
43 ✓
Passing 111 unused chain bind midchain
44 ✗
Failing 112 bare return impl uses branch ctor — expected-error-missing
45 ✗
Failing 113 branch decl impl uses bare return — expected-error-missing
46 ✗
Failing 114 impl names undeclared branch — expected-error-missing
47 ✓
Passing 115 missing impl at head
48 ✗
Failing 116 missing impl midchain — must-error-passed
49 ✗
Failing 117 missing impl midchain fabricates value — must-error-passed
50 ✓
Passing 118 rejection prints a crash report