From c54ac6600c95c17d24fc4f39560d7c2655301654 Mon Sep 17 00:00:00 2001
From: Soeren Peters <peters@irmb.tu-bs.de>
Date: Thu, 11 Mar 2021 11:45:43 +0000
Subject: [PATCH] Add ctest to this project and run ctest in CI.

---
 .gitlab-ci.yml                  |  6 +++---
 CMake/VirtualFluidsMacros.cmake |  3 +++
 CMakeLists.txt                  | 17 ++++++++---------
 gpu.cmake                       |  4 ++++
 src/lbm/CalcMacTests.cpp        |  4 ++--
 5 files changed, 20 insertions(+), 14 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index f274d315a..c797e7d1f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -192,10 +192,10 @@ gcc_9_unit_tests:
   needs: ["gcc_9"]
 
   before_script:
-    - export VF_UNITTESTS=$(find build_gcc9 -name basicsTests)
+    - cd $CI_PROJECT_DIR/build
 
   script:
-    - $VF_UNITTESTS
+    - ctest
 
 ###############################################################################
 msvc_16_unit_tests:
@@ -211,7 +211,7 @@ msvc_16_unit_tests:
     - cd $CI_PROJECT_DIR/build
 
   script:
-    - .\bin\Release\basicsTests.exe
+    - ctest
 
 ###############################################################################
 gcc_9_python_bindings_test:
diff --git a/CMake/VirtualFluidsMacros.cmake b/CMake/VirtualFluidsMacros.cmake
index 62388cdf3..dfef8f984 100644
--- a/CMake/VirtualFluidsMacros.cmake
+++ b/CMake/VirtualFluidsMacros.cmake
@@ -286,6 +286,9 @@ function(vf_add_tests)
     # link googlemock
     linkGMOCK()
 
+    # add the target to ctest
+    gtest_add_tests(TARGET ${library_test_name})
+
 endfunction()
 
 #################################################################################
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d3e51f8dc..e3e0ea5a9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -79,6 +79,12 @@ ENDIF()
 #################################################################################
 #  COMMON LIBRARIES
 #################################################################################
+if(BUILD_VF_UNIT_TESTS)
+    add_subdirectory(${VF_THIRD_DIR}/googletest)
+    include(GoogleTest)
+    enable_testing()
+endif()
+
 if(BUILD_USE_OPENMP)
     find_package(OpenMP REQUIRED)
 endif()
@@ -90,6 +96,8 @@ add_subdirectory(src/basics)
 add_subdirectory(src/lbm)
 add_subdirectory(src/lbmApp)
 
+
+
 #################################################################################
 #  VIRTUAL FLUIDS CPU / GPU
 #################################################################################
@@ -124,12 +132,3 @@ if(BUILD_VF_GPU)
 
     include (gpu.cmake)
 endif()
-
-#################################################################################
-#  3rd Party Libraries
-#################################################################################
-if(BUILD_VF_UNIT_TESTS)
-    if(NOT BUILD_NUMERIC_TESTS) # in this case googletest is already included.
-        add_subdirectory(${VF_THIRD_DIR}/googletest)
-    endif()
-endif()
diff --git a/gpu.cmake b/gpu.cmake
index 6bdff5205..3eb34b8fe 100644
--- a/gpu.cmake
+++ b/gpu.cmake
@@ -120,6 +120,10 @@ if(BUILD_NUMERIC_TESTS)
         LIST(APPEND VF_COMPILER_DEFINITION "PATH_NUMERICAL_TESTS=${PATH_NUMERICAL_TESTS}")
     endif()
 
+    if(NOT BUILD_VF_UNIT_TESTS) # in this case googletest is already included.
+        add_subdirectory(${VF_THIRD_DIR}/googletest)
+    endif()
+
     add_subdirectory(3rdParty/fftw/fftw-3.3.7)
     add_subdirectory(3rdParty/googletest)
     add_subdirectory(apps/gpu/tests/NumericalTests)
diff --git a/src/lbm/CalcMacTests.cpp b/src/lbm/CalcMacTests.cpp
index eeaeb993e..0bead1fef 100644
--- a/src/lbm/CalcMacTests.cpp
+++ b/src/lbm/CalcMacTests.cpp
@@ -2,11 +2,11 @@
 
 #include "CalcMac.h"
 
-TEST(AAA,BBB)
+TEST(CalcMacTest, calcDensity)
 {
     real f[27] = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1};
 
     double density = LBM::getDensity(f);
 
-    ASSERT_THAT(density, testing::DoubleEq(1));
+    ASSERT_THAT(density, testing::DoubleEq(27));
 }
\ No newline at end of file
-- 
GitLab