diff options
Diffstat (limited to 'tools/build/v2/test/startup_v1.py')
-rw-r--r-- | tools/build/v2/test/startup_v1.py | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/tools/build/v2/test/startup_v1.py b/tools/build/v2/test/startup_v1.py new file mode 100644 index 0000000000..14a286a70f --- /dev/null +++ b/tools/build/v2/test/startup_v1.py @@ -0,0 +1,81 @@ +#!/usr/bin/python + +# Copyright 2002 Dave Abrahams +# Copyright 2003, 2004, 2005 Vladimir Prus +# 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) + +import BoostBuild +import os +import re + +def expect_substring(actual, expected): + return actual.find(expected) != -1 + +def match_re(actual, expected): + return re.match(expected, actual, re.DOTALL) != None + +# Test the v1 startup behavior. +t = BoostBuild.Tester(executable='bjam', match=match_re, boost_build_path='', + pass_toolset=0) + +t.set_tree('startup') + +#if os.name == 'nt': +# t.run_build_system( +# status=1, stdout="You didn't set BOOST_ROOT", match = expect_substring) + +t.run_build_system(extra_args='-sBOOST_ROOT=.', status=1, + stdout=r'''Unable to load Boost\.Build: could not find ''' + + r'''"boost-build\.jam".''') + +os.chdir('no-bootstrap1') + +t.run_build_system(extra_args='-sBOOST_ROOT=.', status=1, + stdout=r'''Unable to load Boost\.Build: could not find build system\.''' + + r'''.*attempted to load the build system by invoking''' + + r'''.*'boost-build ;'.*''' + + r'''but we were unable to find "bootstrap\.jam"''') + +# Descend to a subdirectory which /doesn't/ contain a boost-build.jam +# file, and try again to test the crawl-up behavior. +os.chdir('subdir') + +t.run_build_system(extra_args='-sBOOST_ROOT=.', status=1, + stdout=r'''Unable to load Boost\.Build: could not find build system\.''' + + r'''.*attempted to load the build system by invoking''' + + r'''.*'boost-build ;'.*''' + + r'''but we were unable to find "bootstrap\.jam"''') + +os.chdir('../../no-bootstrap2') + +t.run_build_system(extra_args='-sBOOST_ROOT=.', status=1, + stdout=r'''Unable to load Boost\.Build: could not find build system\.''' + + r'''.*attempted to load the build system by invoking''' + + r'''.*'boost-build \. ;'.*''' + + r'''but we were unable to find "bootstrap\.jam"''') + +os.chdir('../no-bootstrap3') + +t.run_build_system(extra_args='-sBOOST_ROOT=.', status=1, + stdout=r'''Unable to load Boost.Build +.*boost-build.jam" was found.* +However, it failed to call the "boost-build" rule''') + +# test bootstrapping based on BOOST_BUILD_PATH +os.chdir('../bootstrap-env') +t.run_build_system(extra_args='-sBOOST_ROOT=../boost-root ' + + '-sBOOST_BUILD_PATH=../boost-root/build', + stdout='build system bootstrapped') + +# test bootstrapping based on an explicit path in boost-build.jam +os.chdir('../bootstrap-explicit') +t.run_build_system(extra_args='-sBOOST_ROOT=../boost-root', + stdout='build system bootstrapped') + +# test bootstrapping based on BOOST_ROOT +os.chdir('../bootstrap-implicit') +t.run_build_system(extra_args='-sBOOST_ROOT=../boost-root', + stdout='build system bootstrapped') + +t.cleanup() |