diff --git a/.travis.yml b/.travis.yml index 85fa40e62e..4b9c75fb1a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,6 +18,7 @@ branches: only: - master - develop + - /feature\/.*/ env: matrix: @@ -311,29 +312,22 @@ 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_VERBOSE=1 -DBOOST_INCLUDE_LIBRARIES=type_traits .. + - 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 - - git submodule update --init libs/headers - - git submodule update --init libs/config - - git submodule update --init libs/assert - - git submodule update --init libs/bind - - git submodule update --init libs/core - - git submodule update --init libs/detail - - git submodule update --init libs/function - - git submodule update --init libs/integer - - git submodule update --init libs/move - - git submodule update --init libs/mpl - - git submodule update --init libs/preprocessor - - git submodule update --init libs/static_assert - - git submodule update --init libs/throw_exception - - git submodule update --init libs/type_index - - git submodule update --init libs/utility + - git submodule update --init tools/boostdep - cp -r $TRAVIS_BUILD_DIR/* libs/type_traits + - python tools/boostdep/depinst/depinst.py type_traits - ./bootstrap.sh - ./b2 headers diff --git a/CMakeLists.txt b/CMakeLists.txt index 8adf7802a3..cce3299651 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 0000000000..4913af09e8 --- /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(NOT HAVE_BOOST_TEST) + return() +endif() + +set(BOOST_TEST_LINK_LIBRARIES Boost::type_traits Boost::core Boost::function Boost::mpl) +set(BOOST_TEST_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}) + +endforeach() + +file(GLOB cftests RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "compile_fail/*.cpp") + +foreach(test IN LISTS cftests) + + boost_test(TYPE compile-fail SOURCES ${test}) + +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) + +endforeach()