# Boost System Library test Jamfile # Copyright Beman Dawes 2003, 2006 # Distributed under the Boost Software License, Version 1.0. # See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt # See library home page at http://www.boost.org/libs/system import testing ; import os ; project : requirements /boost/system//boost_system msvc:on ; lib throw_test : throw_test.cpp : shared:BOOST_SYSTEM_DYN_LINK=1 static:BOOST_SYSTEM_STATIC_LINK=1 ; lib single_instance_lib1 : single_instance_1.cpp : shared:SINGLE_INSTANCE_DYN_LINK ; lib single_instance_lib2 : single_instance_2.cpp : shared:SINGLE_INSTANCE_DYN_LINK ; rule cxx03 ( properties * ) { local result ; if gcc in $(properties) { result = -std=c++98 ; # 4.4 has no 03 } else if clang in $(properties) { result = -std=c++03 ; } else { result = no ; } return $(result) ; } rule cxx11 ( properties * ) { local result ; if gcc in $(properties) { result = -std=c++0x ; # 4.6 has no 11 } else if clang in $(properties) { result = -std=c++11 ; } else { result = no ; } return $(result) ; } rule system-run- ( sources + ) { local result ; result += [ run $(sources) : : : static : $(sources[1]:B)_static ] ; result += [ run $(sources) : : : shared : $(sources[1]:B)_shared ] ; result += [ run $(sources) : : : -/boost/system//boost_system BOOST_ERROR_CODE_HEADER_ONLY : $(sources[1]:B)_header ] ; return $(result) ; } if [ os.environ UBSAN ] { rule system-run ( sources + ) { # The 03/11 tests are ODR violations, no point running them under -fsanitize=undefined return [ system-run- $(sources) ] ; } } else { rule system-run ( sources + ) { local result = [ system-run- $(sources) ] ; # Test a source file built with -std=c++03 linked with a System library built without -std=c++03 result += [ run $(sources) : : : static @cxx03 : $(sources[1]:B)_static_03 ] ; result += [ run $(sources) : : : shared @cxx03 : $(sources[1]:B)_shared_03 ] ; # Test a source file built with -std=c++11 linked with a System library built without -std=c++11 result += [ run $(sources) : : : static @cxx11 : $(sources[1]:B)_static_11 ] ; result += [ run $(sources) : : : shared @cxx11 : $(sources[1]:B)_shared_11 ] ; return $(result) ; } } test-suite "system" : [ system-run error_code_test.cpp ] [ system-run error_code_user_test.cpp ] [ system-run system_error_test.cpp ] [ run dynamic_link_test.cpp throw_test : : : shared : throw_test_shared ] [ system-run initialization_test.cpp ] [ run header_only_test.cpp : : : -/boost/system//boost_system ] [ run header_only_test.cpp : : : -/boost/system//boost_system BOOST_NO_ANSI_APIS : header_only_test_no_ansi ] [ run config_test.cpp : : : always_show_run_output ] [ system-run- std_interop_test.cpp ] [ system-run std_mismatch_test.cpp ] [ system-run single_instance_test.cpp single_instance_1.cpp single_instance_2.cpp ] [ run single_instance_test.cpp single_instance_lib1 single_instance_lib2 : : : static : single_instance_lib_static ] [ run single_instance_test.cpp single_instance_lib1 single_instance_lib2 : : : shared : single_instance_lib_shared ] [ system-run before_main_test.cpp ] [ run-fail throws_assign_fail.cpp ] [ system-run- constexpr_test.cpp ] ; # Quick (CI) test run quick.cpp ;