From ff3e88e024c4bc44e979c865b30cc40565644dc0 Mon Sep 17 00:00:00 2001 From: Christopher Lackner Date: Thu, 22 Aug 2019 10:17:57 +0200 Subject: [PATCH 1/4] enable catch unit tests --- .gitlab-ci.yml | 1 + tests/build_debug.sh | 2 +- tests/build_mpi.sh | 2 +- tests/catch/CMakeLists.txt | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 37b88647..9b527376 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -40,6 +40,7 @@ build_win: -DCMAKE_INSTALL_PREFIX=%INSTALL_DIR% -DUSE_OCC=ON -DUSE_CCACHE=ON + -DENABLE_UNIT_TESTS=ON -DCMAKE_BUILD_TYPE=Release - cmake --build . --target install --config Release diff --git a/tests/build_debug.sh b/tests/build_debug.sh index 5f9d68e5..c69af43c 100755 --- a/tests/build_debug.sh +++ b/tests/build_debug.sh @@ -1,6 +1,6 @@ cd mkdir -p build/netgen cd build/netgen -cmake ../../src/netgen -DUSE_CCACHE=ON -DBUILD_TYPE=DEBUG +cmake ../../src/netgen -DUSE_CCACHE=ON -DBUILD_TYPE=DEBUG -DENABLE_UNIT_TESTS=ON make -j12 make install diff --git a/tests/build_mpi.sh b/tests/build_mpi.sh index 464bb395..190423ac 100644 --- a/tests/build_mpi.sh +++ b/tests/build_mpi.sh @@ -1,6 +1,6 @@ cd mkdir -p build/netgen cd build/netgen -cmake ../../src/netgen -DUSE_CCACHE=ON -DUSE_MPI=ON +cmake ../../src/netgen -DUSE_CCACHE=ON -DUSE_MPI=ON -DENABLE_UNIT_TESTS=ON make -j12 make install diff --git a/tests/catch/CMakeLists.txt b/tests/catch/CMakeLists.txt index 29f234ff..f3d12fcf 100644 --- a/tests/catch/CMakeLists.txt +++ b/tests/catch/CMakeLists.txt @@ -14,7 +14,7 @@ add_test(NAME unit_tests_built COMMAND ${CMAKE_COMMAND} --build . --target unit_ macro(add_unit_test name sources) add_executable(test_${name} ${sources} ) - target_link_libraries(test_${name} ngcore catch_main ${PYTHON_LIBRARIES}) + target_link_libraries(test_${name} ngcore catch_main mesh ${PYTHON_LIBRARIES}) add_dependencies(unit_tests test_${name}) add_test(NAME unit_${name} COMMAND test_${name}) From 878d68fd778fbc91b17d324ec50d550a28cab500 Mon Sep 17 00:00:00 2001 From: Christopher Lackner Date: Thu, 22 Aug 2019 10:29:42 +0200 Subject: [PATCH 2/4] link nglib and not mesh for windows --- tests/catch/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/catch/CMakeLists.txt b/tests/catch/CMakeLists.txt index f3d12fcf..c3a6525d 100644 --- a/tests/catch/CMakeLists.txt +++ b/tests/catch/CMakeLists.txt @@ -14,7 +14,7 @@ add_test(NAME unit_tests_built COMMAND ${CMAKE_COMMAND} --build . --target unit_ macro(add_unit_test name sources) add_executable(test_${name} ${sources} ) - target_link_libraries(test_${name} ngcore catch_main mesh ${PYTHON_LIBRARIES}) + target_link_libraries(test_${name} ngcore catch_main nglib ${PYTHON_LIBRARIES}) add_dependencies(unit_tests test_${name}) add_test(NAME unit_${name} COMMAND test_${name}) From 787e3870e1338e4ff4f5162c6b0dd0b47721f0bd Mon Sep 17 00:00:00 2001 From: Matthias Hochsteger Date: Thu, 22 Aug 2019 12:57:36 +0200 Subject: [PATCH 3/4] Fix unit tests (long is 32bit on Windows!!) --- tests/catch/utils.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/catch/utils.cpp b/tests/catch/utils.cpp index 4258b5b9..b5863510 100644 --- a/tests/catch/utils.cpp +++ b/tests/catch/utils.cpp @@ -5,9 +5,9 @@ using namespace ngcore; using namespace std; -long shuffle(long N, long i) { +uint64_t shuffle(uint64_t N, uint64_t i) { // Shuffle the numbers using multiplication with a prime number to force many updates of min, max - constexpr long P = 101; + constexpr uint64_t P = 101; return (N/2 + i*P) % N; } @@ -16,29 +16,29 @@ void testThreading(int n_threads) TaskManager::SetNumThreads(n_threads); n_threads = EnterTaskManager(); - constexpr long N = 100000; + constexpr uint64_t N = 100000; SECTION( "atomic operations" ) { - long i_min = 2*N; - long i_max = 0; - long i_sum = 0; + uint64_t i_min = 2*N; + uint64_t i_max = 0; + uint64_t i_sum = 0; double d_min = 1e100; double d_max = 0.0; double d_sum = 0.0; - ParallelFor( Range(N), [&] (long i) { + ParallelFor( Range(N), [&] (uint64_t i) { AtomicMin(i_min, shuffle(N,i)); }); REQUIRE( i_min==0 ); - ParallelFor( Range(N), [&] (long i) { + ParallelFor( Range(N), [&] (uint64_t i) { AtomicMax(i_max, shuffle(N,i)); }); REQUIRE( i_max==N-1 ); - ParallelFor( Range(N), [&] (long i) { + ParallelFor( Range(N), [&] (uint64_t i) { AsAtomic(i_sum) += i; }); REQUIRE( i_sum==N*(N-1)/2 ); From 8e19e74ef5676ee7b0dacb8fa1eff9eb8429f7e3 Mon Sep 17 00:00:00 2001 From: Matthias Hochsteger Date: Thu, 22 Aug 2019 14:15:43 +0200 Subject: [PATCH 4/4] Set PATH for Windows builds/tests --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9b527376..9d3dcc44 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -22,6 +22,7 @@ stages: - set SRC_DIR=%CI_DIR%\src - set NETGENDIR=%INSTALL_DIR%\bin - set PYTHONPATH=%INSTALL_DIR%\lib\site-packages + - set PATH=%NETGENDIR%;%PATH% build_win: <<: *win