From 5d88993ae56c2d8b34b06f671f0ab9ce14539674 Mon Sep 17 00:00:00 2001 From: "Joachim Wuttke (o)" <j.wuttke@fz-juelich.de> Date: Fri, 10 Jun 2016 15:46:59 +0200 Subject: [PATCH] revert *Suite from callback to inheritance, but with everything in the *Suite.cpp file. --- Core/TestMachinery/FutestSuite.cpp | 7 ++----- Core/TestMachinery/FutestSuite.h | 7 +++---- Tests/Functional/TestCore/CoreSuite.cpp | 17 +++++++++++------ Tests/Functional/TestGUI/GUISuite.cpp | 16 ++++++++++------ Tests/Functional/TestPyDump/PyDump.cpp | 15 +++++++++------ 5 files changed, 35 insertions(+), 27 deletions(-) diff --git a/Core/TestMachinery/FutestSuite.cpp b/Core/TestMachinery/FutestSuite.cpp index 4bace6f3157..7fae254a077 100644 --- a/Core/TestMachinery/FutestSuite.cpp +++ b/Core/TestMachinery/FutestSuite.cpp @@ -28,15 +28,12 @@ #include "FTDistributions.h" #include "FutestSuite.h" -FutestSuite::FutestSuite(const std::string& name, - class IFutest* functionalTest(const FutestSuite*)) - : INamed(name) - , m_formfactor(0) +FutestSuite::FutestSuite() + : m_formfactor(0) , m_ft_distribution_2d(0) , m_ff_registry(0) , m_ft2d_registry(0) , m_current_component(0) - , m_functionalTest(functionalTest) { } diff --git a/Core/TestMachinery/FutestSuite.h b/Core/TestMachinery/FutestSuite.h index 51c3d16638d..8420d885fad 100644 --- a/Core/TestMachinery/FutestSuite.h +++ b/Core/TestMachinery/FutestSuite.h @@ -23,6 +23,7 @@ #include "WinDllMacros.h" #include "OutputData.h" #include "ISampleBuilder.h" +#include "ISingleton.h" //! @class FutestSuite //! @ingroup standard_samples //! @brief Contains all necessary information to compose functional test. @@ -30,12 +31,11 @@ class BA_CORE_API_ FutestSuite : public INamed { public: - typedef class IFutest* (*get_futest_t) (const FutestSuite*); - FutestSuite(const std::string& name, get_futest_t functionalTest); + FutestSuite(); virtual ~FutestSuite(); int execute(int argc, char** argv); - class IFutest* getFutest() const { return (*m_functionalTest)(this); } + virtual class IFutest* getFutest() const = 0; virtual class IFormFactor* getFormFactor() const; virtual class IFTDistribution2D* getFTDistribution2D() const; virtual class GISASSimulation* getSimulation() const; @@ -59,7 +59,6 @@ public: class TestFTDistribution2DRegistry* m_ft2d_registry; std::vector<std::string> m_component_names; size_t m_current_component; - get_futest_t m_functionalTest; }; #endif diff --git a/Tests/Functional/TestCore/CoreSuite.cpp b/Tests/Functional/TestCore/CoreSuite.cpp index 6635a92289a..d3234e51b31 100644 --- a/Tests/Functional/TestCore/CoreSuite.cpp +++ b/Tests/Functional/TestCore/CoreSuite.cpp @@ -17,12 +17,17 @@ #include "FutestRegistry.h" #include "CoreFutest.h" -//! Program CoreSuite, to run core functional tests. +class CoreSuite : public FutestSuite, public ISingleton<CoreSuite> +{ +public: + CoreSuite() { setName("CoreSuite"); } + IFutest* getFutest() const { return new CoreFutest( + getTestName(), getTestDescription(), getSimulation(), + getReferenceData(), getTestThreshold(), getReferenceFileName() ); } +}; + +//! The main function of CoreSuite, to run functional tests int main(int argc, char** argv) { - FutestSuite suite("CoreSuite", [] (const FutestSuite* s) -> IFutest* { - return new CoreFutest( - s->getTestName(), s->getTestDescription(), s->getSimulation(), - s->getReferenceData(), s->getTestThreshold(), s->getReferenceFileName()); } ); - return suite.execute(argc, argv); + return CoreSuite::instance().execute(argc, argv); } diff --git a/Tests/Functional/TestGUI/GUISuite.cpp b/Tests/Functional/TestGUI/GUISuite.cpp index 186bd55750f..61440938719 100644 --- a/Tests/Functional/TestGUI/GUISuite.cpp +++ b/Tests/Functional/TestGUI/GUISuite.cpp @@ -18,12 +18,16 @@ #include "FutestRegistry.h" #include "GUIFutest.h" -//! The main function of GUITestSuite to run functional tests +class GUISuite : public FutestSuite, public ISingleton<GUISuite> +{ +public: + GUISuite() { setName("GUISuite"); } + IFutest* getFutest() const { return new GUIFutest( + getTestName(), getTestDescription(), getSimulation(), getTestThreshold()); } +}; + +//! The main function of GUITestSuite, to run functional tests int main(int argc, char** argv) { - FutestSuite suite("GUISuite", [] (const FutestSuite* s) -> IFutest* { - return new GUIFutest( - s->getTestName(), s->getTestDescription(), - s->getSimulation(), s->getTestThreshold()); } ); - return suite.execute(argc, argv); + return GUISuite::instance().execute(argc, argv); } diff --git a/Tests/Functional/TestPyDump/PyDump.cpp b/Tests/Functional/TestPyDump/PyDump.cpp index 208fc198180..c80bc2847e3 100644 --- a/Tests/Functional/TestPyDump/PyDump.cpp +++ b/Tests/Functional/TestPyDump/PyDump.cpp @@ -17,13 +17,16 @@ #include "FutestRegistry.h" #include "PyScriptFutest.h" -//! Program PySuite, to run pyscript functional tests. +class PySuite : public FutestSuite, public ISingleton<PySuite> +{ +public: + PySuite() { setName("PySuite"); } + IFutest* getFutest() const { return new PyScriptFutest( + getTestName(), getTestDescription(), getSimulation(), getTestThreshold()); } +}; +//! The main function of PyTestSuite, to run functional tests int main(int argc, char** argv) { - FutestSuite suite("PySuite", [] (const FutestSuite* s) -> IFutest* { - return new PyScriptFutest( - s->getTestName(), s->getTestDescription(), - s->getSimulation(), s->getTestThreshold()); } ); - return suite.execute(argc, argv); + return PySuite::instance().execute(argc, argv); } -- GitLab