Skip to content

TinyOrch Test Notes

tiny_orch_self_test() covers 27 test cases in six categories:

Category Cases Scenario Verification
Happy Path 1-3 create + list_flows Flow is queryable after creation
Error Path 4-6 src not found, tool not found, type mismatch Returns corresponding error codes
Full Execution 7-11 Two-step flow: add5 → mul2 Data correctly passes through (10→15→30)
Status Query 12-14 status, step_count State is DONE, step count is correct
One-Shot Step 15-16 run temporary execution Data correctly passes through
Lifecycle 17-27 destroy → list, max flows, NULL validation Clean cleanup, boundaries working correctly

Self-Test Output Example

===== TinyOrch Self-Test =====
  ✓ [1] create: 'pipe' succeeds
  ✓ [9] go: pipe executes OK
  ✓ [10] go: src(10) + add5 = mid(15)
  ✓ [11] go: mid(15) * mul2 = dst(30)
  ...
  ✓ [27] status: NULL orch returns ERR_NULL
-----
  27 / 27 tests passed  [ALL PASS]
===== TinyOrch Self-Test DONE =====

MQTT Full Flow Test

Complete orchestration flow via MQTT (19 steps):

1.  BENCH,TEST                  # verify bench
2.  ORCH,TEST                   # verify orchestrator
3.  ORCH,CREATE,daily_scan      # create flow
4.  BENCH,PUT,raw_0,2           # reserve data slot
5-8. BENCH,PUT,...              # reserve all 5 slots
9-12.ORCH,STEP,... ×4          # define 4 steps
13. ORCH,GO,daily_scan          # execute
14. ORCH,STATUS,daily_scan      # status should be DONE
15. BENCH,DATA                  # view data
16. ORCH,RUN,...                # one-shot single step
17. ORCH,DESTROY,daily_scan     # cleanup
18. ORCH,LIST                   # confirm no residuals

Remote Trigger

Send ORCH,TEST via MQTT to /mqtt/server; results are published to /mqtt/node.

Test Environment

  • Compiled and run with host gcc, no embedded dependencies
  • Full flow verified on ESP32-S3 hardware via flash