From fa82f5ad9b3e00a892393749e8cd4ae216b89413 Mon Sep 17 00:00:00 2001 From: Florian Goth Date: Fri, 4 Dec 2020 02:47:13 +0100 Subject: [PATCH 01/10] first try at a component testsuite --- .gitlab-ci.yml | 38 +++++++++++++++++++++++ CMakeLists.txt | 4 +-- testsuite/CMakeLists.txt | 6 ++++ testsuite/components/1-cachecontainer.cpp | 20 ++++++++++++ testsuite/components/CMakeLists.txt | 11 +++++++ 5 files changed, 77 insertions(+), 2 deletions(-) create mode 100644 testsuite/CMakeLists.txt create mode 100644 testsuite/components/1-cachecontainer.cpp create mode 100644 testsuite/components/CMakeLists.txt diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a4f5d01..b5568fe 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -88,6 +88,44 @@ marqov_Buster_pgi: - cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER="/opt/pgi/linux86-64/2019/bin/pgc++" .. - make MARQOV VERBOSE=1 +MARQOVtest_Ubuntu_bionic: + image: git.physik.uni-wuerzburg.de:25812/z03/pdi/ubuntu:bionic-beaver-gfortran-lapack + <<: *test_definition + +MARQOVtest_Stretch: + image: git.physik.uni-wuerzburg.de:25812/z03/pdi/debian:stretch-gfortran-blas-lapack + <<: *test_definition + +MARQOVtest_Buster: + image: git.physik.uni-wuerzburg.de:25812/z03/pdi/debian:buster-gfortran-blas-lapack + <<: *test_definition + +marqovtest_Buster_clang: + image: git.physik.uni-wuerzburg.de:25812/z03/pdi/debian:buster-clang + stage: test + <<: *src_except_definition + script: + - apt-get update && apt-get install -y libhdf5-dev + - cmake -E make_directory build + - cd build + - cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER=clang++ .. + - cmake --build . --target all --config Release + - ctest -O log.txt + - cat log.txt | grep "tests passed" | cut -d " " -f 1 + +marqovtest_Buster_pgi: + image: git.physik.uni-wuerzburg.de:25812/z03/pdi/debian:buster-pgi1910-cmake + stage: build + <<: *src_except_definition + script: + - apt-get update && apt-get install -y libhdf5-dev + - cmake -E make_directory build + - cd build + - cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER="/opt/pgi/linux86-64/2019/bin/pgc++" .. + - cmake --build . --target all --config Release + - ctest -O log.txt + - cat log.txt | grep "tests passed" | cut -d " " -f 1 + marqov_create_doc: image: aergus/latex stage: build diff --git a/CMakeLists.txt b/CMakeLists.txt index 8362950..060311b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,5 +19,5 @@ endif() add_subdirectory(src) -#add_subdirectory(testsuite) -#enable_testing() +add_subdirectory(testsuite) +enable_testing() diff --git a/testsuite/CMakeLists.txt b/testsuite/CMakeLists.txt new file mode 100644 index 0000000..3ef4fb6 --- /dev/null +++ b/testsuite/CMakeLists.txt @@ -0,0 +1,6 @@ +cmake_minimum_required(VERSION 3.0.0) +Project(MARQOV.tests CXX) + +add_subdirectory(components) +# add_subdirectory(systems) +enable_testing() diff --git a/testsuite/components/1-cachecontainer.cpp b/testsuite/components/1-cachecontainer.cpp new file mode 100644 index 0000000..1e25332 --- /dev/null +++ b/testsuite/components/1-cachecontainer.cpp @@ -0,0 +1,20 @@ +#include +#include "cachecontainer.h" + +using namespace std; + +int main() +{ + { + std::string filename("test.h5"); + auto flag = H5F_ACC_TRUNC; + H5::H5File retval(filename, flag); + CacheContainer testcont(retval, "testobs", "a test description"); + CacheContainer testint(retval, "testint", "a test int description"); + for (uint i = 0; i < 2000000; ++i) + { + testcont<<42.0; + testint<<42; + } + } +} diff --git a/testsuite/components/CMakeLists.txt b/testsuite/components/CMakeLists.txt new file mode 100644 index 0000000..a4efd1a --- /dev/null +++ b/testsuite/components/CMakeLists.txt @@ -0,0 +1,11 @@ +cmake_minimum_required(VERSION 3.0.0) +Project(components.tests CXX) +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +find_package(HDF5 COMPONENTS CXX) + +add_executable(1-cachecontainer 1-cachecontainer.cpp) +target_link_libraries(1-cachecontainer ${HDF5_LIBRARIES}) +target_include_directories(1-cachecontainer PUBLIC ${CMAKE_SOURCE_DIR}/src) +enable_testing() +add_test(1-cachecontainer 1-cachecontainer) -- GitLab From 4321a727500182d9dd426f557a749681f76299a0 Mon Sep 17 00:00:00 2001 From: Florian Goth Date: Fri, 4 Dec 2020 03:36:20 +0100 Subject: [PATCH 02/10] fix test for PGI --- .gitlab-ci.yml | 2 +- testsuite/components/CMakeLists.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index b5568fe..30c5b3b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -115,7 +115,7 @@ marqovtest_Buster_clang: marqovtest_Buster_pgi: image: git.physik.uni-wuerzburg.de:25812/z03/pdi/debian:buster-pgi1910-cmake - stage: build + stage: test <<: *src_except_definition script: - apt-get update && apt-get install -y libhdf5-dev diff --git a/testsuite/components/CMakeLists.txt b/testsuite/components/CMakeLists.txt index a4efd1a..ee9f217 100644 --- a/testsuite/components/CMakeLists.txt +++ b/testsuite/components/CMakeLists.txt @@ -6,6 +6,6 @@ find_package(HDF5 COMPONENTS CXX) add_executable(1-cachecontainer 1-cachecontainer.cpp) target_link_libraries(1-cachecontainer ${HDF5_LIBRARIES}) -target_include_directories(1-cachecontainer PUBLIC ${CMAKE_SOURCE_DIR}/src) +target_include_directories(1-cachecontainer PUBLIC ${CMAKE_SOURCE_DIR}/src ${HDF5_INCLUDE_DIRS}) enable_testing() add_test(1-cachecontainer 1-cachecontainer) -- GitLab From c2bcb1d93049228a8400936fd78d4cf17a113cda Mon Sep 17 00:00:00 2001 From: Florian Goth Date: Wed, 19 May 2021 22:16:18 +0200 Subject: [PATCH 03/10] attempt fix --- testsuite/components/CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testsuite/components/CMakeLists.txt b/testsuite/components/CMakeLists.txt index ee9f217..6b10fb4 100644 --- a/testsuite/components/CMakeLists.txt +++ b/testsuite/components/CMakeLists.txt @@ -5,7 +5,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(HDF5 COMPONENTS CXX) add_executable(1-cachecontainer 1-cachecontainer.cpp) -target_link_libraries(1-cachecontainer ${HDF5_LIBRARIES}) -target_include_directories(1-cachecontainer PUBLIC ${CMAKE_SOURCE_DIR}/src ${HDF5_INCLUDE_DIRS}) +target_link_libraries(1-cachecontainer ${MYHDF5LIBS}) +target_include_directories(1-cachecontainer PUBLIC ${CMAKE_SOURCE_DIR}/src ${MYHDF5INCLUDES}) enable_testing() add_test(1-cachecontainer 1-cachecontainer) -- GitLab From 54e54fc63deb045f51a713d2a8b0f1ba4604309d Mon Sep 17 00:00:00 2001 From: Florian Goth Date: Fri, 16 Jul 2021 19:33:48 +0200 Subject: [PATCH 04/10] more cachecontainer tests --- .../2-cachecontainer-long-sim.cpp} | 0 .../3-cachecontainer-long-obs.cpp} | 0 testsuite/components/CMakeLists.txt | 2 ++ 3 files changed, 2 insertions(+) rename testsuite/{1-cachecontainer.cpp => components/2-cachecontainer-long-sim.cpp} (100%) rename testsuite/{2-cachecontainer.cpp => components/3-cachecontainer-long-obs.cpp} (100%) diff --git a/testsuite/1-cachecontainer.cpp b/testsuite/components/2-cachecontainer-long-sim.cpp similarity index 100% rename from testsuite/1-cachecontainer.cpp rename to testsuite/components/2-cachecontainer-long-sim.cpp diff --git a/testsuite/2-cachecontainer.cpp b/testsuite/components/3-cachecontainer-long-obs.cpp similarity index 100% rename from testsuite/2-cachecontainer.cpp rename to testsuite/components/3-cachecontainer-long-obs.cpp diff --git a/testsuite/components/CMakeLists.txt b/testsuite/components/CMakeLists.txt index 6b10fb4..d6283cb 100644 --- a/testsuite/components/CMakeLists.txt +++ b/testsuite/components/CMakeLists.txt @@ -5,6 +5,8 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) find_package(HDF5 COMPONENTS CXX) add_executable(1-cachecontainer 1-cachecontainer.cpp) +add_executable(2-cachecontainer-long-sim 1-cachecontainer-long-sim.cpp) +add_executable(3-cachecontainer-long-obs 1-cachecontainer-long-obs.cpp) target_link_libraries(1-cachecontainer ${MYHDF5LIBS}) target_include_directories(1-cachecontainer PUBLIC ${CMAKE_SOURCE_DIR}/src ${MYHDF5INCLUDES}) enable_testing() -- GitLab From 8eb92b1d3dfdb45414bd6cbc5676c49147a2987f Mon Sep 17 00:00:00 2001 From: Florian Goth Date: Fri, 16 Jul 2021 20:27:05 +0200 Subject: [PATCH 05/10] fix ups --- src/libmarqov/CMakeLists.txt | 2 +- testsuite/components/CMakeLists.txt | 18 +++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/src/libmarqov/CMakeLists.txt b/src/libmarqov/CMakeLists.txt index 81959a2..ce25bb5 100644 --- a/src/libmarqov/CMakeLists.txt +++ b/src/libmarqov/CMakeLists.txt @@ -40,7 +40,7 @@ if( (NOT HDF5_FOUND) ) endif() set(MYHDF5INCLUDES ${HDF5_INCLUDE_DIR} ${libhdf5_BINARY_DIR}) - set(MYHDF5LIBS hdf5_cpp-static) + set(MYHDF5LIBS hdf5_cpp-static) else() message(FATAL_ERROR "HDF5 not found and environment(cmake < 3.12) unsuited for automatic retrieval!") endif() diff --git a/testsuite/components/CMakeLists.txt b/testsuite/components/CMakeLists.txt index d6283cb..07b88db 100644 --- a/testsuite/components/CMakeLists.txt +++ b/testsuite/components/CMakeLists.txt @@ -2,12 +2,20 @@ cmake_minimum_required(VERSION 3.0.0) Project(components.tests CXX) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED ON) -find_package(HDF5 COMPONENTS CXX) add_executable(1-cachecontainer 1-cachecontainer.cpp) -add_executable(2-cachecontainer-long-sim 1-cachecontainer-long-sim.cpp) -add_executable(3-cachecontainer-long-obs 1-cachecontainer-long-obs.cpp) -target_link_libraries(1-cachecontainer ${MYHDF5LIBS}) -target_include_directories(1-cachecontainer PUBLIC ${CMAKE_SOURCE_DIR}/src ${MYHDF5INCLUDES}) +add_executable(2-cachecontainer-long-sim 2-cachecontainer-long-sim.cpp) +add_executable(3-cachecontainer-long-obs 3-cachecontainer-long-obs.cpp) +target_link_libraries(1-cachecontainer libmarqov) +target_include_directories(1-cachecontainer PUBLIC ${CMAKE_SOURCE_DIR}/src/libmarqov) + +target_link_libraries(2-cachecontainer-long-sim libmarqov) +target_include_directories(2-cachecontainer-long-sim PUBLIC ${CMAKE_SOURCE_DIR}/src/libmarqov) + +target_link_libraries(3-cachecontainer-long-obs libmarqov) +target_include_directories(3-cachecontainer-long-obs PUBLIC ${CMAKE_SOURCE_DIR}/src/libmarqov) + enable_testing() add_test(1-cachecontainer 1-cachecontainer) +add_test(2-cachecontainer-long-sim 2-cachecontainer-long-sim) +add_test(3-cachecontainer-long-obs 3-cachecontainer-long-obs) -- GitLab From 0fcb0dc66be3a1cd055c94ecaa368b4e2ac6563d Mon Sep 17 00:00:00 2001 From: Florian Goth Date: Fri, 16 Jul 2021 20:54:20 +0200 Subject: [PATCH 06/10] fix up pipeline --- .gitlab-ci.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0ed066f..f108924 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -141,16 +141,12 @@ marqov_Buster_pgi: - cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_CXX_COMPILER="/opt/pgi/linux86-64/2019/bin/pgc++" .. - make MARQOV VERBOSE=1 -MARQOVtest_Ubuntu_bionic: - image: git.physik.uni-wuerzburg.de:25812/z03/pdi/ubuntu:bionic-beaver-gfortran-lapack - <<: *test_definition - MARQOVtest_Stretch: - image: git.physik.uni-wuerzburg.de:25812/z03/pdi/debian:stretch-gfortran-blas-lapack + image: git.physik.uni-wuerzburg.de:25812/z03/pdi/debian:stretch-gxx <<: *test_definition MARQOVtest_Buster: - image: git.physik.uni-wuerzburg.de:25812/z03/pdi/debian:buster-gfortran-blas-lapack + image: git.physik.uni-wuerzburg.de:25812/z03/pdi/debian:buster-gxx <<: *test_definition marqovtest_Buster_clang: -- GitLab From dee406adf51687daf5d6dfdb40aea4cfbcedd75f Mon Sep 17 00:00:00 2001 From: Florian Goth Date: Fri, 16 Jul 2021 21:15:23 +0200 Subject: [PATCH 07/10] make sure we have HDF5 for the tests. --- .gitlab-ci.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index f108924..40e2c48 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -38,6 +38,7 @@ stages: stage: test <<: *src_except_definition script: + - apt-get update && apt-get install -y cmake libhdf5-dev - cmake -E make_directory build - cd build - cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=RELEASE .. -- GitLab From b3210f7e0ec2defe7047e6c7a2923a0f68aff1da Mon Sep 17 00:00:00 2001 From: Florian Goth Date: Fri, 16 Jul 2021 21:50:20 +0200 Subject: [PATCH 08/10] bugfix test --- testsuite/components/1-cachecontainer.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/testsuite/components/1-cachecontainer.cpp b/testsuite/components/1-cachecontainer.cpp index 1e25332..35e10dc 100644 --- a/testsuite/components/1-cachecontainer.cpp +++ b/testsuite/components/1-cachecontainer.cpp @@ -9,8 +9,11 @@ int main() std::string filename("test.h5"); auto flag = H5F_ACC_TRUNC; H5::H5File retval(filename, flag); - CacheContainer testcont(retval, "testobs", "a test description"); - CacheContainer testint(retval, "testint", "a test int description"); + H5::Group obs1(file.createGroup("obs1")); + H5::Group obs2(file.createGroup("obs1")); + + CacheContainer testcont(obs1, "testobs", "a test description"); + CacheContainer testint(obs2, "testint", "a test int description"); for (uint i = 0; i < 2000000; ++i) { testcont<<42.0; -- GitLab From 05315171592abc880115da656b73904dfadabfcd Mon Sep 17 00:00:00 2001 From: Florian Goth Date: Sat, 17 Jul 2021 00:39:55 +0200 Subject: [PATCH 09/10] bugfix to bugfix --- testsuite/components/1-cachecontainer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testsuite/components/1-cachecontainer.cpp b/testsuite/components/1-cachecontainer.cpp index 35e10dc..025902c 100644 --- a/testsuite/components/1-cachecontainer.cpp +++ b/testsuite/components/1-cachecontainer.cpp @@ -8,7 +8,7 @@ int main() { std::string filename("test.h5"); auto flag = H5F_ACC_TRUNC; - H5::H5File retval(filename, flag); + H5::H5File file(filename, flag); H5::Group obs1(file.createGroup("obs1")); H5::Group obs2(file.createGroup("obs1")); -- GitLab From 721e16ecd603cd84354b001b5f8381ff914c672a Mon Sep 17 00:00:00 2001 From: Florian Goth Date: Sat, 17 Jul 2021 17:58:53 +0200 Subject: [PATCH 10/10] bugfix to bugfix to bugfix --- testsuite/components/1-cachecontainer.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/testsuite/components/1-cachecontainer.cpp b/testsuite/components/1-cachecontainer.cpp index 025902c..c5ec9ab 100644 --- a/testsuite/components/1-cachecontainer.cpp +++ b/testsuite/components/1-cachecontainer.cpp @@ -10,7 +10,7 @@ int main() auto flag = H5F_ACC_TRUNC; H5::H5File file(filename, flag); H5::Group obs1(file.createGroup("obs1")); - H5::Group obs2(file.createGroup("obs1")); + H5::Group obs2(file.createGroup("obs2")); CacheContainer testcont(obs1, "testobs", "a test description"); CacheContainer testint(obs2, "testint", "a test int description"); -- GitLab