diff --git a/.travis.yml b/.travis.yml index 85fa40e..cc7149a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -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 diff --git a/CMakeLists.txt b/CMakeLists.txt index 8adf780..cce3299 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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() diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..eddad2e --- /dev/null +++ b/test/CMakeLists.txt @@ -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()