lumiera_/tests/core/steam/engine/job-planning-setup-test.cpp
Ichthyostega d341f003ca Job-Planning: attempt to stake claims
desperately trying to move forward and define a minimal first test case...
2023-04-18 20:02:36 +02:00

137 lines
4.1 KiB
C++

/*
JobPlanningSetup(Test) - structure and setup of the job-planning pipeline
Copyright (C) Lumiera.org
2023, 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 job-planning-setup-test.cpp
** unit test \ref CalcStream_test
*/
#include "lib/test/run.hpp"
#include "lib/error.hpp"
#include "steam/engine/dispatcher-mock.hpp"
//#include "steam/engine/job-planning.hpp"
//#include <ctime>
using test::Test;
//using std::rand;
namespace steam {
namespace engine{
namespace test {
namespace { // test fixture...
} // (End) test fixture
/****************************************************************************//**
* @test demonstrate interface, structure and setup of the job-planning pipeline.
* - using a frame step as base tick
* - invoke the dispatcher to retrieve the top-level JobTicket
* - expander function to explore prerequisite JobTickets
* - integration: generate a complete sequence of (dummy)Jobs
* - scaffolding and mocking used for this test
*
* @todo WIP-WIP-WIP 4/2023
*
* @see DispatcherInterface_test
* @see Dispatcher
* @see CalcStream
* @see RenderDriveS
*/
class JobPlanningSetup_test : public Test
{
virtual void
run (Arg)
{
demonstrateScaffolding();
UNIMPLEMENTED ("shape the interface of the job-planning pipeline");
buildBaseTickGenerator();
accessTopLevelJobTicket();
exploreJobTickets();
integration();
}
/** @test document and verify the mock setup used for this test */
void
demonstrateScaffolding()
{
MockJobTicket mockTick;
CHECK (mockTick.discoverPrerequisites().empty());
UNIMPLEMENTED ("how to mock and fake");
/////////////////////////////////////////////////////////////////////////////TODO: extract from DispatcherInterface_test
/////////////////////////////////////////////////////////////////////////////TODO: design a job-ticket-mock
/////////////////////////////////////////////////////////////////////////////TODO: create a scheme for mock-jobs
}
/** @test use the Dispatcher interface (mocked) to generate a frame »beat«
* @remark this is the foundation to generate top-level frame render jobs
*/
void
buildBaseTickGenerator()
{
UNIMPLEMENTED ("foundation of state core");
}
/** @test use the base tick to access the corresponding JobTicket
* through the Dispatcher interface (mocked here).
*/
void
accessTopLevelJobTicket()
{
UNIMPLEMENTED ("transform into job ticket access");
}
/** @test build and verify the exploration function to discover job prerequisites */
void
exploreJobTickets()
{
UNIMPLEMENTED ("exploration function");
}
/** @test Job-planning pipeline integration test
* @remark generating dummy jobs for verification
*/
void
integration()
{
UNIMPLEMENTED ("integration incl. generation of dummy jobs");
}
};
/** Register this test class... */
LAUNCHER (JobPlanningSetup_test, "unit engine");
}}} // namespace steam::engine::test