diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..0fd7ee1 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,24 @@ +dist: trusty +sudo: false + +language: cpp + +os: linux + +addons: + apt: + packages: + - gfortran + - libarmadillo-dev + +compiler: + - clang + - gcc + +script: + - mkdir build + - cd build + - cmake -DWITH_COVERAGE=On .. + - make -j 2 + - make test + - curl -s https://codecov.io/bash | bash - diff --git a/CMakeLists.txt b/CMakeLists.txt index 2427097..5eb5fd3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,7 @@ # Name of project project(wignerSymbols) +enable_testing() + set (wignerSymbols_VERSION_MAJOR 0) set (wignerSymbols_VERSION_MINOR 2) set (wignerSymbols_VERSION_RELEASE 0) @@ -14,6 +16,14 @@ endif() enable_language (Fortran) set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -Wall -march=native") +# Coverage report +option(WITH_COVERAGE "Generate code coverage report" OFF) +if(WITH_COVERAGE) + set(CMAKE_BUILD_TYPE "Debug" CACHE STRING "Choose the build type" FORCE) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-arcs -ftest-coverage") + link_libraries(gcov) +endif() + # Included files include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include INC_LIST) @@ -40,6 +50,8 @@ SET_TARGET_PROPERTIES(${PROJECT_NAME} VERSION ${wignerSymbols_VERSION_MAJOR}.${wignerSymbols_VERSION_MINOR}.${wignerSymbols_VERSION_RELEASE} SOVERSION ${wignerSymbols_VERSION_MAJOR}.${wignerSymbols_VERSION_MINOR}.${wignerSymbols_VERSION_RELEASE}) +add_subdirectory(tests) + # Install directories install(TARGETS ${PROJECT_NAME} DESTINATION lib) install(DIRECTORY include/ DESTINATION include) diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt new file mode 100644 index 0000000..91bd88d --- /dev/null +++ b/tests/CMakeLists.txt @@ -0,0 +1,13 @@ +add_executable(gh-issue-1 gh-issue-1.cpp) +target_link_libraries(gh-issue-1 ${PROJECT_NAME}) +add_test(NAME gh-issue-1 COMMAND gh-issue-1) + +add_executable(gh-issue-2 gh-issue-2.cpp) +target_link_libraries(gh-issue-2 ${PROJECT_NAME}) +add_test(NAME gh-issue-2 COMMAND gh-issue-2) + +find_package(Armadillo) +include_directories(${ARMADILLO_INCLUDE_DIRS}) +add_executable(testWigner testWigner.cpp) +target_link_libraries(testWigner ${PROJECT_NAME} ${ARMADILLO_LIBRARIES}) +add_test(NAME testWigner COMMAND testWigner 10) diff --git a/tests/gh-issue-1.cpp b/tests/gh-issue-1.cpp index 289d6b6..eaa4ec3 100644 --- a/tests/gh-issue-1.cpp +++ b/tests/gh-issue-1.cpp @@ -66,9 +66,9 @@ int main (int argc, char* argv[]) std::cout << "FOR impl.: " << test42 << std::endl; std::cout << std::endl; -std::vector test5 = WignerSymbols::wigner3j(856, 1200, 464, -828, 364); -double test51 WignerSymbols::wigner3j(751, 856, 1200, 464, -828, 364); -double test52 WignerSymbols::wigner3j_f(751, 856, 1200, 464, -828, 364); + std::vector test5 = WignerSymbols::wigner3j(856, 1200, 464, -828, 364); + double test51 = WignerSymbols::wigner3j(751, 856, 1200, 464, -828, 364); + double test52 = WignerSymbols::wigner3j_f(751, 856, 1200, 464, -828, 364); /* [ 841 379 1011 -631 313 318] -2.44096504011e-41 -0.0