blob: 14a286a70fdd14c14d2ed573fc2cc8ab31d35f6c [file] [log] [blame]
#!/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()