# 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
compile macro_default_test.cpp ;
run odr1_test.cpp odr2_test.cpp ;
run deprecated_test.cpp ;
-run fstream_test.cpp : : : $(VIS) ;
+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) ;
# 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 ;