LUMIERA.clone/tests/core/steam/engine/node-basic-test.cpp
Ichthyostega 717af81986 Invocation: Identify parts relevant for a node builder
The immediate next step is to build some render nodes directly
in a test setting, without using any kind of ''node factory.''
Getting ahead with this task requires to identify the constituents
to be represented on the first code layer for the reworked code
(here ''first layer'' means any part that are ''not'' supplied
by generic, templated building blocks).

Notably we need to build a descriptor for the `FeedManifold` —
which in turn implies we have to decide on some fundamental aspects
of handling buffers in the render process.

To allow rework of the `ProcNode` connectivity, a lot of presumably obsoleted
draft code from 2011 has to be detached, to be able to keep it in-tree
for further reference (until the rework and refactoring is settled).
2024-06-25 04:54:39 +02:00

114 lines
3.9 KiB
C++

/*
NodeBasic(Test) - unit test covering render node basic lifecycle and usage
Copyright (C) Lumiera.org
2009, 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 node-basic-test.cpp
** unit test \ref NodeBasic_test
*/
#include "lib/test/run.hpp"
#include "steam/engine/node-factory.hpp"
//#include "steam/engine/nodewiring-obsolete.hpp" /////////////////////////////////////////////////////TICKET #1367 : sort out dependencies for reworked Node Invocation
#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 NodeBasic_test : public Test
{
virtual void run(Arg)
{
UNIMPLEMENTED ("build a simple render node and then activate it");
AllocationCluster alloc;
NodeFactory nodeFab(alloc);
ProcNode * testSource; ///////////TODO: how to fabricate a test Source-Node????
#if false /////////////////////////////////////////////////////////////////////////////////////////////////////////////UNIMPLEMENTED :: TICKET #1367 : Rebuild the Node Invocation
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 (NodeBasic_test, "unit node");
}}} // namespace steam::engine::test