2014-10-17 21:15:59 +02:00
|
|
|
TESTING "Core Component Test Suite: fundamental concepts and frameworks" ./test-suite --group=common
|
2014-10-17 20:02:25 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST "basic application state" Appconfig_test <<END
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST "Advice collaboration (basics)" AdviceBasics_test <<END
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
Library: allow to check if Advice was explicitly given
For context: The »Advice System« was coined a long time ago, in 2010,
based on the vague impression that it might be useful for that kind of application
we are about to build here. And, as can be expected, none of the usage situations
envisioned at that time was brought to bear. Non the less, the facility came in
handy at times, precisely because it is cross-cutting and allows to pass
information without imposing any systematic relationship between the
communication partners.
And now we've got again such a situation.
The global style manager in the UI has to build a virtual CSS path,
which is needed by drawing code somewhere deep down, and we absolutely
do not want to pass a reference to the style manager over 20 recursive calls.
The alternatives would be
(1) to turn the style manager into a public service
(2) to have a static access function somewhere
(3) to use a global variable.
For rationale, (1) would be overblown, because we do not actually request
a service to do work for us, rather we need some global piece of information.
(2) would be equivalent to (1), just more confusing. And (3) is basically
what the Advice system does, with the added benefit of a clear-cut service
access point and a well defined lifecycle.
This changeset adds the ability to check if actual Advice has been published,
which allows us to invoke the (possibly expensive) GTK path building and
style context building code only once.
2019-07-13 17:00:23 +02:00
|
|
|
TEST "Advice constellations" AdviceSituations_test <<END
|
2014-10-17 20:02:25 +02:00
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PLANNED "Advice variants and configurations" AdviceConfiguration_test <<END
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PLANNED "Advice multiplicity and concurrency" AdviceMultiplicity_test <<END
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST "Advice binding patterns" AdviceBindingPattern_test <<END
|
|
|
|
|
out-lit: --->Binding[]
|
|
|
|
|
out-lit: aSymbol --->Binding[aSymbol/0()]
|
|
|
|
|
out-lit: a.compound_Symbol-with-various.parts --->Binding[a.compound_Symbol-with-various.parts/0()]
|
|
|
|
|
out-lit: trailing Garbage allowed. ☢☢ eat ☠☠☠ atomic ☠☠☠ waste ☢☢ --->Binding[Garbage/0(), allowed/0(), trailing/0()]
|
|
|
|
|
out-lit: a, list , of ,symbols. --->Binding[a/0(), list/0(), of/0(), symbols/0()]
|
|
|
|
|
out-lit: nullary(). --->Binding[nullary/0()]
|
|
|
|
|
out-lit: nullary( ) --->Binding[nullary/0()]
|
|
|
|
|
out-lit: nullary . --->Binding[nullary/0()]
|
|
|
|
|
out-lit: predicate( with-argument ) --->Binding[predicate/1(with-argument)]
|
2016-01-10 12:25:45 +01:00
|
|
|
out-lit: Binding[advice.type.dummyAdvice/0(), one/0(), three/1(four), two/0()]
|
2014-10-17 20:02:25 +02:00
|
|
|
out-lit: b0==Binding[]
|
|
|
|
|
out-lit: b1==Binding[cat1/0(), cat2/0()]
|
|
|
|
|
out-lit: b2==Binding[cat1/0(), cat2/0()]
|
2016-01-10 12:25:45 +01:00
|
|
|
out-lit: b2==Binding[advice.type.time/0(), cat1/0(), cat2/0(), cat3/1(zzz)]
|
2014-10-17 20:02:25 +02:00
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST "Advice index implementation" AdviceIndex_test <<END
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
2018-03-31 17:12:45 +02:00
|
|
|
TEST "Dependency Singleton" Singleton_test 23 <<END
|
|
|
|
|
out-lit: testing TargetObj(23) as Singleton
|
|
|
|
|
out-lit: ctor TargetObj(23) successful
|
|
|
|
|
out-lit: calling a non-static method on the Singleton instance
|
|
|
|
|
out-lit: .....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-lit: dtor ~TargetObj(23) successful
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST "Dependency Singleton-Subclass" SingletonSubclass_test 13 <<END
|
|
|
|
|
out-lit: using the Singleton should create TargetObj(13)...
|
|
|
|
|
out-lit: ctor TargetObj(13) successful
|
|
|
|
|
out-lit: calling a non-static method on the Singleton-Implementation
|
|
|
|
|
out-lit: .....TargetObj(13): data="*************", array[13]={0,1,2,3,4,5,6,7,8,9,10,11,12,}
|
|
|
|
|
out-lit: dtor ~TargetObj(13) successful
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST "Dependency Mock Test Support" SingletonTestMock_test <<END
|
|
|
|
|
out-lit: TestSingO::doIt() call=1
|
|
|
|
|
out-lit: TestSingO::doIt() call=2
|
|
|
|
|
out-lit: Mock_1::doIt() call=1
|
|
|
|
|
out-lit: Mock_1::doIt() call=2
|
|
|
|
|
out-lit: Mock_1::doIt() call=3
|
|
|
|
|
out-lit: Mock_1::doIt() call=4
|
|
|
|
|
out-lit: Mock_1::doIt() call=5
|
|
|
|
|
out: Mock_.::doIt\(\) call=1
|
|
|
|
|
out-lit: TestSingO::doIt() call=3
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST "Dependency Injection flavours" DependencyFactory_test <<END
|
|
|
|
|
out-lit: ctor TargetObj(0) successful
|
|
|
|
|
out-lit: ctor TargetObj(1) successful
|
|
|
|
|
out-lit: ctor TargetObj(2) successful
|
|
|
|
|
out-lit: ctor TargetObj(3) successful
|
|
|
|
|
out-lit: dtor ~TargetObj(3) successful
|
|
|
|
|
out-lit: ctor TargetObj(4) successful
|
|
|
|
|
out-lit: dtor ~TargetObj(4) successful
|
|
|
|
|
out-lit: dtor ~TargetObj(2) successful
|
|
|
|
|
out-lit: dtor ~TargetObj(1) successful
|
|
|
|
|
out-lit: dtor ~TargetObj(0) successful
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST "Dependency Injection configuration" DependencyConfiguration_test <<END
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
2017-08-07 01:00:36 +02:00
|
|
|
TEST "Dispatch functors into other threads" CallQueue_test <<END
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
2018-03-31 17:12:45 +02:00
|
|
|
TEST "Lifecycle events and hooks" LifeCycle_test <<END
|
2014-10-17 20:02:25 +02:00
|
|
|
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 "Lumiera Time Wrapper" TimeBasics_test <<END
|
2025-05-27 20:43:52 +02:00
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
2025-05-27 23:39:36 +02:00
|
|
|
TEST "NTSC drop-frame calculation" TimeDropframe_test <<END
|
2014-10-17 20:02:25 +02:00
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST "Times and time intervals" TimeValue_test <<END
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
PLANNED "Time Quantisation" TimeQuantisation_test <<END
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST "Changing time specifications" TimeMutation_test <<END
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST "Life changing time specifications with feedback" TimeControl_test <<END
|
2016-01-10 12:25:45 +01:00
|
|
|
out-lit: Test-Case. Target=Duration <--feed--- TimeValue
|
|
|
|
|
out-lit: Test-Case. Target=Duration <--feed--- Time
|
|
|
|
|
out-lit: Test-Case. Target=Duration <--feed--- Duration
|
|
|
|
|
out-lit: Test-Case. Target=Duration <--feed--- TimeSpan
|
|
|
|
|
out-lit: Test-Case. Target=Duration <--feed--- QuTime
|
|
|
|
|
out-lit: Test-Case. Target=TimeSpan <--feed--- TimeValue
|
|
|
|
|
out-lit: Test-Case. Target=TimeSpan <--feed--- Time
|
|
|
|
|
out-lit: Test-Case. Target=TimeSpan <--feed--- Duration
|
|
|
|
|
out-lit: Test-Case. Target=TimeSpan <--feed--- TimeSpan
|
|
|
|
|
out-lit: Test-Case. Target=TimeSpan <--feed--- QuTime
|
|
|
|
|
out-lit: Test-Case. Target=QuTime <--feed--- TimeValue
|
|
|
|
|
out-lit: Test-Case. Target=QuTime <--feed--- Time
|
|
|
|
|
out-lit: Test-Case. Target=QuTime <--feed--- Duration
|
|
|
|
|
out-lit: Test-Case. Target=QuTime <--feed--- TimeSpan
|
|
|
|
|
out-lit: Test-Case. Target=QuTime <--feed--- QuTime
|
2014-10-17 20:02:25 +02:00
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST "Quantiser API basics" QuantiserBasics_test <<END
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
2022-10-30 23:12:34 +01:00
|
|
|
TEST "Support for specific timecode formats" FormatSupport_test <<END
|
2014-10-17 20:02:25 +02:00
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST "Time formats and timecodes" TimeFormats_test <<END
|
|
|
|
|
out: Framecount=".+#" time = .+:..:..
|
|
|
|
|
out: SMPTE=".+:..:..:.." time = .+:..:..
|
|
|
|
|
out-lit: ----SMPTE-----
|
|
|
|
|
out-lit: SMPTE=" 5:42:23:13" time = 5:42:23.520
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
TEST "Parsing time values" TimeParsing_test <<END
|
2016-01-28 22:30:24 +01:00
|
|
|
return: 0
|
2014-10-17 20:02:25 +02:00
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
2018-10-01 05:51:21 +02:00
|
|
|
TEST "Zombie tripwire" ZombieCheck_test <<END
|
|
|
|
|
return: 0
|
|
|
|
|
END
|
|
|
|
|
|
|
|
|
|
|