Block-Flow: define next steps to construct
...continue to proceed test-driven ...scheduler internals turn out to be intricate and cohesive, and thus the only hope is to adhere to strict testing discipline
This commit is contained in:
parent
18904e5b58
commit
180c6b8d84
7 changed files with 625 additions and 18 deletions
|
|
@ -225,9 +225,45 @@ namespace gear {
|
|||
{
|
||||
UNIMPLEMENTED ("traverse oldest Epochs and discard obsoleted");
|
||||
}
|
||||
|
||||
private:
|
||||
///////////////////
|
||||
|
||||
/// „backdoor“ to watch internals from tests
|
||||
friend class FlowDiagnostic;
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* ===== Test / Diagnostic ===== */
|
||||
|
||||
class FlowDiagnostic
|
||||
{
|
||||
BlockFlow& flow_;
|
||||
|
||||
public:
|
||||
FlowDiagnostic(BlockFlow& theFlow)
|
||||
: flow_{theFlow}
|
||||
{ }
|
||||
|
||||
// size_t first() { return exFam_.start_; }
|
||||
// size_t last() { return exFam_.after_; }
|
||||
size_t cntEpochs() { return watch(flow_.alloc_).active(); }
|
||||
size_t poolSize() { return watch(flow_.alloc_).size(); }
|
||||
};
|
||||
|
||||
inline FlowDiagnostic
|
||||
watch (BlockFlow& theFlow)
|
||||
{
|
||||
return FlowDiagnostic{theFlow};
|
||||
}
|
||||
|
||||
|
||||
|
||||
}} // namespace vault::gear
|
||||
#endif /*SRC_VAULT_GEAR_BLOCK_FLOW_H_*/
|
||||
|
|
|
|||
|
|
@ -2,6 +2,12 @@ TESTING "Component Test Suite: Scheduler" ./test-suite --group=engine
|
|||
|
||||
|
||||
|
||||
PLANNED "Activity observation framework" ActivityDetector_test <<END
|
||||
return: 0
|
||||
END
|
||||
|
||||
|
||||
|
||||
PLANNED "BlockFlow memory management scheme" BlockFlow_test <<END
|
||||
return: 0
|
||||
END
|
||||
|
|
|
|||
120
tests/vault/gear/activity-detector-test.cpp
Normal file
120
tests/vault/gear/activity-detector-test.cpp
Normal file
|
|
@ -0,0 +1,120 @@
|
|||
/*
|
||||
ActivityDetector(Test) - verify diagnostic setup to watch scheduler activities
|
||||
|
||||
Copyright (C) Lumiera.org
|
||||
2023, Hermann Vosseler <Ichthyostega@web.de>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
* *****************************************************/
|
||||
|
||||
/** @file activity-detector-test.cpp
|
||||
** unit test \ref ActivityDetector_test
|
||||
*/
|
||||
|
||||
|
||||
#include "lib/test/run.hpp"
|
||||
#include "activity-detector.hpp"
|
||||
//#include "lib/time/timevalue.hpp"
|
||||
//#include "lib/format-cout.hpp"
|
||||
//#include "lib/util.hpp"
|
||||
|
||||
//#include <utility>
|
||||
|
||||
//using test::Test;
|
||||
//using lib::time::Time;
|
||||
//using lib::time::FSecs;
|
||||
//using std::move;
|
||||
//using util::isSameObject;
|
||||
|
||||
|
||||
namespace vault{
|
||||
namespace gear {
|
||||
namespace test {
|
||||
|
||||
// using lib::time::FrameRate;
|
||||
// using lib::time::Offset;
|
||||
// using lib::time::Time;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*****************************************************************//**
|
||||
* @test verify instrumentation setup to watch scheduler Activities.
|
||||
* @see SchedulerActivity_test
|
||||
* @see SchedulerUsage_test
|
||||
*/
|
||||
class ActivityDetector_test : public Test
|
||||
{
|
||||
|
||||
virtual void
|
||||
run (Arg)
|
||||
{
|
||||
simpleUsage();
|
||||
|
||||
verifyDummyFuncttor();
|
||||
detect_activation();
|
||||
detect_gate();
|
||||
}
|
||||
|
||||
|
||||
/** @test TODO demonstrate a simple usage scenario
|
||||
* @todo WIP 7/23 ⟶ define ⟶ implement
|
||||
*/
|
||||
void
|
||||
simpleUsage()
|
||||
{
|
||||
ActivityDetector spectre;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** @test TODO diagnostic setup to detect a JobFunctor activation
|
||||
* @todo WIP 7/23 ⟶ define ⟶ implement
|
||||
*/
|
||||
void
|
||||
verifyDummyFuncttor()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** @test TODO diagnostic setup to detect Activity activation and propagation
|
||||
* @todo WIP 7/23 ⟶ define ⟶ implement
|
||||
*/
|
||||
void
|
||||
detect_activation()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** @test TODO diagnostic setup to watch Activity::GATE activation
|
||||
* @todo WIP 7/23 ⟶ define ⟶ implement
|
||||
*/
|
||||
void
|
||||
detect_gate()
|
||||
{
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/** Register this test class... */
|
||||
LAUNCHER (ActivityDetector_test, "unit engine");
|
||||
|
||||
|
||||
|
||||
}}} // namespace vault::gear::test
|
||||
109
tests/vault/gear/activity-detector.hpp
Normal file
109
tests/vault/gear/activity-detector.hpp
Normal file
|
|
@ -0,0 +1,109 @@
|
|||
/*
|
||||
ACTIVITY-DETECTOR.hpp - test scaffolding to observe activities within the scheduler
|
||||
|
||||
Copyright (C) Lumiera.org
|
||||
2023, Hermann Vosseler <Ichthyostega@web.de>
|
||||
|
||||
This program is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; if not, write to the Free Software
|
||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
|
||||
*/
|
||||
|
||||
/** @file activity-detector.hpp
|
||||
** Diagnostic setup to instrument and observe \ref Activity activations.
|
||||
** The [Scheduler](\ref scheduler.hpp) powering the Lumiera render engine
|
||||
** is implemented in terms of Activities, which can be time-bound and depend
|
||||
** on each other. For performance reasons, these _operational atoms_ must be
|
||||
** implemented as a tightly knit network of lightweight POD records without
|
||||
** much indirection. This setup poses a challenge for unit tests and similar
|
||||
** white box testing, due to the lack of a managed platform and any further
|
||||
** means of indirection and extension. As a remedy, a set of preconfigured
|
||||
** _detector Activity records_ is provided, which drop off event log messages
|
||||
** by side effect. These detector probes can be wired in as decorators into
|
||||
** a otherwise valid Activity-Term, allowing to watch and verify patterns
|
||||
** of invocation -- which might even happen concurrently.
|
||||
**
|
||||
** @todo WIP-WIP-WIP 7/2023 right now this is a rather immature attempt
|
||||
** towards a scaffolding to propel the build-up of the scheduler.
|
||||
** @see SchedulerActivity_test
|
||||
*/
|
||||
|
||||
|
||||
#ifndef VAULT_GEAR_TEST_ACTIVITY_DETECTOR_H
|
||||
#define VAULT_GEAR_TEST_ACTIVITY_DETECTOR_H
|
||||
|
||||
|
||||
#include "vault/common.hpp"
|
||||
//#include "lib/test/test-helper.hpp"
|
||||
//#include "steam/play/dummy-play-connection.hpp"
|
||||
//#include "steam/fixture/node-graph-attachment.hpp"
|
||||
//#include "steam/fixture/segmentation.hpp"
|
||||
//#include "steam/mobject/model-port.hpp"
|
||||
//#include "steam/engine/dispatcher.hpp"
|
||||
//#include "steam/engine/job-ticket.hpp"
|
||||
//#include "vault/gear/job.h"
|
||||
//#include "vault/real-clock.hpp"
|
||||
//#include "lib/allocator-handle.hpp"
|
||||
//#include "lib/time/timevalue.hpp"
|
||||
//#include "lib/diff/gen-node.hpp"
|
||||
//#include "lib/linked-elements.hpp"
|
||||
//#include "lib/itertools.hpp"
|
||||
//#include "lib/depend.hpp"
|
||||
//#include "lib/util.hpp"
|
||||
|
||||
//#include <tuple>
|
||||
//#include <map>
|
||||
|
||||
|
||||
namespace vault{
|
||||
namespace gear {
|
||||
namespace test {
|
||||
|
||||
// using std::make_tuple;
|
||||
// using lib::diff::GenNode;
|
||||
// using lib::diff::MakeRec;
|
||||
// using lib::time::TimeValue;
|
||||
// using lib::time::Time;
|
||||
// using lib::HashVal;
|
||||
// using util::isnil;
|
||||
// using util::isSameObject;
|
||||
// using fixture::Segmentation;
|
||||
// using vault::RealClock;
|
||||
// using vault::gear::Job;
|
||||
// using vault::gear::JobClosure;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Diagnostic context to record and evaluate activations within the Scheduler.
|
||||
* @todo WIP-WIP-WIP 7/23 a new loopy hope
|
||||
*/
|
||||
class ActivityDetector
|
||||
: util::NonCopyable
|
||||
{
|
||||
void* zombiePoolFactor_;
|
||||
|
||||
public:
|
||||
/* == walking deadline implementation == */
|
||||
|
||||
ActivityDetector()
|
||||
: zombiePoolFactor_{}
|
||||
{ }
|
||||
|
||||
private:
|
||||
};
|
||||
|
||||
|
||||
}}} // namespace vault::gear::test
|
||||
#endif /*VAULT_GEAR_TEST_ACTIVITY_DETECTOR_H*/
|
||||
|
|
@ -64,19 +64,23 @@ namespace test {
|
|||
run (Arg)
|
||||
{
|
||||
simpleUsage();
|
||||
calculateDeadline();
|
||||
setupLalup();
|
||||
verifyAPI();
|
||||
handleEpoch();
|
||||
placeActivity();
|
||||
adjustEpochs();
|
||||
storageFlow();
|
||||
}
|
||||
|
||||
|
||||
/** @test TODO demonstrate a simple usage scenario
|
||||
* @todo WIP 7/23 ⟶ define ⟶ implement
|
||||
*/
|
||||
void
|
||||
simpleUsage()
|
||||
{
|
||||
BlockFlow bFlow;
|
||||
Time deadline = randTime();
|
||||
Activity tick = bFlow.until(deadline).create();
|
||||
Activity& tick = bFlow.until(deadline).create();
|
||||
///////////////////////////////////////////////////////////////////////////////OOO diagnostic function to check allocation
|
||||
|
||||
bFlow.discardBefore (deadline + Time{0,5});
|
||||
|
|
@ -85,19 +89,51 @@ namespace test {
|
|||
|
||||
|
||||
|
||||
/** @test TODO
|
||||
/** @test verify the primary BlockFlow API functions in isolation
|
||||
* @todo WIP 7/23 ⟶ define ⟶ implement
|
||||
*/
|
||||
void
|
||||
calculateDeadline()
|
||||
verifyAPI()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** @test TODO
|
||||
/** @test TODO cover the handling of Epochs
|
||||
* @todo WIP 7/23 ⟶ define ⟶ implement
|
||||
*/
|
||||
void
|
||||
setupLalup()
|
||||
handleEpoch()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** @test TODO place Activity record into storage
|
||||
* @todo WIP 7/23 ⟶ define ⟶ implement
|
||||
*/
|
||||
void
|
||||
placeActivity()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** @test TODO load based regulation of Epoch spacing
|
||||
* @todo WIP 7/23 ⟶ define ⟶ implement
|
||||
*/
|
||||
void
|
||||
adjustEpochs()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** @test TODO maintain progression of epochs.
|
||||
* @todo WIP 7/23 ⟶ define ⟶ implement
|
||||
*/
|
||||
void
|
||||
storageFlow()
|
||||
{
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ using lib::time::FSecs;
|
|||
|
||||
|
||||
namespace vault{
|
||||
namespace gear {
|
||||
namespace gear {
|
||||
namespace test {
|
||||
|
||||
// using lib::time::FrameRate;
|
||||
|
|
@ -63,13 +63,22 @@ namespace test {
|
|||
virtual void
|
||||
run (Arg)
|
||||
{
|
||||
simpleUsage();
|
||||
walkingDeadline();
|
||||
setupLalup();
|
||||
simpleUsage();
|
||||
|
||||
verifyActivity_Invoke();
|
||||
verifyActivity_Notify();
|
||||
verifyActivity_Gate();
|
||||
|
||||
termBuilder();
|
||||
|
||||
scenario_RenderJob();
|
||||
scenario_IOJob();
|
||||
scenario_MetaJob();
|
||||
}
|
||||
|
||||
|
||||
/** @test TODO demonstrate a simple usage scenario
|
||||
* @todo WIP 7/23 ⟶ define ⟶ implement
|
||||
*/
|
||||
void
|
||||
simpleUsage()
|
||||
|
|
@ -84,19 +93,71 @@ namespace test {
|
|||
|
||||
|
||||
|
||||
/** @test TODO
|
||||
/** @test TODO behaviour of Activity::INVOKE
|
||||
* @todo WIP 7/23 ⟶ define ⟶ implement
|
||||
*/
|
||||
void
|
||||
walkingDeadline()
|
||||
verifyActivity_Invoke()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** @test TODO
|
||||
/** @test TODO behaviour of Activity::NOTIFY
|
||||
* @todo WIP 7/23 ⟶ define ⟶ implement
|
||||
*/
|
||||
void
|
||||
setupLalup()
|
||||
verifyActivity_Notify()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** @test TODO behaviour of Activity::GATE
|
||||
* @todo WIP 7/23 ⟶ define ⟶ implement
|
||||
*/
|
||||
void
|
||||
verifyActivity_Gate()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** @test TODO verify the Activity term builder
|
||||
* @todo WIP 7/23 ⟶ define ⟶ implement
|
||||
*/
|
||||
void
|
||||
termBuilder()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** @test TODO usage scenario: Activity graph for a render job
|
||||
* @todo WIP 7/23 ⟶ define ⟶ implement
|
||||
*/
|
||||
void
|
||||
scenario_RenderJob()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** @test TODO usage scenario: Activity graph for an async Job
|
||||
* @todo WIP 7/23 ⟶ define ⟶ implement
|
||||
*/
|
||||
void
|
||||
scenario_IOJob()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
/** @test TODO usage scenario: Activity graph for administrative job
|
||||
* @todo WIP 7/23 ⟶ define ⟶ implement
|
||||
*/
|
||||
void
|
||||
scenario_MetaJob()
|
||||
{
|
||||
}
|
||||
};
|
||||
|
|
|
|||
|
|
@ -78787,9 +78787,84 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1688515094346" ID="ID_1027706144" MODIFIED="1688515110180" TEXT="Epoche finden oder erstellen"/>
|
||||
<node CREATED="1688515126831" ID="ID_1528998679" MODIFIED="1688515184828" TEXT="Epoche aktiv oder obsolet"/>
|
||||
<node CREATED="1689199348011" ID="ID_946314952" MODIFIED="1689199354365" TEXT="Füllstand der Epoche"/>
|
||||
<node CREATED="1689199360284" ID="ID_1490677402" MODIFIED="1689199371202" TEXT="Deadline abfragen"/>
|
||||
<node CREATED="1689199372430" ID="ID_1393603020" MODIFIED="1689199377650" TEXT="EpochGate"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1689199381509" HGAP="-9" ID="ID_1151653123" MODIFIED="1689200619525" TEXT="Testfälle" VSHIFT="4">
|
||||
<icon BUILTIN="list"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689199958807" ID="ID_1109817733" MODIFIED="1689199964871" TEXT="verifyAPI">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689199390484" ID="ID_679990341" MODIFIED="1689199615217" TEXT="handleEpoch">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689202254231" ID="ID_322073846" MODIFIED="1689202266310" TEXT="Eigenschaften einer neu erstellten Epoche">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689202440952" ID="ID_1233864251" MODIFIED="1689202450565" TEXT="EpochGate-Verhalten">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689202329260" ID="ID_1491199644" MODIFIED="1689202334829" TEXT="Belegen eines Slot">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689202342763" ID="ID_1522127566" MODIFIED="1689202365416" TEXT="volle Epoche erkennen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689202395764" ID="ID_1382459579" MODIFIED="1689202409602" TEXT="Entscheidung aktiv/obsolet">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1688394889309" ID="ID_1132827905" MODIFIED="1689188274739" TEXT="ExtentFamily_test">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689199616791" ID="ID_752152349" MODIFIED="1689200031345" TEXT="placeActivity">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689202512708" ID="ID_101278669" MODIFIED="1689202518059" TEXT="in leeren BlockFlow">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689202522354" ID="ID_523714574" MODIFIED="1689202553439" TEXT="für Vergangenheit">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689202560123" ID="ID_827332375" MODIFIED="1689202571882" TEXT="zu bestehenden Epochen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689202576227" ID="ID_1382030737" MODIFIED="1689202581299" TEXT="in die Zukunft">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689202597977" ID="ID_1853102157" MODIFIED="1689202608256" TEXT="Overflow zu nächster Epoche">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689202609159" ID="ID_985814955" MODIFIED="1689202622069" TEXT="Overflow zukünftige Epoche">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689203745600" ID="ID_838958031" MODIFIED="1689203950019" TEXT="adjustEpochs">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689203960637" ID="ID_1138375951" MODIFIED="1689203988840" TEXT="time averaging mechanism">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689203990663" ID="ID_1418143690" MODIFIED="1689204013293" TEXT="Overflow reduziert Spacing">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689204050903" ID="ID_1034064454" MODIFIED="1689204057137" TEXT="Freigabe bewertet Füllstand">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689199850230" ID="ID_500959752" MODIFIED="1689199853830" TEXT="storageFlow">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689202692911" ID="ID_906364025" MODIFIED="1689202721745" TEXT="Epoche weit in die Zukunft">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689202785580" ID="ID_892217093" MODIFIED="1689202806524" TEXT="diese Epoche überfüllen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689203363491" ID="ID_1023375133" MODIFIED="1689203368347" TEXT="freigeben nach Deadline">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689203371623" ID="ID_191469419" MODIFIED="1689203381892" TEXT="Epoche blockt Freigabe">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1688394889309" FOLDED="true" ID="ID_1132827905" MODIFIED="1689188274739" TEXT="ExtentFamily_test">
|
||||
<linktarget COLOR="#40c5eb" DESTINATION="ID_1132827905" ENDARROW="Default" ENDINCLINATION="-593;73;" ID="Arrow_ID_709934622" SOURCE="ID_504623704" STARTARROW="None" STARTINCLINATION="-214;-18;"/>
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node CREATED="1688394900403" ID="ID_1380392473" MODIFIED="1688394919878" TEXT="underlying sequence-of-extents">
|
||||
|
|
@ -78890,6 +78965,69 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<node CREATED="1688337038457" ID="ID_1859527374" MODIFIED="1688337060790" TEXT="»Activity Language« Functionality test">
|
||||
<icon BUILTIN="info"/>
|
||||
</node>
|
||||
<node CREATED="1689200347787" ID="ID_927706508" MODIFIED="1689200349854" TEXT="Themen">
|
||||
<node CREATED="1689200351602" ID="ID_1759162519" MODIFIED="1689200367907" TEXT="Activity-Verhalten"/>
|
||||
<node CREATED="1689200370367" ID="ID_1671898028" MODIFIED="1689200383536" TEXT="Term-Builder"/>
|
||||
<node CREATED="1689200449333" ID="ID_386403564" MODIFIED="1689200453433" TEXT="usage scenarios"/>
|
||||
</node>
|
||||
<node CREATED="1689201354393" HGAP="24" ID="ID_1250518280" MODIFIED="1689201365333" TEXT="Hilfsmittel" VSHIFT="2">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689201660559" ID="ID_747497995" MODIFIED="1689201666007" TEXT="ActivityDetector">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1689201667734" ID="ID_901153159" MODIFIED="1689201676495" TEXT="speziell verdrahtete Activity">
|
||||
<icon BUILTIN="info"/>
|
||||
<node CREATED="1689201677836" ID="ID_166879509" MODIFIED="1689201693231" TEXT="kann ihre Aktivierung dokumentieren"/>
|
||||
<node CREATED="1689201999161" ID="ID_554259263" MODIFIED="1689202008524" TEXT="kann Gate-Verhalten aufzeichnen"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689202062345" ID="ID_373470992" MODIFIED="1689202169154" TEXT="implementiert als eigenständiges Test-Hilfsmittel">
|
||||
<richcontent TYPE="NOTE"><html>
|
||||
<head/>
|
||||
<body>
|
||||
<p>
|
||||
...weil ich damit auch die erweiterten Scheduler-Tests mit abdecken könnte (concurrency)...
|
||||
</p>
|
||||
</body>
|
||||
</html></richcontent>
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1689202013167" ID="ID_1086517923" MODIFIED="1689202038445" TEXT="Idee: EventLog verwenden?">
|
||||
<icon BUILTIN="idea"/>
|
||||
<icon BUILTIN="help"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1689199381509" HGAP="-9" ID="ID_1023579954" MODIFIED="1689200613367" TEXT="Testfälle" VSHIFT="4">
|
||||
<icon BUILTIN="list"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689199958807" ID="ID_1659400931" MODIFIED="1689200471838" TEXT="simpleUsage">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689201241256" ID="ID_1940651320" MODIFIED="1689201264958" TEXT="Activity platzieren">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689201251263" ID="ID_629522642" MODIFIED="1689201264958" TEXT="Epoche terminieren">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689199390484" ID="ID_176395611" MODIFIED="1689201554423" TEXT="verifyActivity_Invoke">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689199390484" ID="ID_1274424925" MODIFIED="1689200512352" TEXT="verifyActivity_Notify">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689199390484" ID="ID_212018049" MODIFIED="1689201557502" TEXT="verifyActivity_Gate">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689200547247" ID="ID_1506436785" MODIFIED="1689200552551" TEXT="termBuilder">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689200553782" ID="ID_472609287" MODIFIED="1689200578260" TEXT="scenario_RenderJob">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689200553782" ID="ID_1346681233" MODIFIED="1689200586861" TEXT="scenario_IOJob">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689200553782" ID="ID_722630098" MODIFIED="1689200595611" TEXT="scenario_MetaJob">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1688336761542" ID="ID_145928010" MODIFIED="1688337246571" TEXT="SchedulerInvocation_test">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
|
|
@ -79193,7 +79331,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
<node CREATED="1688556449759" ID="ID_389613064" MODIFIED="1688556458098" TEXT="rein virtuell (per cast erzeugt)"/>
|
||||
</node>
|
||||
<node COLOR="#338800" CREATED="1688432504244" ID="ID_1241185228" MODIFIED="1688556470257" TEXT="Storage (privat)">
|
||||
<node COLOR="#338800" CREATED="1688432504244" FOLDED="true" ID="ID_1241185228" MODIFIED="1688556470257" TEXT="Storage (privat)">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#435e98" CREATED="1688432516234" ID="ID_615463720" MODIFIED="1688867994355" TEXT="Anfroderung: keine Initialisierung">
|
||||
<icon BUILTIN="messagebox_warning"/>
|
||||
|
|
@ -79665,7 +79803,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="yes"/>
|
||||
<node CREATED="1688555021190" ID="ID_1624305559" MODIFIED="1688555026714" TEXT="keine logarithmische Suche"/>
|
||||
<node CREATED="1688555027213" ID="ID_1516151909" MODIFIED="1688555031529" TEXT="kein separater Index"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1688555032021" ID="ID_1157610750" MODIFIED="1688555050479" TEXT="die EpochGate als LInked-List verwenden">
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1688555032021" ID="ID_1157610750" MODIFIED="1688555050479" TEXT="die EpochGate als Linked-List verwenden">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1688778164204" ID="ID_1590074187" MODIFIED="1688778220458" TEXT="geht nicht mehr">
|
||||
<linktarget COLOR="#fe0d3a" DESTINATION="ID_1590074187" ENDARROW="Default" ENDINCLINATION="23;-55;" ID="Arrow_ID_708564411" SOURCE="ID_717553610" STARTARROW="None" STARTINCLINATION="-39;2;"/>
|
||||
|
|
@ -79675,6 +79813,37 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689204144537" ID="ID_462737656" MODIFIED="1689204198471" TEXT="Epochen-Navigation per ExtentFamily">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689204220486" ID="ID_277319829" MODIFIED="1689204231111" TEXT="Flow-Zyklus">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1689204233030" ID="ID_649398296" MODIFIED="1689204243981" TEXT="Frage: Parametrisierung?">
|
||||
<icon BUILTIN="help"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689204252820" ID="ID_1727328732" MODIFIED="1689204287072" TEXT="Epoch-Spacing-Mechanismus">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1689204292687" ID="ID_1711692712" MODIFIED="1689204301552" TEXT="vorläufig einfach halten">
|
||||
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
|
||||
<icon BUILTIN="yes"/>
|
||||
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1689204305717" ID="ID_123055064" MODIFIED="1689204325821" TEXT="später wird auch dieses Thema auf TimingObservable aufsetzen">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689204331764" ID="ID_578018270" MODIFIED="1689204425304" TEXT="vorerst einfache gedämpfte MIttelung">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689204430524" ID="ID_1525654861" MODIFIED="1689204437235" TEXT="Signale">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689204438866" ID="ID_586190414" MODIFIED="1689204458016" TEXT="Epochen-Overflow">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689204448250" ID="ID_688039501" MODIFIED="1689204458017" TEXT="Füllstand beim Aufräumen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
|
|
@ -79768,6 +79937,76 @@ Date:   Thu Apr 20 18:53:17 2023 +0200<br/>
|
|||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689204512737" HGAP="-89" ID="ID_783591358" MODIFIED="1689204530748" TEXT="Diagnostik-Hilfsmittel" VSHIFT="17">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node CREATED="1689204533558" ID="ID_377070637" MODIFIED="1689204547921" TEXT="sollen Unit- und Integrationstests unterstützen">
|
||||
<icon BUILTIN="yes"/>
|
||||
</node>
|
||||
<node CREATED="1689204554739" ID="ID_1440899868" MODIFIED="1689204570206" TEXT="Beobachtungs-Ziele">
|
||||
<icon BUILTIN="info"/>
|
||||
<node COLOR="#338800" CREATED="1689204572129" ID="ID_658361919" MODIFIED="1689204583104" TEXT="Füllstand des Basis-Allokators">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
<node COLOR="#435e98" CREATED="1689204672083" ID="ID_414229642" MODIFIED="1689204694352" STYLE="fork" TEXT="aktiv"/>
|
||||
<node COLOR="#435e98" CREATED="1689204675211" ID="ID_428260433" MODIFIED="1689204694353" STYLE="fork" TEXT="Kapazität"/>
|
||||
<node COLOR="#435e98" CREATED="1689204681138" ID="ID_719751542" MODIFIED="1689204694353" STYLE="fork" TEXT="Index-Positionen"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689204604589" ID="ID_1478405779" MODIFIED="1689204610300" TEXT="Deadlines">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689204644343" ID="ID_1848987574" MODIFIED="1689204801974" TEXT="oldest"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689204650526" ID="ID_624484958" MODIFIED="1689204801974" TEXT="newest"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689204731722" ID="ID_1494295782" MODIFIED="1689204801974" TEXT="Allokations-Zuordnung"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689204805041" ID="ID_1427200190" MODIFIED="1689204809545" TEXT="Ereignisse">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689204818615" ID="ID_1296035133" MODIFIED="1689204891288" TEXT="Funktor-Aufruf"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689204823334" ID="ID_1131519387" MODIFIED="1689204891288" TEXT="Activity-Aktivierung"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689204840484" ID="ID_750822384" MODIFIED="1689204891288" TEXT="Signal-Wire-Tap"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689204883742" ID="ID_1433267374" MODIFIED="1689204891288" TEXT="Gate-Verhalten"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1689204905242" ID="ID_924464779" MODIFIED="1689204946332" TEXT="Diagnose-Kontext">
|
||||
<icon BUILTIN="forward"/>
|
||||
<node COLOR="#338800" CREATED="1689204913954" ID="ID_256874849" MODIFIED="1689204922646" TEXT="für ExtentFamily">
|
||||
<icon BUILTIN="button_ok"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689204923473" ID="ID_756310466" MODIFIED="1689204950523" TEXT="für BlockFlow">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689204967974" ID="ID_284088835" MODIFIED="1689204977426" TEXT="ActivityDetector">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689204985122" ID="ID_1020676746" MODIFIED="1689204995475" TEXT="Rahmen schaffen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689205014901" ID="ID_221497246" MODIFIED="1689205024996" TEXT="Instantiierung und Lebenszyklus">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689205007909" ID="ID_403603899" MODIFIED="1689205011845" TEXT="EventLog einbinden">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689205029658" ID="ID_1144318045" MODIFIED="1689205033146" TEXT="Verifikationen">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689205081622" ID="ID_1440811513" MODIFIED="1689205086027" TEXT="Meßpunkte">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689205105640" ID="ID_1975472338" MODIFIED="1689205112281" TEXT="Dummy-Funktor">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689205129709" ID="ID_355308944" MODIFIED="1689205163520" TEXT="Invocation-Activity">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689205263970" ID="ID_43321196" MODIFIED="1689205277049" TEXT="activationProbe">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689205295574" ID="ID_1666280196" MODIFIED="1689205299838" TEXT="activationTap">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1689205423173" ID="ID_935068564" MODIFIED="1689205426133" TEXT="watchGate">
|
||||
<icon BUILTIN="flag-yellow"/>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
</node>
|
||||
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1681347244544" ID="ID_444443795" MODIFIED="1681347486789" TEXT="Basis: Operational Control">
|
||||
|
|
|
|||
Loading…
Reference in a new issue