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...
out: This is how the world ends...
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 "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


PLANNED "Waiting on Thread termination" ThreadWrapperJoin_test  <<END
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.+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


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: 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


