Scheduler: draft scenario for Layer-2 integration test
Idea: re-use the scenario and instrumentation from SchedulerActivity_test::scenario_RenderJob()
This commit is contained in:
parent
ee09a2eff2
commit
c2ddaed28e
2 changed files with 130 additions and 17 deletions
|
|
@ -91,12 +91,12 @@ namespace test {
|
|||
virtual void
|
||||
run (Arg)
|
||||
{
|
||||
demonstrateSimpleUsage();
|
||||
verify_GroomingToken();
|
||||
torture_GroomingToken();
|
||||
verify_DispatchDecision();
|
||||
verify_findWork();
|
||||
verify_postDispatch();
|
||||
// demonstrateSimpleUsage();
|
||||
// verify_GroomingToken();
|
||||
// torture_GroomingToken();
|
||||
// verify_DispatchDecision();
|
||||
// verify_findWork();
|
||||
// verify_postDispatch();
|
||||
integratedWorkCycle();
|
||||
}
|
||||
|
||||
|
|
@ -412,13 +412,51 @@ namespace test {
|
|||
|
||||
|
||||
/** @test TODO build the integrated sequence of worker activation
|
||||
* - use the Render-Job scenario from SchedulerActivity_test::scenario_RenderJob()
|
||||
* - use similar instrumentation to trace Activities
|
||||
* @todo WIP 10/23 🔁 define ⟶ implement
|
||||
*/
|
||||
void
|
||||
integratedWorkCycle()
|
||||
{
|
||||
UNIMPLEMENTED ("integratedWorkCycle");
|
||||
// cout << detector.showLog()<<endl; // HINT: use this for investigation...
|
||||
Time nominal{7,7};
|
||||
|
||||
Time start{0,1};
|
||||
Time dead{0,10};
|
||||
|
||||
ActivityDetector detector;
|
||||
Job testJob{detector.buildMockJob("testJob", nominal, 12345)};
|
||||
|
||||
BlockFlowAlloc bFlow;
|
||||
ActivityLang activityLang{bFlow};
|
||||
|
||||
// Build the Activity-Term for a simple calculation job...
|
||||
Activity& anchor = activityLang.buildCalculationJob (testJob, start,dead)
|
||||
.post(); // retrieve the entrance point to the chain
|
||||
|
||||
// insert instrumentation to trace activation
|
||||
detector.watchGate (anchor.next, "theGate");
|
||||
|
||||
|
||||
SchedulerInvocation queue;
|
||||
SchedulerCommutator sched;
|
||||
|
||||
Time now = detector.executionCtx.getSchedTime();
|
||||
Time past {Time::ZERO};
|
||||
|
||||
// CHECK (activity::PASS == ActivityLang::dispatchChain (anchor, detector.executionCtx));
|
||||
|
||||
sched.postDispatch (&anchor, now, detector.executionCtx, queue);
|
||||
//////////////////////////////////////////////////////////////////////TODO advance "now" time
|
||||
Activity* act = sched.findWork(queue,now);
|
||||
sched.postDispatch (act, now, detector.executionCtx, queue);
|
||||
|
||||
// CHECK (detector.verifyInvocation("theGate").arg("5.105 ⧐ Act(GATE")
|
||||
// .beforeInvocation("after-theGate").arg("⧐ Act(WORKSTART")
|
||||
// .beforeInvocation("CTX-work").arg("5.155","")
|
||||
// .beforeInvocation("testJob") .arg("7.007",12345)
|
||||
// .beforeInvocation("CTX-done").arg("5.355",""));
|
||||
cout << detector.showLog()<<endl; // HINT: use this for investigation...
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -86187,15 +86187,23 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697473097086" ID="ID_236233579" MODIFIED="1697493162215" TEXT="Aufgaben">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697483439491" ID="ID_20743819" MODIFIED="1697483452170" TEXT="die Bestandteile des API abdecken">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1697483458376" ID="ID_1335346824" MODIFIED="1697483469019" TEXT="das GroomingToken"/>
|
||||
<node CREATED="1697483469919" ID="ID_1121885008" MODIFIED="1697571744407" TEXT="Logik für Queue-Zugriff"/>
|
||||
<node CREATED="1697571773963" ID="ID_1386234233" MODIFIED="1697571786371" TEXT="Ausführen eine Activity-Kette"/>
|
||||
<node CREATED="1697571745624" ID="ID_599597531" MODIFIED="1697571773200" TEXT="Entscheidung ob direkt ausgeführt wird"/>
|
||||
<node COLOR="#338800" CREATED="1697483439491" ID="ID_20743819" MODIFIED="1697643526449" TEXT="die Bestandteile des API abdecken">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#338800" CREATED="1697483458376" ID="ID_1335346824" MODIFIED="1697643531581" TEXT="das GroomingToken">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697473111557" ID="ID_750298563" MODIFIED="1697484608763" TEXT="Bestandteile des Work-Funktors direkt verbinden">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node COLOR="#338800" CREATED="1697483469919" ID="ID_1121885008" MODIFIED="1697643531582" TEXT="Logik für Queue-Zugriff">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1697571773963" ID="ID_1386234233" MODIFIED="1697643531582" TEXT="Ausführen eine Activity-Kette">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1697571745624" ID="ID_599597531" MODIFIED="1697643531582" TEXT="Entscheidung ob direkt ausgeführt wird">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1697473111557" ID="ID_750298563" MODIFIED="1697643535869" TEXT="Bestandteile des Work-Funktors direkt verbinden">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1697484212735" ID="ID_853921255" MODIFIED="1697484238920" TEXT="Maßgabe: korrekte Verschaltung der ExecCtx-λ">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
|
|
@ -86377,9 +86385,76 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697560591659" ID="ID_1581648425" MODIFIED="1697560620823" TEXT="integratedWorkCycle">
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1697560591659" ID="ID_1581648425" MODIFIED="1697645317998" TEXT="integratedWorkCycle">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node CREATED="1697643554969" ID="ID_136268123" MODIFIED="1697643896607" TEXT="Maßgabe">
|
||||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1697643566840" ID="ID_1881707348" MODIFIED="1697643573858" TEXT="Perspektive ist Layer-2"/>
|
||||
<node CREATED="1697643574446" ID="ID_876825377" MODIFIED="1697643596396">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
aber <i>das ganze Geschehen </i>einmal durchspielen
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
<node CREATED="1697643597068" ID="ID_336540433" MODIFIED="1697643621773" TEXT="...vom Planen eines Jobs bis zur Ausführung"/>
|
||||
</node>
|
||||
<node CREATED="1697643626311" ID="ID_1649121610" MODIFIED="1697643898765" TEXT="Instrumentierung">
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1697643634391" ID="ID_1274469319" MODIFIED="1697643648088" TEXT="BlockFlow-Allokator direkt verwenden"/>
|
||||
<node CREATED="1697643658251" ID="ID_1960837678" MODIFIED="1697643676141" TEXT="das Thema »Zeit« wird hier ausgeblendet">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node CREATED="1697643680641" ID="ID_158566307" MODIFIED="1697643705314" TEXT="ActivityDetektor zur Verfolgung der Abläufe"/>
|
||||
<node CREATED="1697643707245" ID="ID_33409746" MODIFIED="1697643729333" TEXT="aber: bereits funktionale Vertrahtung wie im Scheduler">
|
||||
<node CREATED="1697643768189" ID="ID_544635778" MODIFIED="1697643841143" TEXT="λ-post ⟶ postDispatch()"/>
|
||||
<node CREATED="1697643768189" ID="ID_1175399919" MODIFIED="1697643850309" TEXT="λ-work ⟶ dropGroomingToken()"/>
|
||||
</node>
|
||||
<node CREATED="1697643873588" ID="ID_1914496998" MODIFIED="1697644383309">
|
||||
<richcontent TYPE="NODE"><html>
|
||||
<head>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<p>
|
||||
Activity-Term präparieren wie im <font face="Monospaced" color="#333333">SchedulerActivity_test::</font><font face="Monospaced" color="#020080"><b>scenario_RenderJob</b></font><font face="Monospaced" color="#333333">()</font>
|
||||
</p>
|
||||
</body>
|
||||
</html>
|
||||
</richcontent>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1697645187303" ID="ID_225836126" MODIFIED="1697645351457" TEXT="Verifikation">
|
||||
<icon BUILTIN="pencil"/>
|
||||
<node COLOR="#338800" CREATED="1697645198038" ID="ID_684515169" MODIFIED="1697645209458" TEXT="Szenario in Ursprungs-Form läuft durch wie erwartet">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697645210335" ID="ID_1557850384" MODIFIED="1697645242464" TEXT="aktuelle Scheduler-Zeit manipulierbar machen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697645222818" ID="ID_1215667724" MODIFIED="1697645242464" TEXT="innere Verdrahtungen im ExecutionCtx einbauen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1697645245663" ID="ID_685915287" MODIFIED="1697645308480" TEXT="prüfen: geht erst mal in die Queue">
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1697645256903" ID="ID_230126414" MODIFIED="1697645263922" TEXT="Zeit auf später weiterschalten">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1697645265733" ID="ID_1757939624" MODIFIED="1697645308480" TEXT="prüfen: bekomme den gebauten Term wieder zurück">
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1697645289665" ID="ID_1827770478" MODIFIED="1697645308481" TEXT="prüfen: Ausführung läuft komplett durch">
|
||||
<icon BUILTIN="flag-pink"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1688336835085" ID="ID_1753236898" MODIFIED="1688337246573" TEXT="SchedulerUsage_test">
|
||||
|
|
|
|||
Loading…
Reference in a new issue