| # Boost Filesystem Library test Jamfile |
| |
| # (C) Copyright Beman Dawes 2002-2006 |
| # (C) Copyright Andrey Semashev 2020 |
| # Distributed under the Boost Software License, Version 1.0. |
| # See www.boost.org/LICENSE_1_0.txt |
| |
| import testing ; |
| import os ; |
| |
| # The rule checks we're running on Windows that supports mklink command (Vista and later) |
| rule check-mklink ( properties * ) |
| { |
| local result ; |
| |
| if <target-os>windows in $(properties) |
| { |
| # mklink is a builtin shell command, so we can't check if an executable exists. |
| # Testing the exit status of the mklink command (in the hope that it will be different |
| # when the command is not supported) is inconclusive as for some reason Windows 8.1 shell |
| # always returns exit code of 1. We have to match the output of the command. :( |
| # Note that the output may be localized, so pick some part that is likely to be stable regardless |
| # of localization. |
| local output = [ SHELL "mklink /?" : exit-status ] ; |
| if [ MATCH (MKLINK) : $(output[1]) ] |
| { |
| result = <define>BOOST_FILESYSTEM_HAS_MKLINK ; |
| } |
| } |
| |
| #ECHO Result: $(result) ; |
| return $(result) ; |
| } |
| |
| project |
| : requirements |
| <library>/boost/filesystem//boost_filesystem |
| <conditional>@check-mklink |
| ; |
| |
| # Some tests are run both statically and as shared libraries since Filesystem |
| # has a history of bugs that appear only in one type of build or the other. |
| |
| path-constant HERE : . ; |
| |
| local VIS ; |
| |
| if [ os.environ UBSAN ] |
| { |
| VIS = <visibility>global |
| -<library>/boost/filesystem//boost_filesystem |
| <library>/boost/filesystem//boost_filesystem/<visibility>global ; |
| } |
| |
| run config_info.cpp : : : <link>shared <test-info>always_show_run_output ; |
| run config_info.cpp : : : <link>static <test-info>always_show_run_output : config_info_static ; |
| run convenience_test.cpp ; |
| compile macro_default_test.cpp ; |
| run odr1_test.cpp odr2_test.cpp ; |
| run deprecated_test.cpp ; |
| run fstream_test.cpp : : : $(VIS) ; |
| run large_file_support_test.cpp ; |
| run locale_info.cpp : : : <test-info>always_show_run_output ; |
| run operations_test.cpp : : : <link>shared <test-info>always_show_run_output ; |
| run operations_test.cpp : : : <link>static : operations_test_static ; |
| run operations_unit_test.cpp : $(HERE) : : <link>shared <test-info>always_show_run_output ; |
| run copy_test.cpp ; |
| run path_test.cpp : : : <link>shared ; |
| run path_test.cpp : : : <link>static : path_test_static ; |
| run path_unit_test.cpp : : : <link>shared $(VIS) ; |
| run path_unit_test.cpp : : : <link>static $(VIS) : path_unit_test_static ; |
| run relative_test.cpp ; |
| run ../example/simple_ls.cpp ; |
| run ../example/file_status.cpp ; |
| run foreach_test.cpp ; |
| |
| # `quick` target (for CI) |
| run quick.cpp ; |
| |
| # Tests for specific issues |
| run issues/70-71-copy.cpp ; |
| |
| run issues/99_canonical_with_junction_point.cpp ; |
| run issues/reparse_tag_file_placeholder.cpp ; |