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).
114 lines
3.9 KiB
C++
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
|