Add CMake testing support

This commit is contained in:
Peter Dimov
2019-12-27 05:12:37 +02:00
parent 4e6975503f
commit dc7bbab875
3 changed files with 52 additions and 1 deletions

View File

@ -18,6 +18,7 @@ branches:
only:
- master
- develop
- /feature\/.*/
env:
matrix:
@ -311,10 +312,18 @@ matrix:
env: TOOLSET=clang COMPILER=clang++ CXXSTD=03,11,14,1z
osx_image: xcode7.3
- os: linux
env: CMAKE=1
script:
- mkdir __build__ && cd __build__
- cmake -DBOOST_ENABLE_CMAKE=1 -DBoost_DEBUG=1 ..
- ctest --output-on-failure -R boost_type_traits
install:
- BOOST_BRANCH=develop && [ "$TRAVIS_BRANCH" == "master" ] && BOOST_BRANCH=master || true
- cd ..
- git clone -b $TRAVIS_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
- git clone -b $BOOST_BRANCH --depth 1 https://github.com/boostorg/boost.git boost-root
- cd boost-root
- git submodule update --init tools/build
- git submodule update --init tools/boost_install

View File

@ -28,3 +28,11 @@ if(BOOST_SUPERPROJECT_VERSION)
boost_install(TARGETS boost_type_traits HEADER_DIRECTORY include/)
endif()
# BUILD_TESTING is the standard CTest variable that enables testing
if(BUILD_TESTING)
add_subdirectory(test)
endif()

34
test/CMakeLists.txt Normal file
View File

@ -0,0 +1,34 @@
# Copyright 2018, 2019 Peter Dimov
# Distributed under the Boost Software License, Version 1.0.
# See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt
include(BoostTestJamfile OPTIONAL RESULT_VARIABLE HAVE_BOOST_TEST)
if(HAVE_BOOST_TEST)
set(link_libraries Boost::type_traits Boost::core Boost::function Boost::mpl)
set(compile_definitions CI_SUPPRESS_KNOWN_ISSUES)
file(GLOB rtests RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*_test*.cpp")
foreach(test IN LISTS rtests)
boost_test(TYPE run SOURCES ${test} COMPILE_DEFINITIONS ${compile_definitions} LINK_LIBRARIES ${link_libraries})
endforeach()
file(GLOB cftests RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "compile_fail/*.cpp")
foreach(test IN LISTS cftests)
boost_test(TYPE compile-fail SOURCES ${test} COMPILE_DEFINITIONS ${compile_definitions} LINK_LIBRARIES ${link_libraries})
endforeach()
foreach(test IN ITEMS has_nothrow_assign_test has_nothrow_constr_test has_nothrow_copy_test is_nothrow_move_assignable_test is_nothrow_move_constructible_test)
boost_test(TYPE run NAME ${test}_no_intrinsics SOURCES ${test}.cpp COMPILE_DEFINITIONS BOOST_TT_DISABLE_INTRINSICS ${compile_definitions} LINK_LIBRARIES ${link_libraries})
endforeach()
endif()