diff --git a/tests/core/steam/engine/node-devel-test.cpp b/tests/core/steam/engine/node-devel-test.cpp index b234dbd1d..5fce7ff7f 100644 --- a/tests/core/steam/engine/node-devel-test.cpp +++ b/tests/core/steam/engine/node-devel-test.cpp @@ -333,6 +333,20 @@ namespace test { buffHandle.release(); } + /** shortcut to simplify the following test cases */ + static ProcNode + makeSrcNode (ont::FraNo frameNr, ont::Flavr flavour) + { + auto spec = testRand().setupGenerator(); + return prepareNode(spec.nodeID()) + .preparePort() + .invoke(spec.procID(), spec.makeFun()) + .setParam(frameNr,flavour) + .completePort() + .build(); + } + + /** @test use the »TestRand«-framework to setup a filter node * @@ -349,6 +363,42 @@ namespace test { CHECK (showType() == "void (ulong, engine::test::TestFrame const*, engine::test::TestFrame*)"_expect); // Results can be verified by ont::manipulateFrame() — see above + size_t frameNr = defaultGen.u64(); + uint flavour = defaultGen.u64(); + uint64_t param = defaultGen.u64(); + + Buffer buff; + buff.buildData(frameNr,flavour); + CHECK (buff->isPristine()); + + // Invoke the processing-functor directly + procFun (param, buff,buff); + CHECK ( buff->isValid()); + CHECK (not buff->isPristine()); + HashVal checksum = buff->markChecksum(); + + // reproduce the same checksum... + buff.buildData(frameNr,flavour); + CHECK (buff->isPristine()); + CHECK (checksum != buff->markChecksum()); + ont::manipulateFrame (buff, buff, param); + CHECK (checksum == buff->markChecksum()); + + // Build a node using this processing-functor... + ProcNode nSrc = makeSrcNode (frameNr,flavour); + ProcNode nFilt{prepareNode(spec.nodeID()) + .preparePort() + .invoke(spec.procID(), procFun) + .setParam(param) + .connectLead(nSrc) + .completePort() + .build()}; + + 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) ); } diff --git a/wiki/thinkPad.ichthyo.mm b/wiki/thinkPad.ichthyo.mm index 0924f8fb5..d9c0702c9 100644 --- a/wiki/thinkPad.ichthyo.mm +++ b/wiki/thinkPad.ichthyo.mm @@ -92243,7 +92243,7 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
- + @@ -92252,10 +92252,10 @@ Date:   Thu Apr 20 18:53:17 2023 +0200
- + - - + + @@ -104225,8 +104225,8 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension) - + @@ -104326,6 +104326,92 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension) + + + + + + + + +

+ ...denn in der Policy steckt die Vorgschichte des jeweiligen Build-Vorgangs — und auch der Allokator! +

+ + +
+
+ + + + + + +

+ die DomainOntology muß jeweils nur einige Aspekte beitragen +

+
    +
  • + der Node-Name +
  • +
  • + Funktion und Spec für einen Port +
  • +
+

+ ...dagegen andere Aspekte müssen frei bleiben +

+
    +
  • + Verdrahtung der Vorgänger-Nodes für diesen Port +
  • +
  • + ggs andere Ports +
  • +
+ + +
+
+ + + + + + + +

+ ...vor allem für Src-Nodes könnte die TestRand-Ontology gleich eine fertige ProcNode liefern.... +

+

+ Problem damit +

+
    +
  • + dann muß TestRand etwas über ProcNode wissen +
  • +
+ + +
+ + + + + + + + + + +

+ wie viele Fälle sind das jetzt tatsächlich +

+ +
+
+
+
@@ -105023,8 +105109,8 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension) - - + + @@ -107516,7 +107602,7 @@ StM_bind(Builder<R1> b1, Extension<R1,R2> extension) - +