From d807531b6a88f14b87e375e576c78dfc1473d018 Mon Sep 17 00:00:00 2001 From: Daniel <d.hornung@indiscale.com> Date: Wed, 4 Aug 2021 16:32:50 +0200 Subject: [PATCH] ENH: Unit test infrastructure works, at least locally. --- CMakeLists.txt | 21 ++++++++++----------- src/lib/maoxdb.cpp | 1 + src/lib/maoxdb.hpp | 1 - src/lib/test.cpp | 12 ------------ src/private/maox_caosdb.cpp | 1 - src/private/maox_info.cpp | 1 - test/Makefile | 12 +++++++++--- test/test_utilities.cpp | 4 ++-- 8 files changed, 22 insertions(+), 31 deletions(-) delete mode 100644 src/lib/test.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 7d3cbe4..7d81619 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,7 +78,7 @@ string(REGEX REPLACE "\n" "" OCTLIBS "${OCTLIBS}") string(REGEX REPLACE " " ";" OCTLIBS "${OCTLIBS}") set(MAOXDB_DIR "${PROJECT_SOURCE_DIR}/src/lib") -add_library(maoxdb STATIC "${MAOXDB_DIR}/test.cpp" "${MAOXDB_DIR}/maoxdb.cpp") +add_library(maoxdb STATIC "${MAOXDB_DIR}/maoxdb.cpp") set_target_properties(maoxdb PROPERTIES PUBLIC_HEADER "${MAOXDB_DIR}/maoxdb.hpp") target_compile_options(maoxdb PRIVATE "-I${OCTINCLUDEDIR}") get_property(_MAOX_LIB_DIR TARGET maoxdb PROPERTY LIBRARY_OUTPUT_DIRECTORY) @@ -179,14 +179,19 @@ endif() option(TEST "Unit test with gtest" OFF) if(TEST) - enable_testing() + # cmake tests suffers from not being able to define dependencies, see + # https://stackoverflow.com/questions/733475, so we disable it for now. + # enable_testing() + add_custom_target(test + echo "[EE] \\`make test\\` does not exist, did you mean \\`make test_detailed\\`?" + COMMAND exit 1) # append all the test cases here (file name without the ".cpp" suffix) set(test_cases test_utilities ) - # add special cmake functions for gtest + # add special cmake functions for gtest, (although they are not used yet, see above) include(GoogleTest) - # `make testfiles` shall just build the tests, `make test` builds and runs the tests + # `make testfiles` just builds the tests, `make test_detailed` builds and runs the tests add_custom_target(testfiles) add_custom_target(test_detailed DEPENDS testfiles) # loop over all test cases and add them to the test runner @@ -194,7 +199,7 @@ if(TEST) math(EXPR len_test_cases "${len_test_cases} - 1") foreach (i RANGE "${len_test_cases}") list(GET test_cases ${i} test_case_name) - # Use this instead, once cmake 3.14 is available everywhere. + # Once cmake 3.14 is available everywhere, use the new `foreach` instead. # foreach (test_case_name "${test_cases}") message(STATUS "test_case_name: ${test_case_name}") add_executable(${test_case_name} EXCLUDE_FROM_ALL test/${test_case_name}.cpp) @@ -209,12 +214,6 @@ if(TEST) maoxdb ${CONAN_LIBS_CAOSDB} ${CONAN_LIBS_GTEST} ${CONAN_LIBS_BOOST}) target_link_directories(${test_case_name} PUBLIC ${OCTLIBDIR}) target_link_options(${test_case_name} PUBLIC ${OCTLIBS}) - if(_LINTING) - set_target_properties(${test_case_name} - PROPERTIES - CXX_CLANG_TIDY "${_CMAKE_CXX_CLANG_TIDY};${_CMAKE_CXX_CLANG_TIDY_TEST_CHECKS}" - CXX_INCLUDE_WHAT_YOU_USE "${_CMAKE_CXX_INCLUDE_WHAT_YOU_USE}") - endif() message(STATUS "CMAKE_CURRENT_BINARY_DIR: ${CMAKE_CURRENT_BINARY_DIR}") gtest_discover_tests(${test_case_name} WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" diff --git a/src/lib/maoxdb.cpp b/src/lib/maoxdb.cpp index 0e6dfa1..7c8ffce 100644 --- a/src/lib/maoxdb.cpp +++ b/src/lib/maoxdb.cpp @@ -26,6 +26,7 @@ */ #include "maoxdb.hpp" +#include "mex.h" #include "caosdb/status_code.h" namespace maoxdb { diff --git a/src/lib/maoxdb.hpp b/src/lib/maoxdb.hpp index 044313e..29f98b8 100644 --- a/src/lib/maoxdb.hpp +++ b/src/lib/maoxdb.hpp @@ -4,7 +4,6 @@ #include "caosdb/exceptions.h" #include "caosdb/status_code.h" #include "mex.h" -#include "mexproto.h" #include <string> // Macros ///////////////////////////////////////////////////////////////////// diff --git a/src/lib/test.cpp b/src/lib/test.cpp deleted file mode 100644 index 6b871ff..0000000 --- a/src/lib/test.cpp +++ /dev/null @@ -1,12 +0,0 @@ -#include "maoxdb.hpp" -#include "mex.h" -#include "mexproto.h" - -namespace maoxdb { - -void test() { - // do nothing. - auto *mx_str = mxCreateString("Hello World!"); -} - -} // namespace maoxdb diff --git a/src/private/maox_caosdb.cpp b/src/private/maox_caosdb.cpp index 5fbc38a..c706ed8 100644 --- a/src/private/maox_caosdb.cpp +++ b/src/private/maox_caosdb.cpp @@ -2,7 +2,6 @@ #include "caosdb/constants.h" // for LIBCAOSDB_VERSION_MAJOR, LIBCAOSDB_VE... #include "caosdb/info.h" // for VersionInfo #include "mex.h" // for mxArray, mexFunction -#include "mexproto.h" // for mexPrintf, mxCreateString, mxGetChars #include <cstring> // for strcmp #include <memory> // for unique_ptr, __shared_ptr_access, shar... #include <string> // for allocator, char_traits, operator+ diff --git a/src/private/maox_info.cpp b/src/private/maox_info.cpp index 226e280..172e7d9 100644 --- a/src/private/maox_info.cpp +++ b/src/private/maox_info.cpp @@ -4,7 +4,6 @@ #include "caosdb/info.h" // for VersionInfo #include "maoxdb.hpp" // caosDB utils for mex files #include "mex.h" // for mxArray, mexFunction -#include "mexproto.h" // for mexPrintf, mxCreateString, mxGetChars #include <cstring> // for strcmp #include <memory> // for unique_ptr, __shared_ptr_access, shar... #include <string> // for allocator, char_traits, operator+ diff --git a/test/Makefile b/test/Makefile index 9b968c9..589bc4a 100644 --- a/test/Makefile +++ b/test/Makefile @@ -43,13 +43,19 @@ test_octave: octave Run_Test.m .PHONY: test_octave + +# && make test || echo "Test(s) failed."; exit 1 test_cpp: $(eval BUILD_DIR ::= $(shell mktemp -d build_XXXXXXXX)) cd $(BUILD_DIR) \ && conan install ../.. -s "compiler.libcxx=libstdc++11" \ && cmake -D TEST=On ../.. \ - && make test || echo "Test(s) failed."; exit 1 - # && make test || make test_detailed || echo "Test(s) failed." ; exit 1 - # rm -r $(BUILD_DIR) + && make test_detailed \ + || echo "Test(s) failed."; exit 1 +# Exit with error if tests fail. +# && make test || make test_detailed || echo "Test(s) failed." ; exit 1 + +# Cleanup if everything went fine. + rm -r $(BUILD_DIR) .PHONY: test_cpp diff --git a/test/test_utilities.cpp b/test/test_utilities.cpp index bcbcfde..3c7bc1a 100644 --- a/test/test_utilities.cpp +++ b/test/test_utilities.cpp @@ -28,8 +28,8 @@ namespace maoxdb { TEST(test_utilities, scalar_arrays) { mxArray *uint64_scalar; uint64_scalar = mxScalarUINT64(1); - EXPECT_TRUE(mxIsUint64(uint64_scalar));{ - EXXPECT_EQ(mxGetNumberOfElements(uint64_scalar), 1); + EXPECT_TRUE(mxIsUint64(uint64_scalar)); + EXPECT_EQ(mxGetNumberOfElements(uint64_scalar), 1); EXPECT_EQ(*((UINT64_T *) mxGetData(uint64_scalar)), 1); } -- GitLab