Invocation: ''Test Rand'' filter node test pass

This commit is contained in:
Fischlurch 2025-02-10 03:41:05 +01:00
parent ccb10f3c65
commit 72d7a6c5b8
2 changed files with 96 additions and 56 deletions

View file

@ -318,7 +318,6 @@ namespace test {
BufferProvider& provider = DiagnosticBufferProvider::build();
BuffHandle buffHandle = provider.lockBuffer (provider.getDescriptorFor(sizeof(TestFrame)));
uint port{0};
CHECK (not buffHandle.accessAs<TestFrame>().isSane());
@ -338,22 +337,28 @@ namespace test {
makeSrcNode (ont::FraNo frameNr, ont::Flavr flavour)
{
auto spec = testRand().setupGenerator();
SHOW_EXPR(spec.nodeID())
return prepareNode(spec.nodeID())
// ProcNode n{prepareNode(spec.nodeID())
.preparePort()
.invoke(spec.procID(), spec.makeFun())
.setParam(frameNr,flavour)
.completePort()
.build();
//SHOW_EXPR(watch(n).getNodeName() );
// return move(n);
}
/** @test use the »TestRand«-framework to setup a filter node
*
* - implementation is backed by the ont::manipulateFrame() function
* - it thus operates on \ref TestFrame data and results can be verified
* - the generated spec-recod provides a processing-functor binding and node-spec
* - can build and wire a Node processing chain with a source node and a »filter«
* node based on this data manipulation, which exactly reproduces the data
* content generated by the stand-alone invocation.
* @remark such a test-setup thus not only allows to prove that the function was invoked,
* but also the order in which the processing took place, due to hash-chaining
* applied to every single data word in the `TestFrame` buffer.
* @see NodeLink_test::trigger_node_port_invocation()
*/
void
testRand_buildFilterNode()
@ -390,9 +395,6 @@ SHOW_EXPR(spec.nodeID())
// Build a node using this processing-functor...
ProcNode nSrc = makeSrcNode (frameNr,flavour);
SHOW_EXPR(watch(nSrc).getNodeName() );
ProcID& px = ProcID::describe("Test:generate","(TestFrame)");
SHOW_EXPR(px.genNodeName())
ProcNode nFilt{prepareNode(spec.nodeID())
.preparePort()
.invoke(spec.procID(), procFun)
@ -403,9 +405,25 @@ SHOW_EXPR(px.genNodeName())
CHECK (watch(nSrc).isSrc());
CHECK (not watch(nFilt).isSrc());
SHOW_EXPR(watch(nSrc).getNodeSpec() );
SHOW_EXPR(watch(nFilt).getNodeSpec() );
SHOW_EXPR(watch(nFilt).getPortSpec(0) );
CHECK (watch(nSrc).getNodeSpec() == "Test:generate-◎"_expect );
CHECK (watch(nFilt).getNodeSpec() == "Test:manipulate◁—Test:generate-◎"_expect );
CHECK (watch(nFilt).getPortSpec(0) == "manipulate(TestFrame)"_expect );
// prepare to invoke this Node chain...
BufferProvider& provider = DiagnosticBufferProvider::build();
BuffHandle buffHandle = provider.lockBuffer (provider.getDescriptorFor(sizeof(TestFrame)));
uint port{0};
CHECK (not buffHandle.accessAs<TestFrame>().isValid());
// Trigger Node invocation...
buffHandle = nFilt.pull (port, buffHandle, Time::ZERO, ProcessKey{0});
TestFrame& result = buffHandle.accessAs<TestFrame>();
CHECK ( result.isValid());
CHECK (not result.isPristine());
CHECK (result == *buff);
buffHandle.release();
}

View file

@ -91978,7 +91978,7 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
<linktarget COLOR="#f70b4e" DESTINATION="ID_1455684253" ENDARROW="Default" ENDINCLINATION="-91;-6;" ID="Arrow_ID_490366864" SOURCE="ID_1569263616" STARTARROW="None" STARTINCLINATION="-130;10;"/>
<icon BUILTIN="broken-line"/>
</node>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1734652629957" ID="ID_367075117" MODIFIED="1734657730391" TEXT="mu&#xdf; BuffHandle am Ende aufr&#xe4;umen">
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1734652629957" FOLDED="true" ID="ID_367075117" MODIFIED="1734657730391" TEXT="mu&#xdf; BuffHandle am Ende aufr&#xe4;umen">
<icon BUILTIN="messagebox_warning"/>
<node BACKGROUND_COLOR="#f8cbe0" COLOR="#a50125" CREATED="1734652654612" ID="ID_615803574" MODIFIED="1734652734403" TEXT="&#xd83d;&#xdc80; sonst gibts &#xc4;rger">
<richcontent TYPE="NOTE"><html>
@ -92252,11 +92252,11 @@ Date:&#160;&#160;&#160;Thu Apr 20 18:53:17 2023 +0200<br/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1739116383263" ID="ID_596205632" MODIFIED="1739137027197" TEXT="Test-Node-Setups dokumentieren">
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1739116383263" ID="ID_596205632" MODIFIED="1739154733978" TEXT="Test-Node-Setups dokumentieren">
<linktarget COLOR="#476dba" DESTINATION="ID_596205632" ENDARROW="Default" ENDINCLINATION="168;0;" ID="Arrow_ID_265273895" SOURCE="ID_770787154" STARTARROW="None" STARTINCLINATION="-640;0;"/>
<linktarget COLOR="#2c80c0" DESTINATION="ID_596205632" ENDARROW="Default" ENDINCLINATION="1567;83;" ID="Arrow_ID_1998396288" SOURCE="ID_495521485" STARTARROW="None" STARTINCLINATION="-765;-533;"/>
<linktarget COLOR="#2c80c0" DESTINATION="ID_596205632" ENDARROW="Default" ENDINCLINATION="1749;97;" ID="Arrow_ID_723151145" SOURCE="ID_656518843" STARTARROW="None" STARTINCLINATION="-985;-614;"/>
<icon BUILTIN="flag-yellow"/>
<icon BUILTIN="pencil"/>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1730830270041" ID="ID_1591571416" MODIFIED="1730830413355" TEXT="parallel zum Prototyping mitf&#xfc;hren">
@ -103213,6 +103213,10 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1739120015104" ID="ID_176360500" LINK="#ID_1847666799" MODIFIED="1739120093614" TEXT="weitere Operationen abdecken">
<icon BUILTIN="pencil"/>
<node COLOR="#435e98" CREATED="1739155028963" ID="ID_1428036459" MODIFIED="1739155042281" TEXT="testRand_buildFilterNode"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1739155049525" ID="ID_491565627" MODIFIED="1739155060525" TEXT="testRand_buildMixNode">
<icon BUILTIN="flag-pink"/>
</node>
</node>
</node>
<node BACKGROUND_COLOR="#c8c0b6" COLOR="#88095d" CREATED="1733533054398" ID="ID_1712932544" MODIFIED="1736091257171" TEXT="stecke fest &#x2014; mu&#xdf; mehrere Aspekte gleichzeitig f&#xf6;rdern">
@ -104299,8 +104303,8 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1736120662600" ID="ID_957622251" MODIFIED="1736121244306" TEXT="Primitive etablieren">
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1736120694159" ID="ID_200334788" MODIFIED="1736121236891" TEXT="Generator">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1736120694159" ID="ID_200334788" MODIFIED="1739154976313" TEXT="Generator">
<icon BUILTIN="button_ok"/>
<node CREATED="1736121710098" ID="ID_1677000203" MODIFIED="1736121722556" TEXT="Config">
<node CREATED="1736121723880" ID="ID_332026106" MODIFIED="1736121735951" TEXT="fanOut : repliziert mit Offeset auf flavour"/>
<node CREATED="1736122953785" ID="ID_688167409" MODIFIED="1736123014174" TEXT="streamsOut : Typ-Konfiguration">
@ -104325,27 +104329,30 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node COLOR="#338800" CREATED="1739154967739" ID="ID_372127452" MODIFIED="1739154974005" TEXT="Filter">
<icon BUILTIN="button_ok"/>
<node CREATED="1739154982049" ID="ID_505704303" MODIFIED="1739154989406" TEXT="Config: nur ein &apos;param&apos;"/>
<node COLOR="#435e98" CREATED="1739154990693" ID="ID_566055069" MODIFIED="1739155006078" TEXT="ansonsten: komplett nach dem Muster vom Generator aufgebaut">
<icon BUILTIN="idea"/>
</node>
<node BACKGROUND_COLOR="#f0d5c5" COLOR="#990033" CREATED="1739137093444" ID="ID_193888110" MODIFIED="1739138230995" TEXT="Integration mit NodeBuilder erm&#xf6;glichen">
</node>
</node>
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1739137093444" FOLDED="true" ID="ID_193888110" MODIFIED="1739154957446" TEXT="Integration mit NodeBuilder erm&#xf6;glichen">
<icon BUILTIN="help"/>
<icon BUILTIN="hourglass"/>
<node CREATED="1739137106908" ID="ID_1390835704" MODIFIED="1739138922196" TEXT="fragt sich blo&#xdf;: wie &#x2014; der ist generisch">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
...denn in der Policy steckt die Vorgschichte des jeweiligen Build-Vorgangs &#8212; und auch der Allokator!
</p>
</body>
</html>
</richcontent>
</html></richcontent>
</node>
<node CREATED="1739138056436" ID="ID_297538159" MODIFIED="1739138152372" TEXT="und es ist kein point-and-shot">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
die DomainOntology mu&#223; jeweils nur einige Aspekte beitragen
@ -104370,15 +104377,13 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</li>
</ul>
</body>
</html>
</richcontent>
</html></richcontent>
</node>
<node CREATED="1739138924536" ID="ID_546266242" MODIFIED="1739138928356" TEXT="Ans&#xe4;tze">
<node CREATED="1739138924536" ID="ID_546266242" MODIFIED="1739154840694" TEXT="Ans&#xe4;tze">
<icon BUILTIN="idea"/>
<node CREATED="1739138930667" ID="ID_195321683" MODIFIED="1739139000291" TEXT="f&#xfc;r einfache F&#xe4;lle doch ein point-and-shot">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
...vor allem f&#252;r Src-Nodes k&#246;nnte die TestRand-Ontology gleich eine fertige ProcNode liefern....
@ -104392,17 +104397,17 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</li>
</ul>
</body>
</html>
</richcontent>
<node CREATED="1739140280801" ID="ID_1585591460" MODIFIED="1739140297955" TEXT="vielleicht sogar nur hier f&#xfc;r diesen Tescht"/>
</html></richcontent>
<node BACKGROUND_COLOR="#c8c0b6" CREATED="1739140280801" ID="ID_1585591460" MODIFIED="1739154873569" TEXT="vielleicht sogar nur hier f&#xfc;r diesen Tescht">
<linktarget COLOR="#495769" DESTINATION="ID_1585591460" ENDARROW="Default" ENDINCLINATION="102;7;" ID="Arrow_ID_519460034" SOURCE="ID_1456893967" STARTARROW="None" STARTINCLINATION="101;0;"/>
<icon BUILTIN="forward"/>
</node>
</node>
<node CREATED="1739139021078" ID="ID_1083234628" MODIFIED="1739139075629" TEXT="der Spec-Builder hat generische Funktion, die auf einen NodeBuilder losgeht"/>
<node CREATED="1739139083579" ID="ID_1865338853" MODIFIED="1739139122322" TEXT="der Node-Builder hat generische Funktion, die visitor-m&#xe4;&#xdf;ig einen &#xbb;configurator&#xab; akzeptiert"/>
<node CREATED="1739139147065" ID="ID_1683401888" MODIFIED="1739139180912" TEXT="oder gar nicht und auf sp&#xe4;ter vertagen...">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
wie viele F&#228;lle sind das jetzt tats&#228;chlich
@ -104411,6 +104416,25 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</html></richcontent>
</node>
</node>
<node BACKGROUND_COLOR="#ccb59b" COLOR="#6e2a38" CREATED="1739154809266" ID="ID_1940242283" MODIFIED="1739154836732" TEXT="Thema kann im Moment nicht ad&#xe4;quat behandelt werden">
<richcontent TYPE="NOTE"><html>
<head/>
<body>
<p>
...m&#252;&#223;te dazu <i>viel mehr &#252;ber den Builder wissen....</i>
</p>
</body>
</html></richcontent>
<font ITALIC="true" NAME="SansSerif" SIZE="14"/>
<icon BUILTIN="yes"/>
<node CREATED="1739154849643" ID="ID_1456893967" MODIFIED="1739154877953" TEXT="verwende vorherst einfach eine Hilfsfunktion">
<arrowlink COLOR="#495769" DESTINATION="ID_1585591460" ENDARROW="Default" ENDINCLINATION="102;7;" ID="Arrow_ID_519460034" STARTARROW="None" STARTINCLINATION="101;0;"/>
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1739154890317" HGAP="40" ID="ID_1825758393" MODIFIED="1739154948207" TEXT="&#x201e;einfach&#x201c; ... hihi" VSHIFT="15">
<arrowlink COLOR="#c64b6e" DESTINATION="ID_1336671386" ENDARROW="Default" ENDINCLINATION="354;0;" ID="Arrow_ID_306057171" STARTARROW="None" STARTINCLINATION="40;231;"/>
<icon BUILTIN="smiley-oh"/>
</node>
</node>
</node>
</node>
</node>
</node>
@ -105088,20 +105112,20 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
</node>
</node>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728786171058" ID="ID_1300765185" MODIFIED="1728786272700" TEXT="Buffer bereitstellen und entgegennehmen">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1728786171058" ID="ID_1300765185" MODIFIED="1739154780140" TEXT="Buffer bereitstellen und entgegennehmen">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#d2beaf" COLOR="#5c4d6e" CREATED="1728786238817" ID="ID_318249772" MODIFIED="1728786266440" TEXT="Aufrufpfad auf TestFrame umstellen">
<icon BUILTIN="hourglass"/>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1728786238817" ID="ID_318249772" MODIFIED="1739154784721" TEXT="Aufrufpfad auf TestFrame umstellen">
<icon BUILTIN="pencil"/>
</node>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1728786202710" ID="ID_503859904" MODIFIED="1739116131941" TEXT="Berechnungs-Verifikation aufbauen">
<icon BUILTIN="pencil"/>
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1728786300177" ID="ID_317306309" MODIFIED="1728786323798" TEXT="Formale Anordnung in der Test-Ontology festlegen">
<icon BUILTIN="flag-pink"/>
<node COLOR="#338800" CREATED="1728786300177" ID="ID_317306309" MODIFIED="1739154762839" TEXT="Formale Anordnung in der Test-Ontology festlegen">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728786339907" ID="ID_1615772928" MODIFIED="1728786355508" TEXT="generische Funktion per hash_combine bereitstellen">
<icon BUILTIN="flag-yellow"/>
<node COLOR="#338800" CREATED="1728786339907" ID="ID_1615772928" MODIFIED="1739155312149" TEXT="generische Funktion per hash_combine bereitstellen">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eee5c3" COLOR="#990000" CREATED="1728786359782" ID="ID_525505656" MODIFIED="1739116780220" TEXT="Spec und Seed generieren und verarbeiten">
<linktarget COLOR="#6e409a" DESTINATION="ID_525505656" ENDARROW="Default" ENDINCLINATION="-260;17;" ID="Arrow_ID_1565815419" SOURCE="ID_348689410" STARTARROW="None" STARTINCLINATION="-71;-3;"/>
@ -105115,8 +105139,8 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<node COLOR="#338800" CREATED="1739118437462" ID="ID_548813842" MODIFIED="1739118441696" TEXT="Quelle">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1739118442971" ID="ID_703880245" MODIFIED="1739118455053" TEXT="Filter">
<icon BUILTIN="pencil"/>
<node COLOR="#338800" CREATED="1739118442971" ID="ID_703880245" MODIFIED="1739154638552" TEXT="Filter">
<icon BUILTIN="button_ok"/>
</node>
<node BACKGROUND_COLOR="#eef0c5" COLOR="#990000" CREATED="1739118448187" ID="ID_144043029" MODIFIED="1739118455054" TEXT="Mix">
<icon BUILTIN="pencil"/>
@ -105236,18 +105260,16 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<node BACKGROUND_COLOR="#fdfdcf" COLOR="#ff0000" CREATED="1739116716548" ID="ID_348689410" MODIFIED="1739116790424" TEXT="brauche Test-Nodes">
<arrowlink COLOR="#6e409a" DESTINATION="ID_525505656" ENDARROW="Default" ENDINCLINATION="-260;17;" ID="Arrow_ID_1565815419" STARTARROW="None" STARTINCLINATION="-71;-3;"/>
<icon BUILTIN="yes"/>
<node BACKGROUND_COLOR="#fafe99" COLOR="#fa002a" CREATED="1739152096185" ID="ID_419285469" MODIFIED="1739152380070" TEXT="Problem mit korrumpierten Node-IDs">
<node COLOR="#435e98" CREATED="1739152096185" ID="ID_419285469" MODIFIED="1739154614858" TEXT="Problem mit korrumpierten Node-IDs">
<arrowlink COLOR="#e00e57" DESTINATION="ID_93765980" ENDARROW="Default" ENDINCLINATION="-837;47;" ID="Arrow_ID_1352551175" STARTARROW="None" STARTINCLINATION="845;59;"/>
<icon BUILTIN="broken-line"/>
<node CREATED="1739152384977" ID="ID_815114496" MODIFIED="1739152402019" TEXT="wollte mir in einer Hilfsfunktion einer Source-Node generieren lassen"/>
<node BACKGROUND_COLOR="#cfa193" COLOR="#690f14" CREATED="1739152403271" ID="ID_467549326" MODIFIED="1739152534007" TEXT="deren Node-IDs zeigen auf fregegebenen Speicher">
<icon BUILTIN="clanbomber"/>
</node>
<node COLOR="#ed2143" CREATED="1739152494531" HGAP="107" ID="ID_1336671386" MODIFIED="1739152700887" TEXT="&#xd83e;&#xdc32; Problem im Builder-&#x3bb;" VSHIFT="-16">
<node COLOR="#ed2143" CREATED="1739152494531" HGAP="107" ID="ID_1336671386" MODIFIED="1739154942191" TEXT="&#xd83e;&#xdc32; Problem im Builder-&#x3bb;" VSHIFT="-16">
<richcontent TYPE="NOTE"><html>
<head>
</head>
<head/>
<body>
<p>
Puh...
@ -105256,8 +105278,8 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
...endlos mit dem Debugger beobachtet, sieht immer alles v&#246;llig sauber aus; konnte schlie&#223;lich belegen da&#223; es <i>nicht die de-duplzierten Strings selber </i>sind &#10233; das hat mich dann auf die richtige F&#228;hrte gebracht: es mu&#223; einer der dazwischen liegenden String-Views sein, der in transientem Speicher liegt &#8212; und tats&#228;chlich: in den Builder-&#955; erzeugen wir eine Proc-ID <b>per Value</b>, binden sie dann aber per Referenz <b>in den neuen Port</b>....
</p>
</body>
</html>
</richcontent>
</html></richcontent>
<linktarget COLOR="#c64b6e" DESTINATION="ID_1336671386" ENDARROW="Default" ENDINCLINATION="354;0;" ID="Arrow_ID_306057171" SOURCE="ID_1825758393" STARTARROW="None" STARTINCLINATION="40;231;"/>
<font NAME="SansSerif" SIZE="10"/>
</node>
</node>
@ -105846,7 +105868,7 @@ StM_bind(Builder&lt;R1&gt; b1, Extension&lt;R1,R2&gt; extension)
<node BACKGROUND_COLOR="#e0ceaa" COLOR="#690f14" CREATED="1730598512266" ID="ID_939010483" MODIFIED="1738695919297" TEXT="mu&#xdf; komplett von der Weaving-Pattern-Impl entkoppelt werden">
<icon BUILTIN="messagebox_warning"/>
</node>
<node BACKGROUND_COLOR="#e5a988" COLOR="#890f62" CREATED="1739150638564" ID="ID_93765980" MODIFIED="1739152380070" TEXT="heimt&#xfc;ckische Falle: transiente ProcID per Value">
<node BACKGROUND_COLOR="#e5a988" COLOR="#890f62" CREATED="1739150638564" FOLDED="true" ID="ID_93765980" MODIFIED="1739154626354" TEXT="heimt&#xfc;ckische Falle: transiente ProcID per Value">
<linktarget COLOR="#e00e57" DESTINATION="ID_93765980" ENDARROW="Default" ENDINCLINATION="-837;47;" ID="Arrow_ID_1352551175" SOURCE="ID_419285469" STARTARROW="None" STARTINCLINATION="845;59;"/>
<icon BUILTIN="clanbomber"/>
<node CREATED="1739150662506" ID="ID_255473907" MODIFIED="1739150685582" TEXT="man mu&#xdf; immer auf die Instanz in der Registry referenzieren">