summaryrefslogtreecommitdiff
path: root/tools/build/v2/test/startup_v1.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/build/v2/test/startup_v1.py')
-rw-r--r--tools/build/v2/test/startup_v1.py81
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()