A single integration test that drives every top-level FSM through the coordinated lifecycle a real fab acceptance test exercises: 1. EPT NonScheduledTime -> Standby -> Productive (E116) 2. E84 load handshake at LP1 (CS_0 -> VALID -> L_REQ -> BUSY -> COMPT) 3. LoadPort transfer Loading -> InService; Carrier created + associated 4. CIDS NotConfirmed -> Confirmed via host ProceedWithCarrier (E87) 5. Slot map populated + CSMS NotRead -> Read 6. Two substrates created from carrier slots 1 and 2 7. Per-substrate IDS NotConfirmed -> WaitingForHost -> Confirmed 8. PJ + CJ created (E40 + E94, with PPID validator + PJ-membership) 9. CJ Queued -> Selected -> WaitingForStart -> Executing (E94) 10. PJ Queued -> SettingUp -> WaitingForStart -> Processing (E40) 11. Each substrate Acquire -> StartProcessing -> EndProcessing -> Release 12. Module StartGeneral -> StartStep -> CompleteStep (E157) 13. PJ ProcessComplete; CJ AllJobsComplete -> Completed 14. Substrate locations AtDestination + processing Processed 15. E84 unload handshake (CS_0 -> VALID -> U_REQ -> BUSY -> COMPT) 16. LoadPort Unloading -> InService; disassociate 17. EPT Productive -> Standby Total: 278 test cases, 1436 assertions — all green. Any regression in a single FSM that breaks cross-FSM coordination surfaces here. Closes the J-Q tranche set. Repository now exercises the full GEM300 stack from physical I/O (E84) through SECS-II messaging (E5), the equipment model (E30/E120), job management (E40/E94), substrate tracking (E90), carrier/port management (E87), performance tracking (E116), and module process tracking (E157). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -115,6 +115,7 @@ add_executable(secsgem_tests
|
||||
tests/test_sml.cpp
|
||||
tests/test_s9_fallback.cpp
|
||||
tests/test_e84.cpp
|
||||
tests/test_gem300_scenario.cpp
|
||||
)
|
||||
target_link_libraries(secsgem_tests PRIVATE secsgem doctest::doctest)
|
||||
target_compile_definitions(secsgem_tests PRIVATE
|
||||
|
||||
Reference in New Issue
Block a user