while the initial design treated the commands in a strictly top-down manner, where the ID is known solely to the CommandRegistry, this change and information duplication became necessary now, since by default we now always enqueue and dispatch anonymous clone copies from the original command definition (prototype). This implementation uses the trick to tag this command-ID when a command-hanlde is activated, which is also the moment when it is tracked in the registry.
142 lines
4.1 KiB
Text
142 lines
4.1 KiB
Text
TESTING "Component Test Suite: Proc-Layer controller" ./test-suite --group=controller
|
|
|
|
|
|
|
|
|
|
TEST "Command Basics" CommandBasic_test <<END
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Argument & Memento handling" CommandArgument_test <<END
|
|
out: Command-State. arguments=unbound, ·noUNDO·.
|
|
out: capture state...
|
|
out: Command-State. arguments=OpClosure\(\), ·noUNDO·.
|
|
out: Command-State. arguments=OpClosure\(.\), ·noUNDO·.
|
|
out: Command-State. arguments=OpClosure\(.,.+s.*\), ·noUNDO·.
|
|
out: Command-State. arguments=OpClosure\(.+s.*,glorious,..\), <mem: destruction>.
|
|
out: would be serialised.....Command-State. arguments=OpClosure\(\), ·noUNDO·.
|
|
out: would be serialised.....Command-State. arguments=OpClosure\(.\), ·noUNDO·.
|
|
out: would be serialised.....Command-State. arguments=OpClosure\(.,.+s.*\), ·noUNDO·.
|
|
out: would be serialised.....Command-State. arguments=OpClosure\(.+s.*,glorious,..\), <mem: destruction>.
|
|
out: sizeof\( control::StorageHolder<void \(Tracker<TimeVar>, Tracker<string>, int\), Tracker<string> > \) = [0-9]{2,3}
|
|
out: Command-State. arguments=OpClosure\(.+s.*,Lumiera rocks,..\), ·noUNDO·.
|
|
out: capture state...
|
|
out: captured state: START...Lumiera rocks
|
|
out: Command-State. arguments=OpClosure\(.+s.*,Lumiera rocks,..\), <mem: START...Lumiera rocks>.
|
|
out: invoke operation...
|
|
out: START...doIt\( Time=.+s.* "Lumiera rocks" rand=.. \)
|
|
out: undo... memento=START...Lumiera rocks
|
|
out: START...doIt\( Time=.+s.* "Lumiera rocks" rand=.. \)undoIt\(time=.+s\)----memento-:START...Lumiera rocks
|
|
out: capture state...
|
|
out: modified: Command-State. arguments=OpClosure\(123ms,unbelievable,..\), <mem: START...doIt\( Time=.+s.* "Lumiera rocks" rand=.. \)undoIt\(time=.+s\)----memento-:START...Lumiera rocksLumiera rocks>.
|
|
out: copied : Command-State. arguments=OpClosure\(.+s.*,Lumiera rocks,..\), <mem: START...Lumiera rocks>.
|
|
out: undo... memento=START...doIt\( Time=.+s.* "Lumiera rocks" rand=.. \)undoIt\(time=.+s\)----memento-:START...Lumiera rocksLumiera rocks
|
|
out: RESET...undoIt\(time=.+s\)----memento-:START...doIt\( Time=.+s.* "Lumiera rocks" rand=.. \)undoIt\(time=.+s\)----memento-:START...Lumiera rocksLumiera rocks
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "build argument accepting function" ArgumentTupleAccept_test <<END
|
|
out: sizeof\( TestClass<void \(\)> \) = 1
|
|
out: sizeof\( TestClass<int \(TimeVar, int\)> \) = (12|16)
|
|
out: .+s
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "argument binding from GenNode message" CommandMessageBinding_test <<END
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Command functor and UNDO functor" CommandMutation_test <<END
|
|
out-lit: empty placeholder closure: Command-Closure{ arguments=unbound }
|
|
out-lit: param values: Command-Closure{ arguments=OpClosure(23) }
|
|
out-lit: saved state: 11
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Memento wiring and storage" MementoTie_test <<END
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Opaque cloning of implementation" CommandCloneBuilder_test <<END
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Equality comparisons" CommandEquality_test <<END
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Command index and allocation" CommandRegistry_test <<END
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Handling Pattern basics" HandlingPatternBasics_test <<END
|
|
return: 0
|
|
END
|
|
|
|
|
|
PLANNED "Handling Patterns" HandlingPatternStandardImpl_test <<END
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Command argument binding" CommandBinding_test <<END
|
|
out-lit: Command("test.command3.2") {exec}
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Command usage aspects I" CommandUse1_test <<END
|
|
out-lit: Command("test.command1.1") {undo}
|
|
out-lit: Command("test.command1.2") {def}
|
|
out-lit: Command("test.command1.3") {undo}
|
|
out-lit: Command("test.command1.4") {def}
|
|
out-lit: Command("↯") NIL
|
|
out-lit: Command("test.command1.5") {def}
|
|
out-lit: Command("test.command1.5") {exec}
|
|
out-lit: Command("test.command1.5") {undo}
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Command usage aspects II" CommandUse2_test <<END
|
|
return: 0
|
|
END
|
|
|
|
|
|
PLANNED "Command usage aspects III" CommandUse3_test <<END
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Command setup helper" CommandSetup_test <<END
|
|
return: 0
|
|
END
|
|
|
|
|
|
PLANNED "Command instance management" CommandInstanceManager_test <<END
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Dispatcher loop control logic" DispatcherLooper_test <<END
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Dispatcher command queue" CommandQueue_test <<END
|
|
return: 0
|
|
END
|
|
|
|
|
|
TEST "Dispatcher function test" SessionCommandFunction_test <<END
|
|
return: 0
|
|
END
|