LUMIERA.clone/tests/40components.tests

601 lines
17 KiB
Text

TESTING "Component Test Suite: common and basic components" ./test-lib --group=common
TEST "Hello test" HelloWorld_test 3 <<END
out: ^This is how the world ends\.\.\.$
return: 0
END
TEST "AllocationCluster_test" AllocationCluster_test <<END
return: 0
END
PLANNED "Appconfig_test" Appconfig_test <<END
return: 0
END
TEST "CmdlineWrapper_test" CmdlineWrapper_test <<END
out: wrapping cmdline:\.\.\.
out: -->
out: wrapping cmdline:
out: \.\.\.
out: -->
out: wrapping cmdline:spam...
out: 0\|spam\|
out: -->spam
out: wrapping cmdline:
out: spam...
out: 0\|spam\|
out: -->spam
out: wrapping cmdline:eat more spam...
out: 0\|eat\|
out: 1\|more\|
out: 2\|spam\|
out: -->eat more spam
out: wrapping cmdline: oo _O\(\)O_ ä \+ €...
out: 0\|oo\|
out: 1\|_O\(\)O_\|
out: 2\|ä\|
out: 3\|\+\|
out: 4\|€\|
out: -->oo _O\(\)O_ ä \+ €
out: wrapping cmdline:Ω ooΩ oΩo Ωoo...
out: 0\|Ω\|
out: 1\|ooΩ\|
out: 2\|oΩo\|
out: 3\|Ωoo\|
out: -->Ω ooΩ oΩo Ωoo
out: Standard Cmdlineformat:one two
END
TEST "ConfigFlags_test" ConfigFlags_test <<END
out: Conf0 :-
out: Conf1 :-<1>-
out: Conf2 :-<2>-
out: Conf3 :-<3>-
out: Conf4 :-<2>-<4>-
out: AllFlags :-<1>-<2>-<3>-<4>-
out: __________________________$
out: __________________________ check_flags\(\)
out: Flags1 :-<2>-<4>-
out: Flags2 :-<2>-<4>-
out: SimpleConfig_defined_by_Typelist :-<1>-
out: AnotherConfig_defined_by_Typelist :-<1>-<2>-<3>-<4>-
out: __________________________$
out: __________________________ check_instantiation\(\)
out: defined Conf0\? ---> 0
out: defined Conf1\? ---> 1
out: defined Conf2\? ---> 1
out: defined Conf3\? ---> 1
out: defined Conf4\? ---> 1
out: defined Trash\? ---> 0
out: __________________________$
out: __________________________ check_filter\(\)
out: SomeFlagsets :
out: \+---<1>-<3>-\+
out: \+---<2>-<4>-\+-
out: Configs_defined_by_Flagsets :
out: \+-Conf-\[-<1>-<3>-\]
out: \+-Conf-\[-<2>-<4>-\]-
out: Filter_possible_Configs :
out: \+-Conf-\[-<2>-<4>-\]-
out: AllFlagCombinations :
out: \+---<1>-<2>-<3>-<4>-<·>-\+
out: \+---<1>-<2>-<3>-<·>-\+
out: \+---<1>-<2>-<4>-<·>-\+
out: \+---<1>-<2>-<·>-\+
out: \+---<1>-<3>-<4>-<·>-\+
out: \+---<1>-<3>-<·>-\+
out: \+---<1>-<4>-<·>-\+
out: \+---<1>-<·>-\+
out: \+---<2>-<3>-<4>-<·>-\+
out: \+---<2>-<3>-<·>-\+
out: \+---<2>-<4>-<·>-\+
out: \+---<2>-<·>-\+
out: \+---<3>-<4>-<·>-\+
out: \+---<3>-<·>-\+
out: \+---<4>-<·>-\+
out: \+---<·>-\+-
out: ListAllConfigs :
out: \+-Conf-\[-<1>-<2>-<3>-<4>-\]
out: \+-Conf-\[-<1>-<2>-<3>-\]
out: \+-Conf-\[-<1>-<2>-<4>-\]
out: \+-Conf-\[-<1>-<2>-\]
out: \+-Conf-\[-<1>-<3>-<4>-\]
out: \+-Conf-\[-<1>-<3>-\]
out: \+-Conf-\[-<1>-<4>-\]
out: \+-Conf-\[-<1>-\]
out: \+-Conf-\[-<2>-<3>-<4>-\]
out: \+-Conf-\[-<2>-<3>-\]
out: \+-Conf-\[-<2>-<4>-\]
out: \+-Conf-\[-<2>-\]
out: \+-Conf-\[-<3>-<4>-\]
out: \+-Conf-\[-<3>-\]
out: \+-Conf-\[-<4>-\]
out: \+-Conf-\[-\]-
out: Filter_all_possible_Configs :
out: \+-Conf-\[-<1>-\]
out: \+-Conf-\[-<2>-<3>-\]
out: \+-Conf-\[-<2>-<4>-\]
out: \+-Conf-\[-<2>-\]
out: \+-Conf-\[-<3>-\]-
out: __________________________$
out: __________________________ check_FlagInfo\(\)
out: Flags1 :-<1>-<3>-
out: max bit : 3
out: binary code: 10
out: SomeConfigs :
out: \+-Conf-\[-<1>-<3>-\]
out: \+-Conf-\[-<2>-<4>-\]-
out: max bit in \[SomeConfigs\] : 4
out: TestVisitor application:
out: visit\(code=10\) -->
out: \+-Conf-\[-<1>-<3>-\]-
out: visit\(code=20\) -->
out: \+-Conf-\[-<2>-<4>-\]-
out: __________________________$
out: __________________________ check_ConfigSelector\(\)
out: Possible_Configs :
out: \+-Conf-\[-<1>-\]
out: \+-Conf-\[-<2>-<3>-\]
out: \+-Conf-\[-<2>-<4>-\]
out: \+-Conf-\[-<2>-\]
out: \+-Conf-\[-<3>-\]-
out: Flag-code = 2 ConfigSelector\(\) ---> 1010
out: Flag-code = 12 ConfigSelector\(\) ---> 1023
out: Flag-code = 20 ConfigSelector\(\) ---> 1024
out: Flag-code = 4 ConfigSelector\(\) ---> 1020
out: Flag-code = 8 ConfigSelector\(\) ---> 1030
out: LUMIERA_ERROR_INVALID:invalid input or parameters \(ConfigSelector: No preconfigured factory for config-bits=10111\)\.
return: 0
END
TEST "CustomSharedPtr_test" CustomSharedPtr_test <<END
return: 0
END
TEST "ExceptionError_test" ExceptionError_test <<END
out: caught: LUMIERA_ERROR_LIFE_AND_UNIVERSE:and everything\? \(don't panic\)...the answer is: 42
out: caught lumiera::Error: LUMIERA_ERROR_DERIVED:convoluted exception
out: caught error::Logic: LUMIERA_ERROR_FATAL:floundered \(test-2\).
out: caught error::Invalid: LUMIERA_ERROR_INVALID:invalid input or parameters \(test-3\).
out: caught lumiera::Error: LUMIERA_ERROR_EXTERNAL:failure in external service \(test-4\).
out: caught std::runtime_error: test-5
out: caught std::exception. \(unspecific\)
out: intermediate handler caught: LUMIERA_ERROR_EXTERNAL:failure in external service \(test-7\).....will rethrow as error::State
out: caught lumiera::Error: LUMIERA_ERROR_STATE:unforeseen state -- caused by: LUMIERA_ERROR_EXTERNAL:failure in external service \(test-7\).
out: intermediate handler caught: LUMIERA_ERROR_EXTERNAL:failure in external service \(test-8\).....will rethrow as error::State
out: 2nd intermediate handler caught: LUMIERA_ERROR_STATE:unforeseen state -- caused by: LUMIERA_ERROR_EXTERNAL:failure in external service \(test-8\).....will rethrow as error::Config
out: caught lumiera::Error: LUMIERA_ERROR_CONFIG:misconfiguration -- caused by: LUMIERA_ERROR_EXTERNAL:failure in external service \(test-8\).
END
TEST "Factory_test" Factory_test 5 <<END
out: ctor TargetObj\(5\) successful
out: now the smart-ptr has refcount=3
out: .....TargetObj\(5\): data="\*\*\*\*\*", array\[5\]=\{0,1,2,3,4,\}
out: dtor ~TargetObj\(5\) successful
END
TEST "Factory_special_test" Factory_special_test 5 <<END
out: checkPlacement--------
out: ctor TargetObj\(5\) successful
out: created 3 shared_ptrs to Object placed in static buffer.
out: .....TargetObj\(5\): data="\*\*\*\*\*", array\[5\]=\{0,1,2,3,4,\}
out: dtor ~TargetObj\(5\) successful
out: ctor TargetObj\(6\) successful
out: created 4 shared_ptrs to Object placed in static buffer.
out: dtor ~TargetObj\(6\) successful
out: checkPrivate--------
out: ctor TargetObj\(5\) successful
out: created 3 shared_ptrs to paranoid Object.
out: .....TargetObj\(5\): data="\*\*\*\*\*", array\[5\]=\{0,1,2,3,4,\}
out: dtor ~TargetObj\(5\) successful
out: checkMalloc--------
out: ctor TargetObj\(7\) successful
out: created auto_ptr to malloc-ed Object.
out: .....TargetObj\(7\): data="\*\*\*\*\*\*\*", array\[7\]=\{0,1,2,3,4,5,6,\}
out: dtor ~TargetObj\(7\) successful
out: checkPImpl--------
out: ctor TargetObj\(12\) successful
out: created auto_ptr to Interface Object.
out: .....ImplObj::funky\(\) called
out: .....TargetObj\(12\): data="\*\*\*\*\*\*\*\*\*\*\*\*", array\[12\]=\{0,1,2,3,4,5,6,7,8,9,10,11,\}
out: dtor ~TargetObj\(12\) successful
END
TEST "FunctionClosure_test" FunctionClosure_test <<END
out: List1 :-<1>-<2>-<3>-
out: List2 :-<5>-<6>-<7>-
out: Args :-<5>-<9>-
out: NewArgs :-<1>-<5>-<9>-
out: :$
out: : ---Apply---
out: tup0 :...Tuple\(\)
out: tup1 :...Tuple\(11\)
out: tup2 :...Tuple\(11,12\)
out: tup3 :...Tuple\(11,12,13\)
out: :$
out: : ---Bind----
return: 0
END
TEST "FunctionErasure_test" FunctionErasure_test <<END
return: 0
END
TEST "HashIndexed_test" HashIndexed_test <<END
return: 0
END
TEST "LifeCycle_test" LifeCycle_test <<END
return: 0
END
TEST "RemoveFromSet_test" RemoveFromSet_test <<END
out: removed nothing ---> \[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, \]
out: removed 0 ---> \[ 1, 2, 3, 4, 5, 6, 7, 8, 9, \]
out: removed 9 ---> \[ 0, 1, 2, 3, 4, 5, 6, 7, 8, \]
out: removed 5 ---> \[ 0, 1, 2, 3, 4, 6, 7, 8, 9, \]
out: removed 0 2 4 6 8 ---> \[ 1, 3, 5, 7, 9, \]
out: removed 1 3 5 7 9 ---> \[ 0, 2, 4, 6, 8, \]
out: removed 0 1 2 3 4 5 6 7 8 9 ---> \[ \]
out: removed 0 1 2 3 4 5 6 7 8 ---> \[ 9, \]
out: removed 1 2 3 4 5 6 7 8 9 ---> \[ 0, \]
out: removed 0 1 2 3 4 6 7 8 9 ---> \[ 5, \]
END
TEST "SanitizedIdentifier_test" SanitizedIdentifier_test <<END
out: 'Word' --> 'Word'
out: 'a Sentence' --> 'a_Sentence'
out: 'trailing Withespace
out: ' --> 'trailing_Withespace'
out: 'with a lot
out: of Whitespace' --> 'with_a_lot_of_Whitespace'
out: 'with"much \(punctuation\)\[\]!' --> 'withmuch_\(punctuation\)'
out: '§&Ω%€ leading garbage' --> 'leading_garbage'
out: 'mixed Ω garbage' --> 'mixed_garbage'
out: 'Bääääh!!' --> 'Bh'
out: '§&Ω%€' --> ''
END
TEST "SingletonSubclass_test" SingletonSubclass_test 13 <<END
out: using the Singleton should create TargetObj\(13\)...
out: ctor TargetObj\(13\) successful
out: calling a non-static method on the Singleton-Implementation
out: .....TargetObj\(13\): data="\*\*\*\*\*\*\*\*\*\*\*\*\*", array\[13\]=\{0,1,2,3,4,5,6,7,8,9,10,11,12,\}
out: dtor ~TargetObj\(13\) successful
END
TEST "SingletonTestMock_test" SingletonTestMock_test <<END
out: TestSingletonO::doIt\(\) call=1
out: TestSingletonO::doIt\(\) call=2
out: Mock_1::doIt\(\) call=1
out: Mock_1::doIt\(\) call=2
out: Mock_1::doIt\(\) call=3
out: Mock_1::doIt\(\) call=4
out: Mock_1::doIt\(\) call=5
out: Mock_2::doIt\(\) call=1
out: TestSingletonO::doIt\(\) call=3
END
TEST "ScopedHolder_test" ScopedHolder_test <<END
out: checking ScopedHolder<Dummy>...
out: checking ScopedPtrHolder<Dummy>...
END
TEST "ScopedHolderTransfer_test" ScopedHolderTransfer_test <<END
out: checking ScopedHolder<Dummy>...
out: \.$
out: \.\.install one element at index\[0\]
out: ^\.$
out: \.\.\*\*\* resize table to 16 elements
out: ^\.$
out: ^\.throw some exceptions...
out: checking ScopedPtrHolder<Dummy>...
out: ^\.$
out: ..install one element at index\[0\]
out: ^\.$
out: ..\*\*\* resize table to 16 elements
out: ^\.$
out: ^\.throw some exceptions...
END
TEST "ScopedPtrVect_test" ScopedPtrVect_test <<END
return: 0
END
TEST "Singleton_test" Singleton_test 23 <<END
out: testing TargetObj\(23\) as Singleton\(statically allocated\)
out: ctor TargetObj\(23\) successful
out: calling a non-static method on the Singleton instance
out: .....TargetObj\(23\): data="\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*", array\[23\]=\{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,\}
out: testing TargetObj\(24\) as Singleton\(heap allocated\)
out: ctor TargetObj\(24\) successful
out: calling a non-static method on the Singleton instance
out: .....TargetObj\(24\): data="\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*", array\[24\]=\{0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,\}
out: dtor ~TargetObj\(23\) successful
out: dtor ~TargetObj\(24\) successful
END
PLANNED "StreamTypeBasics_test" StreamTypeBasics_test <<END
END
PLANNED "StreamTypeLifecycle_test" StreamTypeLifecycle_test <<END
END
TEST "Multithread Locking by Monitor" SyncLocking_test <<END
return: 0
END
TEST "Multithread Locking whole class" SyncClasslock_test <<END
return: 0
END
TEST "Wait/Notify on Object Monitor" SyncWaiting_test <<END
return: 0
END
TEST "Create 20 Threads passing context" ThreadWrapper_test <<END
return: 0
END
TEST "Waiting on Thread termination" ThreadWrapperJoin_test <<END
return: 0
END
TEST "Starting and stopping subsystems" SubsystemRunner_test <<END
out: -----singleSubsys_complete_cycle-----
out: -----singleSubsys_start_failure-----
out: -----singleSubsys_emegency_exit-----
out: -----dependentSubsys_complete_cycle-----
out: -----dependentSubsys_start_failure-----
return: 0
END
TEST "Time Wrapper" TimeWrapper_test <<END
return: 0
END
TEST "Test support functions" TestHelper_test <<END
out: Displaying types and sizes....
out: sizeof..theUniverse.+ = 42
out: sizeof..just a char.+ = 1
out: sizeof.+lib.+test.+test.+Murpf.+ = 1
out: sizeof.+lib.+test.+test.+Wrmrmpft.+ = 2
out: sizeof.+lib.+test.+test.+Wrmrmpft.+ = 3
out: sizeof.+lib.+test.+test.+Wrmrmpft.+Murpf.+ = 1
END
TEST "TestOption_test" TestOption_test <<END
out: Testing invocation with cmdline: ...
out: --> Testgroup=ALL
out: --> Test-ID =--missing--
out: --> remaining=
out: Testing invocation with cmdline: --help...
out: --> Testgroup=ALL
out: --> Test-ID =--missing--
out: --> remaining=
out: Testing invocation with cmdline: --group TestGroupID...
out: --> Testgroup=TestGroupID
out: --> Test-ID =--missing--
out: --> remaining=
out: Testing invocation with cmdline: SingleTestID...
out: --> Testgroup=ALL
out: --> Test-ID =SingleTestID
out: --> remaining=SingleTestID
out: Testing invocation with cmdline: SingleTestID --group TestGroupID...
out: --> Testgroup=TestGroupID
out: --> Test-ID =SingleTestID
out: --> remaining=SingleTestID
out: Testing invocation with cmdline: --group TestGroupID SingleTestID ...
out: --> Testgroup=TestGroupID
out: --> Test-ID =SingleTestID
out: --> remaining=SingleTestID
out: Testing invocation with cmdline: --group TestGroupID SingleTestID spam eggs...
out: --> Testgroup=TestGroupID
out: --> Test-ID =SingleTestID
out: --> remaining=SingleTestID spam eggs
out: Testing invocation with cmdline: SingleTestID spam --group TestGroupID --eggs...
out: --> Testgroup=TestGroupID
out: --> Test-ID =SingleTestID
out: --> remaining=SingleTestID spam --eggs
END
TEST "TypeList_test" TypeList_test <<END
out: - 1 -- 2 -- 3 -- 5 -- 8 -- 13 -- The End -
out: ..Size of = 1
return: 0
END
TEST "TypeListGenerator_test" TypeListGenerator_test <<END
out: ctor DoIt<Block<13> >
out: ctor DoIt<Block< 8> >
out: ctor DoIt<Block< 5> >
out: ctor DoIt<Block< 3> >
out: ctor DoIt<Block< 2> >
out: ctor DoIt<Block< 1> >
out: Block< 2>::eat\(..\)
out: Block< 5>::eat\(..\)
out: Block<13>::eat\(..\)
out: gulp!
out: dtor DoIt<Block< 1> >
out: dtor DoIt<Block< 2> >
out: dtor DoIt<Block< 3> >
out: dtor DoIt<Block< 5> >
out: dtor DoIt<Block< 8> >
out: dtor DoIt<Block<13> >
return: 0
END
TEST "TypeListManipl_test" TypeListManipl_test <<END
out: List1 :-<1>-<2>-<3>-
out: List2 :-<5>-<6>-<7>-
out: Added2 :-<3>-<4>-<5>-
out: Append1 :-
out: Append2 :-<11>-<22>-
out: Append3 :-<111>-
out: Append4 :-<222>-
out: Append5 :-<1>-<2>-<3>-
out: Append6 :-<5>-<6>-<7>-
out: Append7 :-<111>-<5>-<6>-<7>-
out: Append8 :-<1>-<2>-<3>-<222>-
out: Append9 :-<1>-<2>-<3>-<5>-<6>-<7>-
out: FilterEven :-<2>-<6>-
out: Prefix1 :
out: \+---<11>-<22>-\+-
out: Prefix2 :
out: \+---<101>-<1>-\+
out: \+---<101>-<2>-\+
out: \+---<101>-<3>-\+-
out: Prefix3 :
out: \+---<1>-\+
out: \+---<2>-\+
out: \+---<3>-\+-
out: Prefix4 :
out: \+---<111>-<1>-<2>-<3>-\+
out: \+---<111>-<0>-\+
out: \+---<111>-<5>-<6>-<7>-\+-
out: Prefix5 :
out: \+---<1>-<2>-<3>-<5>-\+
out: \+---<1>-<2>-<3>-<6>-\+
out: \+---<1>-<2>-<3>-<7>-\+-
out: Prefix6 :
out: \+---<1>-<2>-<3>-<1>-<2>-<3>-\+
out: \+---<1>-<2>-<3>-<0>-\+
out: \+---<1>-<2>-<3>-<5>-<6>-<7>-\+-
out: Dist1 :
out: \+---<11>-<1>-\+
out: \+---<11>-<2>-\+
out: \+---<11>-<3>-\+-
out: Dist2 :
out: \+---<11>-<0>-\+
out: \+---<22>-<0>-\+
out: \+---<33>-<0>-\+-
out: Dist3 :
out: \+---<11>-<1>-\+
out: \+---<11>-<2>-\+
out: \+---<11>-<3>-\+
out: \+---<22>-<1>-\+
out: \+---<22>-<2>-\+
out: \+---<22>-<3>-\+
out: \+---<33>-<1>-\+
out: \+---<33>-<2>-\+
out: \+---<33>-<3>-\+-
out: Dist4 :
out: \+---<11>-<1>-<2>-<3>-\+
out: \+---<11>-<5>-<6>-<7>-\+
out: \+---<22>-<1>-<2>-<3>-\+
out: \+---<22>-<5>-<6>-<7>-\+
out: \+---<33>-<1>-<2>-<3>-\+
out: \+---<33>-<5>-<6>-<7>-\+-
out: Down :-<11>-<10>-<9>-<8>-<7>-<6>-<5>-<4>-<3>-<2>-<1>-<0>-
out: Combi :
out: \+---<1>-<2>-<3>-<·>-\+
out: \+---<1>-<2>-<2>-<·>-\+
out: \+---<1>-<2>-<1>-<·>-\+
out: \+---<1>-<2>-<0>-<·>-\+
out: \+---<1>-<1>-<3>-<·>-\+
out: \+---<1>-<1>-<2>-<·>-\+
out: \+---<1>-<1>-<1>-<·>-\+
out: \+---<1>-<1>-<0>-<·>-\+
out: \+---<1>-<0>-<3>-<·>-\+
out: \+---<1>-<0>-<2>-<·>-\+
out: \+---<1>-<0>-<1>-<·>-\+
out: \+---<1>-<0>-<0>-<·>-\+
out: \+---<0>-<2>-<3>-<·>-\+
out: \+---<0>-<2>-<2>-<·>-\+
out: \+---<0>-<2>-<1>-<·>-\+
out: \+---<0>-<2>-<0>-<·>-\+
out: \+---<0>-<1>-<3>-<·>-\+
out: \+---<0>-<1>-<2>-<·>-\+
out: \+---<0>-<1>-<1>-<·>-\+
out: \+---<0>-<1>-<0>-<·>-\+
out: \+---<0>-<0>-<3>-<·>-\+
out: \+---<0>-<0>-<2>-<·>-\+
out: \+---<0>-<0>-<1>-<·>-\+
out: \+---<0>-<0>-<0>-<·>-\+-
out: OnOff :
out: \+---<1>-<2>-<3>-<·>-\+
out: \+---<1>-<2>-<·>-\+
out: \+---<1>-<3>-<·>-\+
out: \+---<1>-<·>-\+
out: \+---<2>-<3>-<·>-\+
out: \+---<2>-<·>-\+
out: \+---<3>-<·>-\+
out: \+---<·>-\+-
return: 0
END
PLANNED "TypeTuple_test" TypeTuple_test <<END
return: 0
END
TEST "VectorTransfer_test" VectorTransfer_test <<END
return: 0
END
TEST "VisitingTool_test" VisitingTool_test <<END
out: === Babbler meets Boss and BigBoss ===
out: Hello Boss, nice to meet you...
out: Hello Big Boss, nice to meet you...
out: === Babbler meets HomoSapiens and Leader ===
out: Hello Boss, nice to meet you...
return: 0
END
TEST "VisitingToolExtended_test" VisitingToolExtended_test <<END
out: === Babbler meets Boss and BigBoss ===
out: Hello Boss, nice to meet you...
out: Hello Big Boss, nice to meet you...
out: === Babbler meets HomoSapiens and Leader ===
out: Hello Boss, nice to meet you...
out: === Blatherer meets Leader and Visionary masqueraded as Chief ===
out: we-do-everything-for-YOU!
out: Hello Mr.Future, nice to meet you...
out: === Babbler masqueraded as Tool meets Leader and Visionary masqueraded as HomoSapiens ===
out: Hello Boss, nice to meet you...
out: === Babbler masqueraded as Tool meets Leader and Visionary masqueraded as Leader ===
out: Hello Boss, nice to meet you...
return: 0
END