From 02fa1e825bba39993215d69cebd0a761fbf57c71 Mon Sep 17 00:00:00 2001
From: Gennady Pospelov <g.pospelov@fz-juelich.de>
Date: Fri, 8 Dec 2017 13:10:46 +0100
Subject: [PATCH] Unit test machinery now relies on single main_testlist.cpp

---
 Tests/UnitTests/CMakeLists.txt                |  2 +-
 Tests/UnitTests/Core/DataStructure/main.cpp   | 28 -------------------
 Tests/UnitTests/Core/Detector/main.cpp        | 28 -------------------
 Tests/UnitTests/Core/ExportToPython/main.cpp  | 28 -------------------
 Tests/UnitTests/Core/Fresnel/main.cpp         | 28 -------------------
 Tests/UnitTests/Core/Numeric0/main.cpp        | 28 -------------------
 Tests/UnitTests/Core/Numeric1/main.cpp        | 28 -------------------
 Tests/UnitTests/Core/Other/main.cpp           | 28 -------------------
 Tests/UnitTests/Core/Parameters/main.cpp      | 28 -------------------
 Tests/UnitTests/Core/Sample/main.cpp          | 28 -------------------
 Tests/UnitTests/Fit/0/main.cpp                | 28 -------------------
 Tests/UnitTests/Fit/CMakeLists.txt            |  2 +-
 .../Fit/{0 => FitKernel}/AttLimitsTest.h      |  0
 .../Fit/{0 => FitKernel}/FitObjectTest.h      |  0
 .../{0 => FitKernel}/FitParameterSetTest.h    |  0
 .../Fit/{0 => FitKernel}/FitParameterTest.h   |  0
 .../Fit/{0 => FitKernel}/FitSuiteTest.h       |  0
 .../Fit/{0 => FitKernel}/IFitParameterTest.h  |  0
 .../{0 => FitKernel}/MinimizerOptionsTest.h   |  0
 .../Fit/{0 => FitKernel}/MultiOptionTest.h    |  0
 .../{0 => FitKernel}/OptionContainerTest.h    |  0
 .../Fit/{0 => FitKernel}/RealLimitsTest.h     |  0
 .../Fit/{0 => FitKernel}/StringUtilsTest.h    |  0
 .../UnitTests/Fit/{0 => FitKernel}/testlist.h |  0
 .../main.cpp => utilities/main_testlist.cpp}  | 13 +--------
 cmake/generic/modules/AddGTest.cmake          |  3 +-
 26 files changed, 5 insertions(+), 295 deletions(-)
 delete mode 100644 Tests/UnitTests/Core/DataStructure/main.cpp
 delete mode 100644 Tests/UnitTests/Core/Detector/main.cpp
 delete mode 100644 Tests/UnitTests/Core/ExportToPython/main.cpp
 delete mode 100644 Tests/UnitTests/Core/Fresnel/main.cpp
 delete mode 100644 Tests/UnitTests/Core/Numeric0/main.cpp
 delete mode 100644 Tests/UnitTests/Core/Numeric1/main.cpp
 delete mode 100644 Tests/UnitTests/Core/Other/main.cpp
 delete mode 100644 Tests/UnitTests/Core/Parameters/main.cpp
 delete mode 100644 Tests/UnitTests/Core/Sample/main.cpp
 delete mode 100644 Tests/UnitTests/Fit/0/main.cpp
 rename Tests/UnitTests/Fit/{0 => FitKernel}/AttLimitsTest.h (100%)
 rename Tests/UnitTests/Fit/{0 => FitKernel}/FitObjectTest.h (100%)
 rename Tests/UnitTests/Fit/{0 => FitKernel}/FitParameterSetTest.h (100%)
 rename Tests/UnitTests/Fit/{0 => FitKernel}/FitParameterTest.h (100%)
 rename Tests/UnitTests/Fit/{0 => FitKernel}/FitSuiteTest.h (100%)
 rename Tests/UnitTests/Fit/{0 => FitKernel}/IFitParameterTest.h (100%)
 rename Tests/UnitTests/Fit/{0 => FitKernel}/MinimizerOptionsTest.h (100%)
 rename Tests/UnitTests/Fit/{0 => FitKernel}/MultiOptionTest.h (100%)
 rename Tests/UnitTests/Fit/{0 => FitKernel}/OptionContainerTest.h (100%)
 rename Tests/UnitTests/Fit/{0 => FitKernel}/RealLimitsTest.h (100%)
 rename Tests/UnitTests/Fit/{0 => FitKernel}/StringUtilsTest.h (100%)
 rename Tests/UnitTests/Fit/{0 => FitKernel}/testlist.h (100%)
 rename Tests/UnitTests/{Core/Axes/main.cpp => utilities/main_testlist.cpp} (61%)

diff --git a/Tests/UnitTests/CMakeLists.txt b/Tests/UnitTests/CMakeLists.txt
index 70be9b2fe4b..e85d0f800c0 100644
--- a/Tests/UnitTests/CMakeLists.txt
+++ b/Tests/UnitTests/CMakeLists.txt
@@ -12,6 +12,6 @@ if(UNITTESTS)
     endif()
 
     # to show directory in Qt creator project tree
-    FILE(GLOB_RECURSE UtilityFiles "utilities/*.h")
+    FILE(GLOB_RECURSE UtilityFiles "utilities/*.*")
     add_custom_target(UnitTestUtilities SOURCES ${UtilityFiles})
 endif()
diff --git a/Tests/UnitTests/Core/DataStructure/main.cpp b/Tests/UnitTests/Core/DataStructure/main.cpp
deleted file mode 100644
index a747eaaeff4..00000000000
--- a/Tests/UnitTests/Core/DataStructure/main.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifdef _MSC_VER
-#define _VARIADIC_MAX 10
-#endif
-
-#ifdef _WIN32
-#pragma warning ( push )
-#pragma warning ( disable: 4275 )
-#include <gtest/gtest.h>
-#pragma warning ( pop )
-#else
-#include <gtest/gtest.h>
-#endif
-
-#include "testlist.h"
-#include "ErrorStreamRedirect.h"
-
-int main(int argc, char** argv)
-{
-    ::testing::InitGoogleTest(&argc, argv);
-
-    // redirect std::cerr stream
-    std::stringstream oss;
-    ErrorStreamRedirect redirecter( oss.rdbuf() );
-    (void)redirecter;
-
-    // run all google tests
-    return RUN_ALL_TESTS();
-}
diff --git a/Tests/UnitTests/Core/Detector/main.cpp b/Tests/UnitTests/Core/Detector/main.cpp
deleted file mode 100644
index a747eaaeff4..00000000000
--- a/Tests/UnitTests/Core/Detector/main.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifdef _MSC_VER
-#define _VARIADIC_MAX 10
-#endif
-
-#ifdef _WIN32
-#pragma warning ( push )
-#pragma warning ( disable: 4275 )
-#include <gtest/gtest.h>
-#pragma warning ( pop )
-#else
-#include <gtest/gtest.h>
-#endif
-
-#include "testlist.h"
-#include "ErrorStreamRedirect.h"
-
-int main(int argc, char** argv)
-{
-    ::testing::InitGoogleTest(&argc, argv);
-
-    // redirect std::cerr stream
-    std::stringstream oss;
-    ErrorStreamRedirect redirecter( oss.rdbuf() );
-    (void)redirecter;
-
-    // run all google tests
-    return RUN_ALL_TESTS();
-}
diff --git a/Tests/UnitTests/Core/ExportToPython/main.cpp b/Tests/UnitTests/Core/ExportToPython/main.cpp
deleted file mode 100644
index a747eaaeff4..00000000000
--- a/Tests/UnitTests/Core/ExportToPython/main.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifdef _MSC_VER
-#define _VARIADIC_MAX 10
-#endif
-
-#ifdef _WIN32
-#pragma warning ( push )
-#pragma warning ( disable: 4275 )
-#include <gtest/gtest.h>
-#pragma warning ( pop )
-#else
-#include <gtest/gtest.h>
-#endif
-
-#include "testlist.h"
-#include "ErrorStreamRedirect.h"
-
-int main(int argc, char** argv)
-{
-    ::testing::InitGoogleTest(&argc, argv);
-
-    // redirect std::cerr stream
-    std::stringstream oss;
-    ErrorStreamRedirect redirecter( oss.rdbuf() );
-    (void)redirecter;
-
-    // run all google tests
-    return RUN_ALL_TESTS();
-}
diff --git a/Tests/UnitTests/Core/Fresnel/main.cpp b/Tests/UnitTests/Core/Fresnel/main.cpp
deleted file mode 100644
index a747eaaeff4..00000000000
--- a/Tests/UnitTests/Core/Fresnel/main.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifdef _MSC_VER
-#define _VARIADIC_MAX 10
-#endif
-
-#ifdef _WIN32
-#pragma warning ( push )
-#pragma warning ( disable: 4275 )
-#include <gtest/gtest.h>
-#pragma warning ( pop )
-#else
-#include <gtest/gtest.h>
-#endif
-
-#include "testlist.h"
-#include "ErrorStreamRedirect.h"
-
-int main(int argc, char** argv)
-{
-    ::testing::InitGoogleTest(&argc, argv);
-
-    // redirect std::cerr stream
-    std::stringstream oss;
-    ErrorStreamRedirect redirecter( oss.rdbuf() );
-    (void)redirecter;
-
-    // run all google tests
-    return RUN_ALL_TESTS();
-}
diff --git a/Tests/UnitTests/Core/Numeric0/main.cpp b/Tests/UnitTests/Core/Numeric0/main.cpp
deleted file mode 100644
index a747eaaeff4..00000000000
--- a/Tests/UnitTests/Core/Numeric0/main.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifdef _MSC_VER
-#define _VARIADIC_MAX 10
-#endif
-
-#ifdef _WIN32
-#pragma warning ( push )
-#pragma warning ( disable: 4275 )
-#include <gtest/gtest.h>
-#pragma warning ( pop )
-#else
-#include <gtest/gtest.h>
-#endif
-
-#include "testlist.h"
-#include "ErrorStreamRedirect.h"
-
-int main(int argc, char** argv)
-{
-    ::testing::InitGoogleTest(&argc, argv);
-
-    // redirect std::cerr stream
-    std::stringstream oss;
-    ErrorStreamRedirect redirecter( oss.rdbuf() );
-    (void)redirecter;
-
-    // run all google tests
-    return RUN_ALL_TESTS();
-}
diff --git a/Tests/UnitTests/Core/Numeric1/main.cpp b/Tests/UnitTests/Core/Numeric1/main.cpp
deleted file mode 100644
index a747eaaeff4..00000000000
--- a/Tests/UnitTests/Core/Numeric1/main.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifdef _MSC_VER
-#define _VARIADIC_MAX 10
-#endif
-
-#ifdef _WIN32
-#pragma warning ( push )
-#pragma warning ( disable: 4275 )
-#include <gtest/gtest.h>
-#pragma warning ( pop )
-#else
-#include <gtest/gtest.h>
-#endif
-
-#include "testlist.h"
-#include "ErrorStreamRedirect.h"
-
-int main(int argc, char** argv)
-{
-    ::testing::InitGoogleTest(&argc, argv);
-
-    // redirect std::cerr stream
-    std::stringstream oss;
-    ErrorStreamRedirect redirecter( oss.rdbuf() );
-    (void)redirecter;
-
-    // run all google tests
-    return RUN_ALL_TESTS();
-}
diff --git a/Tests/UnitTests/Core/Other/main.cpp b/Tests/UnitTests/Core/Other/main.cpp
deleted file mode 100644
index a747eaaeff4..00000000000
--- a/Tests/UnitTests/Core/Other/main.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifdef _MSC_VER
-#define _VARIADIC_MAX 10
-#endif
-
-#ifdef _WIN32
-#pragma warning ( push )
-#pragma warning ( disable: 4275 )
-#include <gtest/gtest.h>
-#pragma warning ( pop )
-#else
-#include <gtest/gtest.h>
-#endif
-
-#include "testlist.h"
-#include "ErrorStreamRedirect.h"
-
-int main(int argc, char** argv)
-{
-    ::testing::InitGoogleTest(&argc, argv);
-
-    // redirect std::cerr stream
-    std::stringstream oss;
-    ErrorStreamRedirect redirecter( oss.rdbuf() );
-    (void)redirecter;
-
-    // run all google tests
-    return RUN_ALL_TESTS();
-}
diff --git a/Tests/UnitTests/Core/Parameters/main.cpp b/Tests/UnitTests/Core/Parameters/main.cpp
deleted file mode 100644
index a747eaaeff4..00000000000
--- a/Tests/UnitTests/Core/Parameters/main.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifdef _MSC_VER
-#define _VARIADIC_MAX 10
-#endif
-
-#ifdef _WIN32
-#pragma warning ( push )
-#pragma warning ( disable: 4275 )
-#include <gtest/gtest.h>
-#pragma warning ( pop )
-#else
-#include <gtest/gtest.h>
-#endif
-
-#include "testlist.h"
-#include "ErrorStreamRedirect.h"
-
-int main(int argc, char** argv)
-{
-    ::testing::InitGoogleTest(&argc, argv);
-
-    // redirect std::cerr stream
-    std::stringstream oss;
-    ErrorStreamRedirect redirecter( oss.rdbuf() );
-    (void)redirecter;
-
-    // run all google tests
-    return RUN_ALL_TESTS();
-}
diff --git a/Tests/UnitTests/Core/Sample/main.cpp b/Tests/UnitTests/Core/Sample/main.cpp
deleted file mode 100644
index a747eaaeff4..00000000000
--- a/Tests/UnitTests/Core/Sample/main.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifdef _MSC_VER
-#define _VARIADIC_MAX 10
-#endif
-
-#ifdef _WIN32
-#pragma warning ( push )
-#pragma warning ( disable: 4275 )
-#include <gtest/gtest.h>
-#pragma warning ( pop )
-#else
-#include <gtest/gtest.h>
-#endif
-
-#include "testlist.h"
-#include "ErrorStreamRedirect.h"
-
-int main(int argc, char** argv)
-{
-    ::testing::InitGoogleTest(&argc, argv);
-
-    // redirect std::cerr stream
-    std::stringstream oss;
-    ErrorStreamRedirect redirecter( oss.rdbuf() );
-    (void)redirecter;
-
-    // run all google tests
-    return RUN_ALL_TESTS();
-}
diff --git a/Tests/UnitTests/Fit/0/main.cpp b/Tests/UnitTests/Fit/0/main.cpp
deleted file mode 100644
index a747eaaeff4..00000000000
--- a/Tests/UnitTests/Fit/0/main.cpp
+++ /dev/null
@@ -1,28 +0,0 @@
-#ifdef _MSC_VER
-#define _VARIADIC_MAX 10
-#endif
-
-#ifdef _WIN32
-#pragma warning ( push )
-#pragma warning ( disable: 4275 )
-#include <gtest/gtest.h>
-#pragma warning ( pop )
-#else
-#include <gtest/gtest.h>
-#endif
-
-#include "testlist.h"
-#include "ErrorStreamRedirect.h"
-
-int main(int argc, char** argv)
-{
-    ::testing::InitGoogleTest(&argc, argv);
-
-    // redirect std::cerr stream
-    std::stringstream oss;
-    ErrorStreamRedirect redirecter( oss.rdbuf() );
-    (void)redirecter;
-
-    // run all google tests
-    return RUN_ALL_TESTS();
-}
diff --git a/Tests/UnitTests/Fit/CMakeLists.txt b/Tests/UnitTests/Fit/CMakeLists.txt
index 0533f7fc769..fe4782c9f87 100644
--- a/Tests/UnitTests/Fit/CMakeLists.txt
+++ b/Tests/UnitTests/Fit/CMakeLists.txt
@@ -21,5 +21,5 @@ endif()
 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DGTEST_LINKED_AS_SHARED_LIBRARY=1")
 
 set(libs BornAgainCore BornAgainFit)
-ADD_GTEST(Fit "0" "${libs}" 0)
+ADD_GTEST(Fit "FitKernel" "${libs}" 0)
 
diff --git a/Tests/UnitTests/Fit/0/AttLimitsTest.h b/Tests/UnitTests/Fit/FitKernel/AttLimitsTest.h
similarity index 100%
rename from Tests/UnitTests/Fit/0/AttLimitsTest.h
rename to Tests/UnitTests/Fit/FitKernel/AttLimitsTest.h
diff --git a/Tests/UnitTests/Fit/0/FitObjectTest.h b/Tests/UnitTests/Fit/FitKernel/FitObjectTest.h
similarity index 100%
rename from Tests/UnitTests/Fit/0/FitObjectTest.h
rename to Tests/UnitTests/Fit/FitKernel/FitObjectTest.h
diff --git a/Tests/UnitTests/Fit/0/FitParameterSetTest.h b/Tests/UnitTests/Fit/FitKernel/FitParameterSetTest.h
similarity index 100%
rename from Tests/UnitTests/Fit/0/FitParameterSetTest.h
rename to Tests/UnitTests/Fit/FitKernel/FitParameterSetTest.h
diff --git a/Tests/UnitTests/Fit/0/FitParameterTest.h b/Tests/UnitTests/Fit/FitKernel/FitParameterTest.h
similarity index 100%
rename from Tests/UnitTests/Fit/0/FitParameterTest.h
rename to Tests/UnitTests/Fit/FitKernel/FitParameterTest.h
diff --git a/Tests/UnitTests/Fit/0/FitSuiteTest.h b/Tests/UnitTests/Fit/FitKernel/FitSuiteTest.h
similarity index 100%
rename from Tests/UnitTests/Fit/0/FitSuiteTest.h
rename to Tests/UnitTests/Fit/FitKernel/FitSuiteTest.h
diff --git a/Tests/UnitTests/Fit/0/IFitParameterTest.h b/Tests/UnitTests/Fit/FitKernel/IFitParameterTest.h
similarity index 100%
rename from Tests/UnitTests/Fit/0/IFitParameterTest.h
rename to Tests/UnitTests/Fit/FitKernel/IFitParameterTest.h
diff --git a/Tests/UnitTests/Fit/0/MinimizerOptionsTest.h b/Tests/UnitTests/Fit/FitKernel/MinimizerOptionsTest.h
similarity index 100%
rename from Tests/UnitTests/Fit/0/MinimizerOptionsTest.h
rename to Tests/UnitTests/Fit/FitKernel/MinimizerOptionsTest.h
diff --git a/Tests/UnitTests/Fit/0/MultiOptionTest.h b/Tests/UnitTests/Fit/FitKernel/MultiOptionTest.h
similarity index 100%
rename from Tests/UnitTests/Fit/0/MultiOptionTest.h
rename to Tests/UnitTests/Fit/FitKernel/MultiOptionTest.h
diff --git a/Tests/UnitTests/Fit/0/OptionContainerTest.h b/Tests/UnitTests/Fit/FitKernel/OptionContainerTest.h
similarity index 100%
rename from Tests/UnitTests/Fit/0/OptionContainerTest.h
rename to Tests/UnitTests/Fit/FitKernel/OptionContainerTest.h
diff --git a/Tests/UnitTests/Fit/0/RealLimitsTest.h b/Tests/UnitTests/Fit/FitKernel/RealLimitsTest.h
similarity index 100%
rename from Tests/UnitTests/Fit/0/RealLimitsTest.h
rename to Tests/UnitTests/Fit/FitKernel/RealLimitsTest.h
diff --git a/Tests/UnitTests/Fit/0/StringUtilsTest.h b/Tests/UnitTests/Fit/FitKernel/StringUtilsTest.h
similarity index 100%
rename from Tests/UnitTests/Fit/0/StringUtilsTest.h
rename to Tests/UnitTests/Fit/FitKernel/StringUtilsTest.h
diff --git a/Tests/UnitTests/Fit/0/testlist.h b/Tests/UnitTests/Fit/FitKernel/testlist.h
similarity index 100%
rename from Tests/UnitTests/Fit/0/testlist.h
rename to Tests/UnitTests/Fit/FitKernel/testlist.h
diff --git a/Tests/UnitTests/Core/Axes/main.cpp b/Tests/UnitTests/utilities/main_testlist.cpp
similarity index 61%
rename from Tests/UnitTests/Core/Axes/main.cpp
rename to Tests/UnitTests/utilities/main_testlist.cpp
index a747eaaeff4..83146bac0eb 100644
--- a/Tests/UnitTests/Core/Axes/main.cpp
+++ b/Tests/UnitTests/utilities/main_testlist.cpp
@@ -1,15 +1,4 @@
-#ifdef _MSC_VER
-#define _VARIADIC_MAX 10
-#endif
-
-#ifdef _WIN32
-#pragma warning ( push )
-#pragma warning ( disable: 4275 )
-#include <gtest/gtest.h>
-#pragma warning ( pop )
-#else
-#include <gtest/gtest.h>
-#endif
+#include "google_test.h"
 
 #include "testlist.h"
 #include "ErrorStreamRedirect.h"
diff --git a/cmake/generic/modules/AddGTest.cmake b/cmake/generic/modules/AddGTest.cmake
index ae2cd11fa28..155c3327385 100644
--- a/cmake/generic/modules/AddGTest.cmake
+++ b/cmake/generic/modules/AddGTest.cmake
@@ -22,7 +22,8 @@ MACRO(ADD_GTEST project subdir libs stage)
     set(TEST_NAME ${project}UnitTest${subdir})
     set(EXE ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${TEST_NAME})
     file(GLOB include_files ${subdir}/*.h)
-    add_executable(${TEST_NAME} ${subdir}/main.cpp ${include_files})
+    include_directories(${subdir})
+    add_executable(${TEST_NAME} ${subdir}/../../utilities/main_testlist.cpp ${include_files})
     target_link_libraries(${TEST_NAME} gtest ${libs})
     if    (${stage} EQUAL 0)
         # Execute test just after compilation
-- 
GitLab