LUMIERA.clone/tests/core/steam/engine/node-base-test.cpp
Ichthyostega 544075d143 Invocation: rearrange the Render Node development tests
This is an attempt to take aim at the next step,
which is to fill in the missing part for an actual node invocation...

''...still fighting to get ahead, due to complexity of involced concerns...''
2024-12-07 02:17:55 +01:00

106 lines
3.6 KiB
C++
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
NodeBase(Test) - unit test to cover the render node base elements
Copyright (C)
2009, Hermann Vosseler <Ichthyostega@web.de>
  **Lumiera** 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. See the file COPYING for further details.
* *****************************************************************/
/** @file node-base-test.cpp
** Unit test \ref NodeBase_test covers elementary components of render nodes.
*/
#include "lib/test/run.hpp"
#include "steam/engine/proc-node.hpp"
//#include "steam/engine/nodewiring-obsolete.hpp" /////////////////////////////////////////////////////TICKET #1367 : sort out dependencies for reworked Node Invocation
#include "steam/engine/turnout.hpp"
#include "steam/engine/turnout-system.hpp"
#include "steam/engine/channel-descriptor.hpp"
#include "steam/mobject/session/effect.hpp"
#include "lib/allocation-cluster.hpp"
//#include "lib/format-cout.hpp"
//#include "lib/util.hpp"
//using std::string;
namespace steam {
namespace engine{
namespace test {
using lib::AllocationCluster;
using mobject::session::PEffect;
namespace { // Test fixture
/**
* Mock StateClosure/Invocation object.
* Used as a replacement for the real RenderInvocation,
* so the test can verify that calculations are actually
* happening in correct order.
*/
class TestContext
// : public StateProxy
{
//////////////TODO: facility to verify the right access operations get called
};
inline PEffect
createTestEffectMObject()
{
UNIMPLEMENTED ("how to create a dummy Effect for tests");
}
}
/***************************************************************//**
* @test basic render node properties and behaviour.
*/
class NodeBase_test : public Test
{
virtual void run(Arg)
{
UNIMPLEMENTED ("build a simple render node and then activate it");
AllocationCluster alloc;
#if false /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #1367 : Rebuild the Node Invocation
NodeFactory nodeFab(alloc);
ProcNode * testSource; ///////////TODO: how to fabricate a test Source-Node????
WiringSituation setup(testSource);
PEffect pEffect = createTestEffectMObject();
ProcNode* pNode = nodeFab (pEffect, setup);
CHECK (pNode);
#endif /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #1367 : Rebuild the Node Invocation
TestContext simulatedInvocation;
#if false /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #1367 : Rebuild the Node Invocation
BuffHandle result = pNode->pull(simulatedInvocation, 0);
CHECK (result);
// CHECK we got calculated data in the result buffer
#endif /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #1367 : Rebuild the Node Invocation
}
};
/** Register this test class... */
LAUNCHER (NodeBase_test, "unit node");
}}} // namespace steam::engine::test