mirror of
https://github.com/boostorg/build.git
synced 2026-02-18 01:52:17 +00:00
Towards really cross-toolset testing system.
- Allow to specify toolset name on the command line - Expand $toolset in paths - Pass toolset name to bjam invocations. [SVN r17555]
This commit is contained in:
@@ -11,10 +11,22 @@ import time
|
||||
import tempfile
|
||||
import sys
|
||||
|
||||
def get_toolset():
|
||||
if (len(sys.argv) > 1):
|
||||
return sys.argv[1]
|
||||
else:
|
||||
return "gcc"
|
||||
|
||||
|
||||
# Prepare the map of suffixes
|
||||
suffixes = {'.exe': '', '.dll': '.so', '.lib': '.a'}
|
||||
suffixes = {'.exe': '', '.dll': '.so', '.lib': '.a', '.obj': '.o'}
|
||||
if os.environ.get('OS','').lower().startswith('windows'):
|
||||
suffixes = {'.lib': '.a'} # static libs have '.a' suffix with mingw...
|
||||
suffixes = {}
|
||||
if get_toolset() in ["gcc"]:
|
||||
suffixes['.lib'] = '.a' # static libs have '.a' suffix with mingw...
|
||||
suffixes['.obj'] = '.o'
|
||||
|
||||
|
||||
|
||||
#
|
||||
# FIXME: this is copy-pasted from TestSCons.py
|
||||
@@ -47,13 +59,18 @@ class Tester(TestCmd.TestCmd):
|
||||
"""
|
||||
def __init__(self, arguments="", executable = 'bjam', match =
|
||||
TestCmd.match_exact, boost_build_path = None,
|
||||
translate_suffixes = 1,
|
||||
translate_suffixes = 1, pass_toolset = 1,
|
||||
**keywords):
|
||||
|
||||
self.original_workdir = os.getcwd()
|
||||
self.last_build_time = 0
|
||||
self.translate_suffixes = translate_suffixes
|
||||
|
||||
self.toolset = get_toolset()
|
||||
|
||||
if pass_toolset:
|
||||
arguments = self.toolset + " " + arguments
|
||||
|
||||
jam_build_dir = ""
|
||||
if os.name == 'nt':
|
||||
jam_build_dir = "bin.ntx86"
|
||||
@@ -353,11 +370,14 @@ class Tester(TestCmd.TestCmd):
|
||||
self.fail_test(1)
|
||||
|
||||
def expect_content(self, name, content, exact=0):
|
||||
name = self.adjust_names(name)[0]
|
||||
if exact:
|
||||
actual = self.read(name)
|
||||
else:
|
||||
actual = string.replace(self.read_and_strip(name), "\\", "/")
|
||||
|
||||
content = string.replace(content, "$toolset", self.toolset)
|
||||
|
||||
if actual != content:
|
||||
print "Expected:\n"
|
||||
print content
|
||||
@@ -428,10 +448,12 @@ class Tester(TestCmd.TestCmd):
|
||||
def adjust_names(self, names):
|
||||
if type(names) == types.StringType:
|
||||
names = [names]
|
||||
return map(self.adjust_suffix, names)
|
||||
r = map(self.adjust_suffix, names)
|
||||
r = map(lambda x: string.replace(x, "$toolset", self.toolset), r)
|
||||
return r
|
||||
|
||||
def native_file_name(self, name):
|
||||
name = self.adjust_suffix(name)
|
||||
name = self.adjust_names(name)[0]
|
||||
elements = string.split(name, "/")
|
||||
return os.path.normpath(apply(os.path.join, [self.workdir]+elements))
|
||||
|
||||
|
||||
@@ -24,8 +24,8 @@ t.write("src/b.cpp", "int main() {}\n")
|
||||
|
||||
t.run_build_system()
|
||||
|
||||
t.expect_addition(["build/bin/gcc/debug/a.exe",
|
||||
"build/src/bin/gcc/debug/b.exe"])
|
||||
t.expect_addition(["build/bin/$toolset/debug/a.exe",
|
||||
"build/src/bin/$toolset/debug/b.exe"])
|
||||
|
||||
# Test that building from child projects work
|
||||
t.run_build_system(subdir='src')
|
||||
@@ -45,7 +45,7 @@ exe b : b.cpp ;
|
||||
""")
|
||||
|
||||
t.run_build_system()
|
||||
t.expect_addition(["bin/gcc/debug/a.exe",
|
||||
"src/build/bin/gcc/debug/b.exe"])
|
||||
t.expect_addition(["bin/$toolset/debug/a.exe",
|
||||
"src/build/bin/$toolset/debug/b.exe"])
|
||||
|
||||
t.cleanup()
|
||||
|
||||
@@ -48,6 +48,6 @@ make b.cpp : : create ;
|
||||
t.write("a.cpp", "")
|
||||
|
||||
t.run_build_system()
|
||||
t.expect_addition("bin/gcc/debug/a.exe")
|
||||
t.expect_addition("bin/$toolset/debug/a.exe")
|
||||
|
||||
t.cleanup()
|
||||
|
||||
@@ -16,13 +16,13 @@ int main() {}
|
||||
""")
|
||||
t.write("Jamfile", "exe a : a.cpp : <link>static:<define>STATIC ;")
|
||||
t.run_build_system("link=static")
|
||||
t.expect_addition("bin/gcc/debug/link-static/main-target-a/a.exe")
|
||||
t.expect_addition("bin/$toolset/debug/link-static/main-target-a/a.exe")
|
||||
|
||||
t.write("Jamfile", """
|
||||
project : requirements <link>static:<define>STATIC ;
|
||||
exe a : a.cpp ;
|
||||
""")
|
||||
t.run_build_system("link=static")
|
||||
t.expect_addition("bin/gcc/debug/link-static/a.exe")
|
||||
t.expect_addition("bin/$toolset/debug/link-static/a.exe")
|
||||
|
||||
t.cleanup()
|
||||
|
||||
@@ -3,15 +3,15 @@
|
||||
# Test that default build clause actually has any effect.
|
||||
|
||||
from BoostBuild import Tester
|
||||
t = Tester()
|
||||
t = Tester(pass_toolset=0)
|
||||
|
||||
t.write("project-root.jam", "import gcc ;")
|
||||
t.write("Jamfile", "exe a : a.cpp : : debug release ;")
|
||||
t.write("a.cpp", "int main() {}\n")
|
||||
|
||||
t.run_build_system()
|
||||
t.expect_addition("bin/gcc/debug/a.exe")
|
||||
t.expect_addition("bin/gcc/release/a.exe")
|
||||
t.expect_addition("bin/$toolset/debug/a.exe")
|
||||
t.expect_addition("bin/$toolset/release/a.exe")
|
||||
|
||||
# Now try a harder example: default build which contains <define>
|
||||
# should cause <define> to be present when "b" is compiled.
|
||||
|
||||
@@ -8,9 +8,9 @@ t.set_tree("dependency-test")
|
||||
t.run_build_system()
|
||||
# Check that main target 'c' was able to find 'x.h' from
|
||||
# 'a's dependency graph
|
||||
t.expect_addition("bin/gcc/debug/main-target-c/c.exe")
|
||||
t.expect_addition("bin/$toolset/debug/main-target-c/c.exe")
|
||||
# Check that main target 'e' was able to find 'y.h'
|
||||
t.expect_addition("bin/gcc/debug/main-target-e/e.exe")
|
||||
t.expect_addition("bin/$toolset/debug/main-target-e/e.exe")
|
||||
|
||||
# Check handling of first level includes.
|
||||
|
||||
@@ -18,35 +18,35 @@ t.expect_addition("bin/gcc/debug/main-target-e/e.exe")
|
||||
t.touch("a.h")
|
||||
t.run_build_system()
|
||||
|
||||
t.expect_touch("bin/gcc/debug/a.exe")
|
||||
t.expect_touch("bin/gcc/debug/a.o")
|
||||
t.expect_touch("bin/gcc/debug/b.exe")
|
||||
t.expect_touch("bin/gcc/debug/b.o")
|
||||
t.expect_touch("bin/gcc/debug/main-target-c/c.exe")
|
||||
t.expect_touch("bin/$toolset/debug/a.exe")
|
||||
t.expect_touch("bin/$toolset/debug/a.o")
|
||||
t.expect_touch("bin/$toolset/debug/b.exe")
|
||||
t.expect_touch("bin/$toolset/debug/b.o")
|
||||
t.expect_touch("bin/$toolset/debug/main-target-c/c.exe")
|
||||
t.expect_nothing_more()
|
||||
|
||||
# Only 'a' include <a.h> and should be updated
|
||||
t.touch("src1/a.h")
|
||||
t.run_build_system()
|
||||
|
||||
t.expect_touch("bin/gcc/debug/a.exe")
|
||||
t.expect_touch("bin/gcc/debug/a.o")
|
||||
t.expect_touch("bin/gcc/debug/main-target-c/c.exe")
|
||||
t.expect_touch("bin/$toolset/debug/a.exe")
|
||||
t.expect_touch("bin/$toolset/debug/a.o")
|
||||
t.expect_touch("bin/$toolset/debug/main-target-c/c.exe")
|
||||
t.expect_nothing_more()
|
||||
|
||||
# "src/a.h" includes "b.h" (in the same dir)
|
||||
t.touch("src1/b.h")
|
||||
t.run_build_system()
|
||||
t.expect_touch("bin/gcc/debug/a.exe")
|
||||
t.expect_touch("bin/gcc/debug/a.o")
|
||||
t.expect_touch("bin/gcc/debug/main-target-c/c.exe")
|
||||
t.expect_touch("bin/$toolset/debug/a.exe")
|
||||
t.expect_touch("bin/$toolset/debug/a.o")
|
||||
t.expect_touch("bin/$toolset/debug/main-target-c/c.exe")
|
||||
t.expect_nothing_more()
|
||||
|
||||
# included by "src/b.h". We had a bug: file included via "",
|
||||
# like "b.h" is in this case was not scanned at all.
|
||||
t.touch("src1/c.h")
|
||||
t.run_build_system()
|
||||
t.expect_touch("bin/gcc/debug/a.exe")
|
||||
t.expect_touch("bin/$toolset/debug/a.exe")
|
||||
|
||||
t.touch("b.h")
|
||||
t.run_build_system()
|
||||
@@ -58,6 +58,6 @@ t.expect_nothing_more()
|
||||
# support, this check will be implemented later.
|
||||
t.touch("x.foo")
|
||||
t.run_build_system()
|
||||
t.expect_touch("bin/gcc/debug/a.o")
|
||||
t.expect_touch("bin/$toolset/debug/a.o")
|
||||
|
||||
t.cleanup()
|
||||
|
||||
@@ -10,7 +10,7 @@ t = Tester()
|
||||
t.set_tree("direct-request-test")
|
||||
t.run_build_system(extra_args="define=MACROS")
|
||||
|
||||
t.expect_addition("bin/gcc/debug/"
|
||||
t.expect_addition("bin/$toolset/debug/"
|
||||
* (List("a.o b.o b.dll a.exe")))
|
||||
|
||||
|
||||
|
||||
18
test/generators-test/lex.jam
Normal file
18
test/generators-test/lex.jam
Normal file
@@ -0,0 +1,18 @@
|
||||
# Copyright (C) Vladimir Prus 2002. Permission to copy, use, modify, sell and
|
||||
# distribute this software is granted provided this copyright notice appears in
|
||||
# all copies. This software is provided "as is" without express or implied
|
||||
# warranty, and with no claim as to its suitability for any purpose.
|
||||
|
||||
import type ;
|
||||
import generators ;
|
||||
import feature ;
|
||||
import property ;
|
||||
|
||||
type.register LEX : l ;
|
||||
|
||||
generators.register-standard lex.lex : LEX : C ;
|
||||
|
||||
actions lex
|
||||
{
|
||||
touch $(<)
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
import class : class new ;
|
||||
|
||||
import gcc ;
|
||||
import borland ;
|
||||
import lex ;
|
||||
import qt ;
|
||||
import extra ;
|
||||
|
||||
@@ -9,26 +9,26 @@ t.set_tree("generators-test")
|
||||
t.run_build_system()
|
||||
|
||||
t.expect_addition(
|
||||
"bin/gcc/debug/"
|
||||
"bin/$toolset/debug/"
|
||||
* (
|
||||
List(
|
||||
"a.o b.o c.h c.cpp c.o d_parser.whl d_lexer.dlp d_parser.cpp d_lexer.cpp "
|
||||
+ "d_parser.lr0 x.c x.o y.x1 y.x2 "
|
||||
+ "y.cpp y.o e.marked.cpp e.positions e.target.cpp e.o "
|
||||
"a.obj b.obj c.h c.cpp c.obj d_parser.whl d_lexer.dlp d_parser.cpp d_lexer.cpp "
|
||||
+ "d_parser.lr0 x.c x.obj y.x1 y.x2 "
|
||||
+ "y.cpp y.obj e.marked.cpp e.positions e.target.cpp e.obj "
|
||||
+ "a.exe e.exe"))
|
||||
)
|
||||
|
||||
t.expect_addition(["lib/bin/gcc/debug/c.o",
|
||||
"lib/bin/gcc/debug/auxilliary.lib",
|
||||
t.expect_addition(["lib/bin/$toolset/debug/c.obj",
|
||||
"lib/bin/$toolset/debug/auxilliary.lib",
|
||||
])
|
||||
|
||||
|
||||
t.run_build_system(subdir='lib')
|
||||
|
||||
t.expect_addition(["lib/bin/gcc/debug/auxilliary2.dll"])
|
||||
t.expect_addition(["lib/bin/$toolset/debug/auxilliary2.dll"])
|
||||
|
||||
t.run_build_system(subdir='lib', extra_args="link=static")
|
||||
|
||||
t.expect_addition(["lib/bin/gcc/debug/link-static/auxilliary2.lib"])
|
||||
t.expect_addition(["lib/bin/$toolset/debug/link-static/auxilliary2.lib"])
|
||||
|
||||
t.cleanup()
|
||||
|
||||
@@ -20,7 +20,7 @@ int main() { foo(); }
|
||||
t.write("b.cpp", "void foo() {}\n")
|
||||
|
||||
t.run_build_system()
|
||||
t.expect_addition("bin/gcc/debug/main-target-b/b.o")
|
||||
t.expect_addition("bin/$toolset/debug/main-target-b/b.o")
|
||||
|
||||
# This tests another bug: when source file was used by two main targets,
|
||||
# one without any requirements and another with free requirements, it
|
||||
@@ -36,7 +36,7 @@ int main() {}
|
||||
|
||||
t.rm("bin")
|
||||
t.run_build_system()
|
||||
t.expect_addition(["bin/gcc/debug/a.o", "bin/gcc/debug/main-target-b/a.o"])
|
||||
t.expect_addition(["bin/$toolset/debug/a.o", "bin/$toolset/debug/main-target-b/a.o"])
|
||||
|
||||
|
||||
t.cleanup()
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
from BoostBuild import Tester
|
||||
from string import find
|
||||
|
||||
t = Tester()
|
||||
t = Tester(pass_toolset=0)
|
||||
|
||||
t.write("project-root.jam", "")
|
||||
t.write("Jamfile", """
|
||||
|
||||
@@ -7,7 +7,7 @@ import re
|
||||
spaces_re = re.compile("\ \ +")
|
||||
trailing_spaces_re = re.compile("\ +\n")
|
||||
|
||||
t = Tester()
|
||||
t = Tester(pass_toolset=0)
|
||||
|
||||
t.set_tree('module-actions')
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ t.copy("ext/Jamfile2", "ext/Jamfile")
|
||||
# libraries are used.
|
||||
|
||||
t.run_build_system("debug release")
|
||||
t.expect_addition("bin/gcc/debug/main-target-hello/hello.exe")
|
||||
t.expect_addition("bin/gcc/release/main-target-hello/hello.exe")
|
||||
t.expect_addition("bin/$toolset/debug/main-target-hello/hello.exe")
|
||||
t.expect_addition("bin/$toolset/release/main-target-hello/hello.exe")
|
||||
|
||||
t.cleanup()
|
||||
|
||||
@@ -30,7 +30,7 @@ t.copy("src/a.cpp", "src/b.cpp")
|
||||
t.run_build_system()
|
||||
|
||||
# Test that there's no "main-target-a" part.
|
||||
t.expect_addition("src/bin/gcc/debug/" * List("a.exe b.exe"))
|
||||
t.expect_addition("src/bin/$toolset/debug/" * List("a.exe b.exe"))
|
||||
|
||||
|
||||
t.cleanup()
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
from BoostBuild import Tester
|
||||
import os
|
||||
|
||||
t = Tester("--build-system=project-test1", boost_build_path='')
|
||||
t = Tester("--build-system=project-test1", boost_build_path='', pass_toolset=0)
|
||||
|
||||
# This test does no modifications, so run in in the invocation dir
|
||||
|
||||
|
||||
@@ -18,112 +18,112 @@ Please consult the documentation at 'http://www.boost.org'.
|
||||
t.set_tree("project-test3")
|
||||
t.run_build_system()
|
||||
|
||||
t.expect_addition("bin/gcc/debug/a.obj")
|
||||
t.expect_content("bin/gcc/debug/a.obj",
|
||||
t.expect_addition("bin/$toolset/debug/a.obj")
|
||||
t.expect_content("bin/$toolset/debug/a.obj",
|
||||
"""gcc/debug
|
||||
a.cpp
|
||||
""")
|
||||
|
||||
t.expect_addition("bin/gcc/debug/a.exe")
|
||||
t.expect_content("bin/gcc/debug/a.exe",
|
||||
t.expect_addition("bin/$toolset/debug/a.exe")
|
||||
t.expect_content("bin/$toolset/debug/a.exe",
|
||||
"gcc/debug\n" +
|
||||
"bin/gcc/debug/a.obj lib/bin/gcc/debug/b.obj " +
|
||||
"lib2/bin/gcc/debug/c.obj lib2/bin/gcc/debug/d.obj " +
|
||||
"lib2/helper/bin/gcc/debug/e.obj " +
|
||||
"lib3/bin/gcc/debug/f.obj\n"
|
||||
"bin/$toolset/debug/a.obj lib/bin/$toolset/debug/b.obj " +
|
||||
"lib2/bin/$toolset/debug/c.obj lib2/bin/$toolset/debug/d.obj " +
|
||||
"lib2/helper/bin/$toolset/debug/e.obj " +
|
||||
"lib3/bin/$toolset/debug/f.obj\n"
|
||||
)
|
||||
|
||||
t.expect_addition("lib/bin/gcc/debug/b.obj")
|
||||
t.expect_content("lib/bin/gcc/debug/b.obj",
|
||||
t.expect_addition("lib/bin/$toolset/debug/b.obj")
|
||||
t.expect_content("lib/bin/$toolset/debug/b.obj",
|
||||
"""gcc/debug
|
||||
lib/b.cpp
|
||||
""")
|
||||
|
||||
t.expect_addition("lib/bin/gcc/debug/m.exe")
|
||||
t.expect_content("lib/bin/gcc/debug/m.exe",
|
||||
t.expect_addition("lib/bin/$toolset/debug/m.exe")
|
||||
t.expect_content("lib/bin/$toolset/debug/m.exe",
|
||||
"""gcc/debug
|
||||
lib/bin/gcc/debug/b.obj lib2/bin/gcc/debug/c.obj
|
||||
lib/bin/$toolset/debug/b.obj lib2/bin/$toolset/debug/c.obj
|
||||
""")
|
||||
|
||||
t.expect_addition("lib2/bin/gcc/debug/c.obj")
|
||||
t.expect_content("lib2/bin/gcc/debug/c.obj",
|
||||
t.expect_addition("lib2/bin/$toolset/debug/c.obj")
|
||||
t.expect_content("lib2/bin/$toolset/debug/c.obj",
|
||||
"""gcc/debug
|
||||
lib2/c.cpp
|
||||
""")
|
||||
|
||||
t.expect_addition("lib2/bin/gcc/debug/d.obj")
|
||||
t.expect_content("lib2/bin/gcc/debug/d.obj",
|
||||
t.expect_addition("lib2/bin/$toolset/debug/d.obj")
|
||||
t.expect_content("lib2/bin/$toolset/debug/d.obj",
|
||||
"""gcc/debug
|
||||
lib2/d.cpp
|
||||
""")
|
||||
|
||||
t.expect_addition("lib2/bin/gcc/debug/l.exe")
|
||||
t.expect_content("lib2/bin/gcc/debug/l.exe",
|
||||
t.expect_addition("lib2/bin/$toolset/debug/l.exe")
|
||||
t.expect_content("lib2/bin/$toolset/debug/l.exe",
|
||||
"""gcc/debug
|
||||
lib2/bin/gcc/debug/c.obj bin/gcc/debug/a.obj
|
||||
lib2/bin/$toolset/debug/c.obj bin/$toolset/debug/a.obj
|
||||
""")
|
||||
|
||||
t.expect_addition("lib2/helper/bin/gcc/debug/e.obj")
|
||||
t.expect_content("lib2/helper/bin/gcc/debug/e.obj",
|
||||
t.expect_addition("lib2/helper/bin/$toolset/debug/e.obj")
|
||||
t.expect_content("lib2/helper/bin/$toolset/debug/e.obj",
|
||||
"""gcc/debug
|
||||
lib2/helper/e.cpp
|
||||
""")
|
||||
|
||||
t.expect_addition("lib3/bin/gcc/debug/f.obj")
|
||||
t.expect_content("lib3/bin/gcc/debug/f.obj",
|
||||
t.expect_addition("lib3/bin/$toolset/debug/f.obj")
|
||||
t.expect_content("lib3/bin/$toolset/debug/f.obj",
|
||||
"""gcc/debug
|
||||
lib3/f.cpp lib2/helper/bin/gcc/debug/e.obj
|
||||
lib3/f.cpp lib2/helper/bin/$toolset/debug/e.obj
|
||||
""")
|
||||
|
||||
|
||||
t.touch("a.cpp")
|
||||
t.run_build_system()
|
||||
t.expect_touch(["bin/gcc/debug/a.obj",
|
||||
"bin/gcc/debug/a.exe",
|
||||
"lib2/bin/gcc/debug/l.exe"])
|
||||
t.expect_touch(["bin/$toolset/debug/a.obj",
|
||||
"bin/$toolset/debug/a.exe",
|
||||
"lib2/bin/$toolset/debug/l.exe"])
|
||||
|
||||
|
||||
t.run_build_system(extra_args="release optimization=off,speed")
|
||||
t.expect_addition([ "bin/gcc/release/a.exe",
|
||||
"bin/gcc/release/a.obj",
|
||||
"bin/gcc/release/optimization-off/a.exe",
|
||||
"bin/gcc/release/optimization-off/a.obj"])
|
||||
t.expect_addition([ "bin/$toolset/release/a.exe",
|
||||
"bin/$toolset/release/a.obj",
|
||||
"bin/$toolset/release/optimization-off/a.exe",
|
||||
"bin/$toolset/release/optimization-off/a.obj"])
|
||||
|
||||
t.run_build_system(extra_args='clean')
|
||||
t.expect_removal(["bin/gcc/debug/a.obj",
|
||||
"bin/gcc/debug/a.exe",
|
||||
"lib/bin/gcc/debug/b.obj",
|
||||
"lib/bin/gcc/debug/m.exe",
|
||||
"lib2/bin/gcc/debug/c.obj",
|
||||
"lib2/bin/gcc/debug/d.obj",
|
||||
"lib2/bin/gcc/debug/l.exe",
|
||||
"lib3/bin/gcc/debug/f.obj",
|
||||
t.expect_removal(["bin/$toolset/debug/a.obj",
|
||||
"bin/$toolset/debug/a.exe",
|
||||
"lib/bin/$toolset/debug/b.obj",
|
||||
"lib/bin/$toolset/debug/m.exe",
|
||||
"lib2/bin/$toolset/debug/c.obj",
|
||||
"lib2/bin/$toolset/debug/d.obj",
|
||||
"lib2/bin/$toolset/debug/l.exe",
|
||||
"lib3/bin/$toolset/debug/f.obj",
|
||||
])
|
||||
|
||||
# Now test target ids in command line
|
||||
t.set_tree("project-test3")
|
||||
t.run_build_system("lib/b.obj")
|
||||
t.expect_addition("lib/bin/gcc/debug/b.obj")
|
||||
t.expect_addition("lib/bin/$toolset/debug/b.obj")
|
||||
t.expect_nothing_more()
|
||||
|
||||
t.run_build_system("clean lib/b.obj")
|
||||
t.expect_removal("lib/bin/gcc/debug/b.obj")
|
||||
t.expect_removal("lib/bin/$toolset/debug/b.obj")
|
||||
t.expect_nothing_more()
|
||||
|
||||
t.run_build_system("release lib2@helper/e.obj @/lib3/f.obj")
|
||||
t.expect_addition("lib2/helper/bin/gcc/release/e.obj")
|
||||
t.expect_addition("lib3/bin/gcc/release/f.obj")
|
||||
t.expect_addition("lib2/helper/bin/$toolset/release/e.obj")
|
||||
t.expect_addition("lib3/bin/$toolset/release/f.obj")
|
||||
t.expect_nothing_more()
|
||||
|
||||
# Test project ids in command line work as well
|
||||
t.set_tree("project-test3")
|
||||
t.run_build_system("@/lib2")
|
||||
t.expect_addition("lib2/bin/gcc/debug/" * List("c.obj d.obj l.exe"))
|
||||
t.expect_addition("bin/gcc/debug/a.obj")
|
||||
t.expect_addition("lib2/bin/$toolset/debug/" * List("c.obj d.obj l.exe"))
|
||||
t.expect_addition("bin/$toolset/debug/a.obj")
|
||||
t.expect_nothing_more()
|
||||
|
||||
t.run_build_system("lib")
|
||||
t.expect_addition("lib/bin/gcc/debug/" * List("b.obj m.exe"))
|
||||
t.expect_addition("lib/bin/$toolset/debug/" * List("b.obj m.exe"))
|
||||
t.expect_nothing_more()
|
||||
|
||||
t.cleanup()
|
||||
|
||||
@@ -11,28 +11,28 @@ t.set_tree("project-test4")
|
||||
|
||||
t.run_build_system()
|
||||
|
||||
t.expect_addition("bin/gcc/debug/a.obj")
|
||||
t.expect_content("bin/gcc/debug/a.obj",
|
||||
t.expect_addition("bin/$toolset/debug/a.obj")
|
||||
t.expect_content("bin/$toolset/debug/a.obj",
|
||||
"""gcc/debug/include-everything
|
||||
a.cpp
|
||||
""")
|
||||
|
||||
t.expect_addition("bin/gcc/debug/a.exe")
|
||||
t.expect_content("bin/gcc/debug/a.exe",
|
||||
t.expect_addition("bin/$toolset/debug/a.exe")
|
||||
t.expect_content("bin/$toolset/debug/a.exe",
|
||||
"gcc/debug/include-everything\n" +
|
||||
"bin/gcc/debug/a.obj lib/bin/gcc/debug/optimization-speed/b.obj\n"
|
||||
"bin/$toolset/debug/a.obj lib/bin/$toolset/debug/optimization-speed/b.obj\n"
|
||||
)
|
||||
|
||||
t.expect_addition("lib/bin/gcc/debug/optimization-speed/b.obj")
|
||||
t.expect_content("lib/bin/gcc/debug/optimization-speed/b.obj",
|
||||
t.expect_addition("lib/bin/$toolset/debug/optimization-speed/b.obj")
|
||||
t.expect_content("lib/bin/$toolset/debug/optimization-speed/b.obj",
|
||||
"""gcc/debug/include-everything/optimization-speed
|
||||
lib/b.cpp
|
||||
""")
|
||||
|
||||
t.expect_addition("bin/gcc/debug/main-target-b.exe/b.exe")
|
||||
t.expect_content("bin/gcc/debug/main-target-b.exe/b.exe",
|
||||
t.expect_addition("bin/$toolset/debug/main-target-b.exe/b.exe")
|
||||
t.expect_content("bin/$toolset/debug/main-target-b.exe/b.exe",
|
||||
"gcc/debug/define-MACROS/include-everything\n" +
|
||||
"bin/gcc/debug/a.obj\n"
|
||||
"bin/$toolset/debug/a.obj\n"
|
||||
)
|
||||
|
||||
|
||||
@@ -71,17 +71,17 @@ t.fail_test(find(t.stdout(), expected) != 0)
|
||||
|
||||
#t.run_build_system()
|
||||
|
||||
#t.expect_addition("bin/gcc/debug/a_gcc.obj")
|
||||
#t.expect_content("bin/gcc/debug/a_gcc.obj",
|
||||
#t.expect_addition("bin/$toolset/debug/a_gcc.obj")
|
||||
#t.expect_content("bin/$toolset/debug/a_gcc.obj",
|
||||
#"""gcc/debug
|
||||
#a_gcc.cpp
|
||||
#""")
|
||||
|
||||
#t.expect_content("bin/gcc/debug/a.exe",
|
||||
#t.expect_content("bin/$toolset/debug/a.exe",
|
||||
#"gcc/debug\n" +
|
||||
#"bin/gcc/debug/a.obj " +
|
||||
#"lib/bin/gcc/debug/optimization-speed/b.obj " +
|
||||
#"bin/gcc/debug/a_gcc.obj\n"
|
||||
#"bin/$toolset/debug/a.obj " +
|
||||
#"lib/bin/$toolset/debug/optimization-speed/b.obj " +
|
||||
#"bin/$toolset/debug/a_gcc.obj\n"
|
||||
#)
|
||||
|
||||
# Test that if we specified composite property in target reference,
|
||||
@@ -92,11 +92,11 @@ t.copy("Jamfile5", "Jamfile")
|
||||
|
||||
t.run_build_system()
|
||||
|
||||
t.expect_addition("lib/bin/gcc/release/b.obj")
|
||||
t.expect_addition("lib/bin/$toolset/release/b.obj")
|
||||
|
||||
t.expect_content("bin/gcc/debug/a.exe",
|
||||
t.expect_content("bin/$toolset/debug/a.exe",
|
||||
"gcc/debug/include-everything\n" +
|
||||
"bin/gcc/debug/a.obj lib/bin/gcc/release/b.obj\n"
|
||||
"bin/$toolset/debug/a.obj lib/bin/$toolset/release/b.obj\n"
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -13,9 +13,9 @@ t.write("lib/Jamfile", "lib test_lib : test_lib.cpp ;")
|
||||
t.write("lib/test_lib.cpp", "void foo() {}\n");
|
||||
|
||||
t.run_build_system(subdir="lib")
|
||||
t.expect_addition("lib/bin/gcc/debug/test_lib.dll")
|
||||
t.expect_addition("lib/bin/$toolset/debug/test_lib.dll")
|
||||
|
||||
t.copy("lib/bin/gcc/debug/test_lib.dll", "lib/libtest_lib.dll")
|
||||
t.copy("lib/bin/$toolset/debug/test_lib.dll", "lib/libtest_lib.dll")
|
||||
|
||||
|
||||
# A regression test: <library>property referring to
|
||||
|
||||
@@ -15,6 +15,7 @@ t = Tester(
|
||||
executable='jam'
|
||||
, match=match_re
|
||||
, boost_build_path=''
|
||||
, pass_toolset=0
|
||||
)
|
||||
|
||||
t.set_tree('startup')
|
||||
|
||||
@@ -11,6 +11,7 @@ def match_re(actual,expected):
|
||||
t = Tester(
|
||||
match= match_re
|
||||
, boost_build_path=''
|
||||
, pass_toolset=0
|
||||
)
|
||||
|
||||
t.set_tree('startup')
|
||||
|
||||
@@ -8,7 +8,7 @@ t = Tester()
|
||||
t.set_tree("test2")
|
||||
t.run_build_system("-sBOOST_BUILD_PATH=" + t.original_workdir + "/..")
|
||||
|
||||
file_list = 'bin/foo/gcc/debug/runtime-link-dynamic/' * List("foo foo.o")
|
||||
file_list = 'bin/foo/$toolset/debug/runtime-link-dynamic/' * List("foo foo.o")
|
||||
t.expect_addition(file_list)
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
from BoostBuild import Tester
|
||||
|
||||
t = Tester()
|
||||
t = Tester(pass_toolset=0)
|
||||
t.run_build_system(extra_args="--debug --build-system=test")
|
||||
|
||||
t.cleanup()
|
||||
t.cleanup()
|
||||
|
||||
@@ -162,6 +162,6 @@ void foo() {}
|
||||
""")
|
||||
|
||||
t.run_build_system("link=static")
|
||||
t.expect_addition("libs/bin/gcc/debug/link-static/a_d.o")
|
||||
t.expect_addition("libs/bin/$toolset/debug/link-static/a_d.o")
|
||||
|
||||
t.cleanup()
|
||||
|
||||
@@ -11,10 +11,22 @@ import time
|
||||
import tempfile
|
||||
import sys
|
||||
|
||||
def get_toolset():
|
||||
if (len(sys.argv) > 1):
|
||||
return sys.argv[1]
|
||||
else:
|
||||
return "gcc"
|
||||
|
||||
|
||||
# Prepare the map of suffixes
|
||||
suffixes = {'.exe': '', '.dll': '.so', '.lib': '.a'}
|
||||
suffixes = {'.exe': '', '.dll': '.so', '.lib': '.a', '.obj': '.o'}
|
||||
if os.environ.get('OS','').lower().startswith('windows'):
|
||||
suffixes = {'.lib': '.a'} # static libs have '.a' suffix with mingw...
|
||||
suffixes = {}
|
||||
if get_toolset() in ["gcc"]:
|
||||
suffixes['.lib'] = '.a' # static libs have '.a' suffix with mingw...
|
||||
suffixes['.obj'] = '.o'
|
||||
|
||||
|
||||
|
||||
#
|
||||
# FIXME: this is copy-pasted from TestSCons.py
|
||||
@@ -47,13 +59,18 @@ class Tester(TestCmd.TestCmd):
|
||||
"""
|
||||
def __init__(self, arguments="", executable = 'bjam', match =
|
||||
TestCmd.match_exact, boost_build_path = None,
|
||||
translate_suffixes = 1,
|
||||
translate_suffixes = 1, pass_toolset = 1,
|
||||
**keywords):
|
||||
|
||||
self.original_workdir = os.getcwd()
|
||||
self.last_build_time = 0
|
||||
self.translate_suffixes = translate_suffixes
|
||||
|
||||
self.toolset = get_toolset()
|
||||
|
||||
if pass_toolset:
|
||||
arguments = self.toolset + " " + arguments
|
||||
|
||||
jam_build_dir = ""
|
||||
if os.name == 'nt':
|
||||
jam_build_dir = "bin.ntx86"
|
||||
@@ -353,11 +370,14 @@ class Tester(TestCmd.TestCmd):
|
||||
self.fail_test(1)
|
||||
|
||||
def expect_content(self, name, content, exact=0):
|
||||
name = self.adjust_names(name)[0]
|
||||
if exact:
|
||||
actual = self.read(name)
|
||||
else:
|
||||
actual = string.replace(self.read_and_strip(name), "\\", "/")
|
||||
|
||||
content = string.replace(content, "$toolset", self.toolset)
|
||||
|
||||
if actual != content:
|
||||
print "Expected:\n"
|
||||
print content
|
||||
@@ -428,10 +448,12 @@ class Tester(TestCmd.TestCmd):
|
||||
def adjust_names(self, names):
|
||||
if type(names) == types.StringType:
|
||||
names = [names]
|
||||
return map(self.adjust_suffix, names)
|
||||
r = map(self.adjust_suffix, names)
|
||||
r = map(lambda x: string.replace(x, "$toolset", self.toolset), r)
|
||||
return r
|
||||
|
||||
def native_file_name(self, name):
|
||||
name = self.adjust_suffix(name)
|
||||
name = self.adjust_names(name)[0]
|
||||
elements = string.split(name, "/")
|
||||
return os.path.normpath(apply(os.path.join, [self.workdir]+elements))
|
||||
|
||||
|
||||
@@ -24,8 +24,8 @@ t.write("src/b.cpp", "int main() {}\n")
|
||||
|
||||
t.run_build_system()
|
||||
|
||||
t.expect_addition(["build/bin/gcc/debug/a.exe",
|
||||
"build/src/bin/gcc/debug/b.exe"])
|
||||
t.expect_addition(["build/bin/$toolset/debug/a.exe",
|
||||
"build/src/bin/$toolset/debug/b.exe"])
|
||||
|
||||
# Test that building from child projects work
|
||||
t.run_build_system(subdir='src')
|
||||
@@ -45,7 +45,7 @@ exe b : b.cpp ;
|
||||
""")
|
||||
|
||||
t.run_build_system()
|
||||
t.expect_addition(["bin/gcc/debug/a.exe",
|
||||
"src/build/bin/gcc/debug/b.exe"])
|
||||
t.expect_addition(["bin/$toolset/debug/a.exe",
|
||||
"src/build/bin/$toolset/debug/b.exe"])
|
||||
|
||||
t.cleanup()
|
||||
|
||||
@@ -48,6 +48,6 @@ make b.cpp : : create ;
|
||||
t.write("a.cpp", "")
|
||||
|
||||
t.run_build_system()
|
||||
t.expect_addition("bin/gcc/debug/a.exe")
|
||||
t.expect_addition("bin/$toolset/debug/a.exe")
|
||||
|
||||
t.cleanup()
|
||||
|
||||
@@ -16,13 +16,13 @@ int main() {}
|
||||
""")
|
||||
t.write("Jamfile", "exe a : a.cpp : <link>static:<define>STATIC ;")
|
||||
t.run_build_system("link=static")
|
||||
t.expect_addition("bin/gcc/debug/link-static/main-target-a/a.exe")
|
||||
t.expect_addition("bin/$toolset/debug/link-static/main-target-a/a.exe")
|
||||
|
||||
t.write("Jamfile", """
|
||||
project : requirements <link>static:<define>STATIC ;
|
||||
exe a : a.cpp ;
|
||||
""")
|
||||
t.run_build_system("link=static")
|
||||
t.expect_addition("bin/gcc/debug/link-static/a.exe")
|
||||
t.expect_addition("bin/$toolset/debug/link-static/a.exe")
|
||||
|
||||
t.cleanup()
|
||||
|
||||
@@ -3,15 +3,15 @@
|
||||
# Test that default build clause actually has any effect.
|
||||
|
||||
from BoostBuild import Tester
|
||||
t = Tester()
|
||||
t = Tester(pass_toolset=0)
|
||||
|
||||
t.write("project-root.jam", "import gcc ;")
|
||||
t.write("Jamfile", "exe a : a.cpp : : debug release ;")
|
||||
t.write("a.cpp", "int main() {}\n")
|
||||
|
||||
t.run_build_system()
|
||||
t.expect_addition("bin/gcc/debug/a.exe")
|
||||
t.expect_addition("bin/gcc/release/a.exe")
|
||||
t.expect_addition("bin/$toolset/debug/a.exe")
|
||||
t.expect_addition("bin/$toolset/release/a.exe")
|
||||
|
||||
# Now try a harder example: default build which contains <define>
|
||||
# should cause <define> to be present when "b" is compiled.
|
||||
|
||||
@@ -8,9 +8,9 @@ t.set_tree("dependency-test")
|
||||
t.run_build_system()
|
||||
# Check that main target 'c' was able to find 'x.h' from
|
||||
# 'a's dependency graph
|
||||
t.expect_addition("bin/gcc/debug/main-target-c/c.exe")
|
||||
t.expect_addition("bin/$toolset/debug/main-target-c/c.exe")
|
||||
# Check that main target 'e' was able to find 'y.h'
|
||||
t.expect_addition("bin/gcc/debug/main-target-e/e.exe")
|
||||
t.expect_addition("bin/$toolset/debug/main-target-e/e.exe")
|
||||
|
||||
# Check handling of first level includes.
|
||||
|
||||
@@ -18,35 +18,35 @@ t.expect_addition("bin/gcc/debug/main-target-e/e.exe")
|
||||
t.touch("a.h")
|
||||
t.run_build_system()
|
||||
|
||||
t.expect_touch("bin/gcc/debug/a.exe")
|
||||
t.expect_touch("bin/gcc/debug/a.o")
|
||||
t.expect_touch("bin/gcc/debug/b.exe")
|
||||
t.expect_touch("bin/gcc/debug/b.o")
|
||||
t.expect_touch("bin/gcc/debug/main-target-c/c.exe")
|
||||
t.expect_touch("bin/$toolset/debug/a.exe")
|
||||
t.expect_touch("bin/$toolset/debug/a.o")
|
||||
t.expect_touch("bin/$toolset/debug/b.exe")
|
||||
t.expect_touch("bin/$toolset/debug/b.o")
|
||||
t.expect_touch("bin/$toolset/debug/main-target-c/c.exe")
|
||||
t.expect_nothing_more()
|
||||
|
||||
# Only 'a' include <a.h> and should be updated
|
||||
t.touch("src1/a.h")
|
||||
t.run_build_system()
|
||||
|
||||
t.expect_touch("bin/gcc/debug/a.exe")
|
||||
t.expect_touch("bin/gcc/debug/a.o")
|
||||
t.expect_touch("bin/gcc/debug/main-target-c/c.exe")
|
||||
t.expect_touch("bin/$toolset/debug/a.exe")
|
||||
t.expect_touch("bin/$toolset/debug/a.o")
|
||||
t.expect_touch("bin/$toolset/debug/main-target-c/c.exe")
|
||||
t.expect_nothing_more()
|
||||
|
||||
# "src/a.h" includes "b.h" (in the same dir)
|
||||
t.touch("src1/b.h")
|
||||
t.run_build_system()
|
||||
t.expect_touch("bin/gcc/debug/a.exe")
|
||||
t.expect_touch("bin/gcc/debug/a.o")
|
||||
t.expect_touch("bin/gcc/debug/main-target-c/c.exe")
|
||||
t.expect_touch("bin/$toolset/debug/a.exe")
|
||||
t.expect_touch("bin/$toolset/debug/a.o")
|
||||
t.expect_touch("bin/$toolset/debug/main-target-c/c.exe")
|
||||
t.expect_nothing_more()
|
||||
|
||||
# included by "src/b.h". We had a bug: file included via "",
|
||||
# like "b.h" is in this case was not scanned at all.
|
||||
t.touch("src1/c.h")
|
||||
t.run_build_system()
|
||||
t.expect_touch("bin/gcc/debug/a.exe")
|
||||
t.expect_touch("bin/$toolset/debug/a.exe")
|
||||
|
||||
t.touch("b.h")
|
||||
t.run_build_system()
|
||||
@@ -58,6 +58,6 @@ t.expect_nothing_more()
|
||||
# support, this check will be implemented later.
|
||||
t.touch("x.foo")
|
||||
t.run_build_system()
|
||||
t.expect_touch("bin/gcc/debug/a.o")
|
||||
t.expect_touch("bin/$toolset/debug/a.o")
|
||||
|
||||
t.cleanup()
|
||||
|
||||
@@ -10,7 +10,7 @@ t = Tester()
|
||||
t.set_tree("direct-request-test")
|
||||
t.run_build_system(extra_args="define=MACROS")
|
||||
|
||||
t.expect_addition("bin/gcc/debug/"
|
||||
t.expect_addition("bin/$toolset/debug/"
|
||||
* (List("a.o b.o b.dll a.exe")))
|
||||
|
||||
|
||||
|
||||
18
v2/test/generators-test/lex.jam
Normal file
18
v2/test/generators-test/lex.jam
Normal file
@@ -0,0 +1,18 @@
|
||||
# Copyright (C) Vladimir Prus 2002. Permission to copy, use, modify, sell and
|
||||
# distribute this software is granted provided this copyright notice appears in
|
||||
# all copies. This software is provided "as is" without express or implied
|
||||
# warranty, and with no claim as to its suitability for any purpose.
|
||||
|
||||
import type ;
|
||||
import generators ;
|
||||
import feature ;
|
||||
import property ;
|
||||
|
||||
type.register LEX : l ;
|
||||
|
||||
generators.register-standard lex.lex : LEX : C ;
|
||||
|
||||
actions lex
|
||||
{
|
||||
touch $(<)
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
import class : class new ;
|
||||
|
||||
import gcc ;
|
||||
import borland ;
|
||||
import lex ;
|
||||
import qt ;
|
||||
import extra ;
|
||||
|
||||
@@ -9,26 +9,26 @@ t.set_tree("generators-test")
|
||||
t.run_build_system()
|
||||
|
||||
t.expect_addition(
|
||||
"bin/gcc/debug/"
|
||||
"bin/$toolset/debug/"
|
||||
* (
|
||||
List(
|
||||
"a.o b.o c.h c.cpp c.o d_parser.whl d_lexer.dlp d_parser.cpp d_lexer.cpp "
|
||||
+ "d_parser.lr0 x.c x.o y.x1 y.x2 "
|
||||
+ "y.cpp y.o e.marked.cpp e.positions e.target.cpp e.o "
|
||||
"a.obj b.obj c.h c.cpp c.obj d_parser.whl d_lexer.dlp d_parser.cpp d_lexer.cpp "
|
||||
+ "d_parser.lr0 x.c x.obj y.x1 y.x2 "
|
||||
+ "y.cpp y.obj e.marked.cpp e.positions e.target.cpp e.obj "
|
||||
+ "a.exe e.exe"))
|
||||
)
|
||||
|
||||
t.expect_addition(["lib/bin/gcc/debug/c.o",
|
||||
"lib/bin/gcc/debug/auxilliary.lib",
|
||||
t.expect_addition(["lib/bin/$toolset/debug/c.obj",
|
||||
"lib/bin/$toolset/debug/auxilliary.lib",
|
||||
])
|
||||
|
||||
|
||||
t.run_build_system(subdir='lib')
|
||||
|
||||
t.expect_addition(["lib/bin/gcc/debug/auxilliary2.dll"])
|
||||
t.expect_addition(["lib/bin/$toolset/debug/auxilliary2.dll"])
|
||||
|
||||
t.run_build_system(subdir='lib', extra_args="link=static")
|
||||
|
||||
t.expect_addition(["lib/bin/gcc/debug/link-static/auxilliary2.lib"])
|
||||
t.expect_addition(["lib/bin/$toolset/debug/link-static/auxilliary2.lib"])
|
||||
|
||||
t.cleanup()
|
||||
|
||||
@@ -20,7 +20,7 @@ int main() { foo(); }
|
||||
t.write("b.cpp", "void foo() {}\n")
|
||||
|
||||
t.run_build_system()
|
||||
t.expect_addition("bin/gcc/debug/main-target-b/b.o")
|
||||
t.expect_addition("bin/$toolset/debug/main-target-b/b.o")
|
||||
|
||||
# This tests another bug: when source file was used by two main targets,
|
||||
# one without any requirements and another with free requirements, it
|
||||
@@ -36,7 +36,7 @@ int main() {}
|
||||
|
||||
t.rm("bin")
|
||||
t.run_build_system()
|
||||
t.expect_addition(["bin/gcc/debug/a.o", "bin/gcc/debug/main-target-b/a.o"])
|
||||
t.expect_addition(["bin/$toolset/debug/a.o", "bin/$toolset/debug/main-target-b/a.o"])
|
||||
|
||||
|
||||
t.cleanup()
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
from BoostBuild import Tester
|
||||
from string import find
|
||||
|
||||
t = Tester()
|
||||
t = Tester(pass_toolset=0)
|
||||
|
||||
t.write("project-root.jam", "")
|
||||
t.write("Jamfile", """
|
||||
|
||||
@@ -7,7 +7,7 @@ import re
|
||||
spaces_re = re.compile("\ \ +")
|
||||
trailing_spaces_re = re.compile("\ +\n")
|
||||
|
||||
t = Tester()
|
||||
t = Tester(pass_toolset=0)
|
||||
|
||||
t.set_tree('module-actions')
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ t.copy("ext/Jamfile2", "ext/Jamfile")
|
||||
# libraries are used.
|
||||
|
||||
t.run_build_system("debug release")
|
||||
t.expect_addition("bin/gcc/debug/main-target-hello/hello.exe")
|
||||
t.expect_addition("bin/gcc/release/main-target-hello/hello.exe")
|
||||
t.expect_addition("bin/$toolset/debug/main-target-hello/hello.exe")
|
||||
t.expect_addition("bin/$toolset/release/main-target-hello/hello.exe")
|
||||
|
||||
t.cleanup()
|
||||
|
||||
@@ -30,7 +30,7 @@ t.copy("src/a.cpp", "src/b.cpp")
|
||||
t.run_build_system()
|
||||
|
||||
# Test that there's no "main-target-a" part.
|
||||
t.expect_addition("src/bin/gcc/debug/" * List("a.exe b.exe"))
|
||||
t.expect_addition("src/bin/$toolset/debug/" * List("a.exe b.exe"))
|
||||
|
||||
|
||||
t.cleanup()
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
from BoostBuild import Tester
|
||||
import os
|
||||
|
||||
t = Tester("--build-system=project-test1", boost_build_path='')
|
||||
t = Tester("--build-system=project-test1", boost_build_path='', pass_toolset=0)
|
||||
|
||||
# This test does no modifications, so run in in the invocation dir
|
||||
|
||||
|
||||
@@ -18,112 +18,112 @@ Please consult the documentation at 'http://www.boost.org'.
|
||||
t.set_tree("project-test3")
|
||||
t.run_build_system()
|
||||
|
||||
t.expect_addition("bin/gcc/debug/a.obj")
|
||||
t.expect_content("bin/gcc/debug/a.obj",
|
||||
t.expect_addition("bin/$toolset/debug/a.obj")
|
||||
t.expect_content("bin/$toolset/debug/a.obj",
|
||||
"""gcc/debug
|
||||
a.cpp
|
||||
""")
|
||||
|
||||
t.expect_addition("bin/gcc/debug/a.exe")
|
||||
t.expect_content("bin/gcc/debug/a.exe",
|
||||
t.expect_addition("bin/$toolset/debug/a.exe")
|
||||
t.expect_content("bin/$toolset/debug/a.exe",
|
||||
"gcc/debug\n" +
|
||||
"bin/gcc/debug/a.obj lib/bin/gcc/debug/b.obj " +
|
||||
"lib2/bin/gcc/debug/c.obj lib2/bin/gcc/debug/d.obj " +
|
||||
"lib2/helper/bin/gcc/debug/e.obj " +
|
||||
"lib3/bin/gcc/debug/f.obj\n"
|
||||
"bin/$toolset/debug/a.obj lib/bin/$toolset/debug/b.obj " +
|
||||
"lib2/bin/$toolset/debug/c.obj lib2/bin/$toolset/debug/d.obj " +
|
||||
"lib2/helper/bin/$toolset/debug/e.obj " +
|
||||
"lib3/bin/$toolset/debug/f.obj\n"
|
||||
)
|
||||
|
||||
t.expect_addition("lib/bin/gcc/debug/b.obj")
|
||||
t.expect_content("lib/bin/gcc/debug/b.obj",
|
||||
t.expect_addition("lib/bin/$toolset/debug/b.obj")
|
||||
t.expect_content("lib/bin/$toolset/debug/b.obj",
|
||||
"""gcc/debug
|
||||
lib/b.cpp
|
||||
""")
|
||||
|
||||
t.expect_addition("lib/bin/gcc/debug/m.exe")
|
||||
t.expect_content("lib/bin/gcc/debug/m.exe",
|
||||
t.expect_addition("lib/bin/$toolset/debug/m.exe")
|
||||
t.expect_content("lib/bin/$toolset/debug/m.exe",
|
||||
"""gcc/debug
|
||||
lib/bin/gcc/debug/b.obj lib2/bin/gcc/debug/c.obj
|
||||
lib/bin/$toolset/debug/b.obj lib2/bin/$toolset/debug/c.obj
|
||||
""")
|
||||
|
||||
t.expect_addition("lib2/bin/gcc/debug/c.obj")
|
||||
t.expect_content("lib2/bin/gcc/debug/c.obj",
|
||||
t.expect_addition("lib2/bin/$toolset/debug/c.obj")
|
||||
t.expect_content("lib2/bin/$toolset/debug/c.obj",
|
||||
"""gcc/debug
|
||||
lib2/c.cpp
|
||||
""")
|
||||
|
||||
t.expect_addition("lib2/bin/gcc/debug/d.obj")
|
||||
t.expect_content("lib2/bin/gcc/debug/d.obj",
|
||||
t.expect_addition("lib2/bin/$toolset/debug/d.obj")
|
||||
t.expect_content("lib2/bin/$toolset/debug/d.obj",
|
||||
"""gcc/debug
|
||||
lib2/d.cpp
|
||||
""")
|
||||
|
||||
t.expect_addition("lib2/bin/gcc/debug/l.exe")
|
||||
t.expect_content("lib2/bin/gcc/debug/l.exe",
|
||||
t.expect_addition("lib2/bin/$toolset/debug/l.exe")
|
||||
t.expect_content("lib2/bin/$toolset/debug/l.exe",
|
||||
"""gcc/debug
|
||||
lib2/bin/gcc/debug/c.obj bin/gcc/debug/a.obj
|
||||
lib2/bin/$toolset/debug/c.obj bin/$toolset/debug/a.obj
|
||||
""")
|
||||
|
||||
t.expect_addition("lib2/helper/bin/gcc/debug/e.obj")
|
||||
t.expect_content("lib2/helper/bin/gcc/debug/e.obj",
|
||||
t.expect_addition("lib2/helper/bin/$toolset/debug/e.obj")
|
||||
t.expect_content("lib2/helper/bin/$toolset/debug/e.obj",
|
||||
"""gcc/debug
|
||||
lib2/helper/e.cpp
|
||||
""")
|
||||
|
||||
t.expect_addition("lib3/bin/gcc/debug/f.obj")
|
||||
t.expect_content("lib3/bin/gcc/debug/f.obj",
|
||||
t.expect_addition("lib3/bin/$toolset/debug/f.obj")
|
||||
t.expect_content("lib3/bin/$toolset/debug/f.obj",
|
||||
"""gcc/debug
|
||||
lib3/f.cpp lib2/helper/bin/gcc/debug/e.obj
|
||||
lib3/f.cpp lib2/helper/bin/$toolset/debug/e.obj
|
||||
""")
|
||||
|
||||
|
||||
t.touch("a.cpp")
|
||||
t.run_build_system()
|
||||
t.expect_touch(["bin/gcc/debug/a.obj",
|
||||
"bin/gcc/debug/a.exe",
|
||||
"lib2/bin/gcc/debug/l.exe"])
|
||||
t.expect_touch(["bin/$toolset/debug/a.obj",
|
||||
"bin/$toolset/debug/a.exe",
|
||||
"lib2/bin/$toolset/debug/l.exe"])
|
||||
|
||||
|
||||
t.run_build_system(extra_args="release optimization=off,speed")
|
||||
t.expect_addition([ "bin/gcc/release/a.exe",
|
||||
"bin/gcc/release/a.obj",
|
||||
"bin/gcc/release/optimization-off/a.exe",
|
||||
"bin/gcc/release/optimization-off/a.obj"])
|
||||
t.expect_addition([ "bin/$toolset/release/a.exe",
|
||||
"bin/$toolset/release/a.obj",
|
||||
"bin/$toolset/release/optimization-off/a.exe",
|
||||
"bin/$toolset/release/optimization-off/a.obj"])
|
||||
|
||||
t.run_build_system(extra_args='clean')
|
||||
t.expect_removal(["bin/gcc/debug/a.obj",
|
||||
"bin/gcc/debug/a.exe",
|
||||
"lib/bin/gcc/debug/b.obj",
|
||||
"lib/bin/gcc/debug/m.exe",
|
||||
"lib2/bin/gcc/debug/c.obj",
|
||||
"lib2/bin/gcc/debug/d.obj",
|
||||
"lib2/bin/gcc/debug/l.exe",
|
||||
"lib3/bin/gcc/debug/f.obj",
|
||||
t.expect_removal(["bin/$toolset/debug/a.obj",
|
||||
"bin/$toolset/debug/a.exe",
|
||||
"lib/bin/$toolset/debug/b.obj",
|
||||
"lib/bin/$toolset/debug/m.exe",
|
||||
"lib2/bin/$toolset/debug/c.obj",
|
||||
"lib2/bin/$toolset/debug/d.obj",
|
||||
"lib2/bin/$toolset/debug/l.exe",
|
||||
"lib3/bin/$toolset/debug/f.obj",
|
||||
])
|
||||
|
||||
# Now test target ids in command line
|
||||
t.set_tree("project-test3")
|
||||
t.run_build_system("lib/b.obj")
|
||||
t.expect_addition("lib/bin/gcc/debug/b.obj")
|
||||
t.expect_addition("lib/bin/$toolset/debug/b.obj")
|
||||
t.expect_nothing_more()
|
||||
|
||||
t.run_build_system("clean lib/b.obj")
|
||||
t.expect_removal("lib/bin/gcc/debug/b.obj")
|
||||
t.expect_removal("lib/bin/$toolset/debug/b.obj")
|
||||
t.expect_nothing_more()
|
||||
|
||||
t.run_build_system("release lib2@helper/e.obj @/lib3/f.obj")
|
||||
t.expect_addition("lib2/helper/bin/gcc/release/e.obj")
|
||||
t.expect_addition("lib3/bin/gcc/release/f.obj")
|
||||
t.expect_addition("lib2/helper/bin/$toolset/release/e.obj")
|
||||
t.expect_addition("lib3/bin/$toolset/release/f.obj")
|
||||
t.expect_nothing_more()
|
||||
|
||||
# Test project ids in command line work as well
|
||||
t.set_tree("project-test3")
|
||||
t.run_build_system("@/lib2")
|
||||
t.expect_addition("lib2/bin/gcc/debug/" * List("c.obj d.obj l.exe"))
|
||||
t.expect_addition("bin/gcc/debug/a.obj")
|
||||
t.expect_addition("lib2/bin/$toolset/debug/" * List("c.obj d.obj l.exe"))
|
||||
t.expect_addition("bin/$toolset/debug/a.obj")
|
||||
t.expect_nothing_more()
|
||||
|
||||
t.run_build_system("lib")
|
||||
t.expect_addition("lib/bin/gcc/debug/" * List("b.obj m.exe"))
|
||||
t.expect_addition("lib/bin/$toolset/debug/" * List("b.obj m.exe"))
|
||||
t.expect_nothing_more()
|
||||
|
||||
t.cleanup()
|
||||
|
||||
@@ -11,28 +11,28 @@ t.set_tree("project-test4")
|
||||
|
||||
t.run_build_system()
|
||||
|
||||
t.expect_addition("bin/gcc/debug/a.obj")
|
||||
t.expect_content("bin/gcc/debug/a.obj",
|
||||
t.expect_addition("bin/$toolset/debug/a.obj")
|
||||
t.expect_content("bin/$toolset/debug/a.obj",
|
||||
"""gcc/debug/include-everything
|
||||
a.cpp
|
||||
""")
|
||||
|
||||
t.expect_addition("bin/gcc/debug/a.exe")
|
||||
t.expect_content("bin/gcc/debug/a.exe",
|
||||
t.expect_addition("bin/$toolset/debug/a.exe")
|
||||
t.expect_content("bin/$toolset/debug/a.exe",
|
||||
"gcc/debug/include-everything\n" +
|
||||
"bin/gcc/debug/a.obj lib/bin/gcc/debug/optimization-speed/b.obj\n"
|
||||
"bin/$toolset/debug/a.obj lib/bin/$toolset/debug/optimization-speed/b.obj\n"
|
||||
)
|
||||
|
||||
t.expect_addition("lib/bin/gcc/debug/optimization-speed/b.obj")
|
||||
t.expect_content("lib/bin/gcc/debug/optimization-speed/b.obj",
|
||||
t.expect_addition("lib/bin/$toolset/debug/optimization-speed/b.obj")
|
||||
t.expect_content("lib/bin/$toolset/debug/optimization-speed/b.obj",
|
||||
"""gcc/debug/include-everything/optimization-speed
|
||||
lib/b.cpp
|
||||
""")
|
||||
|
||||
t.expect_addition("bin/gcc/debug/main-target-b.exe/b.exe")
|
||||
t.expect_content("bin/gcc/debug/main-target-b.exe/b.exe",
|
||||
t.expect_addition("bin/$toolset/debug/main-target-b.exe/b.exe")
|
||||
t.expect_content("bin/$toolset/debug/main-target-b.exe/b.exe",
|
||||
"gcc/debug/define-MACROS/include-everything\n" +
|
||||
"bin/gcc/debug/a.obj\n"
|
||||
"bin/$toolset/debug/a.obj\n"
|
||||
)
|
||||
|
||||
|
||||
@@ -71,17 +71,17 @@ t.fail_test(find(t.stdout(), expected) != 0)
|
||||
|
||||
#t.run_build_system()
|
||||
|
||||
#t.expect_addition("bin/gcc/debug/a_gcc.obj")
|
||||
#t.expect_content("bin/gcc/debug/a_gcc.obj",
|
||||
#t.expect_addition("bin/$toolset/debug/a_gcc.obj")
|
||||
#t.expect_content("bin/$toolset/debug/a_gcc.obj",
|
||||
#"""gcc/debug
|
||||
#a_gcc.cpp
|
||||
#""")
|
||||
|
||||
#t.expect_content("bin/gcc/debug/a.exe",
|
||||
#t.expect_content("bin/$toolset/debug/a.exe",
|
||||
#"gcc/debug\n" +
|
||||
#"bin/gcc/debug/a.obj " +
|
||||
#"lib/bin/gcc/debug/optimization-speed/b.obj " +
|
||||
#"bin/gcc/debug/a_gcc.obj\n"
|
||||
#"bin/$toolset/debug/a.obj " +
|
||||
#"lib/bin/$toolset/debug/optimization-speed/b.obj " +
|
||||
#"bin/$toolset/debug/a_gcc.obj\n"
|
||||
#)
|
||||
|
||||
# Test that if we specified composite property in target reference,
|
||||
@@ -92,11 +92,11 @@ t.copy("Jamfile5", "Jamfile")
|
||||
|
||||
t.run_build_system()
|
||||
|
||||
t.expect_addition("lib/bin/gcc/release/b.obj")
|
||||
t.expect_addition("lib/bin/$toolset/release/b.obj")
|
||||
|
||||
t.expect_content("bin/gcc/debug/a.exe",
|
||||
t.expect_content("bin/$toolset/debug/a.exe",
|
||||
"gcc/debug/include-everything\n" +
|
||||
"bin/gcc/debug/a.obj lib/bin/gcc/release/b.obj\n"
|
||||
"bin/$toolset/debug/a.obj lib/bin/$toolset/release/b.obj\n"
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -13,9 +13,9 @@ t.write("lib/Jamfile", "lib test_lib : test_lib.cpp ;")
|
||||
t.write("lib/test_lib.cpp", "void foo() {}\n");
|
||||
|
||||
t.run_build_system(subdir="lib")
|
||||
t.expect_addition("lib/bin/gcc/debug/test_lib.dll")
|
||||
t.expect_addition("lib/bin/$toolset/debug/test_lib.dll")
|
||||
|
||||
t.copy("lib/bin/gcc/debug/test_lib.dll", "lib/libtest_lib.dll")
|
||||
t.copy("lib/bin/$toolset/debug/test_lib.dll", "lib/libtest_lib.dll")
|
||||
|
||||
|
||||
# A regression test: <library>property referring to
|
||||
|
||||
@@ -15,6 +15,7 @@ t = Tester(
|
||||
executable='jam'
|
||||
, match=match_re
|
||||
, boost_build_path=''
|
||||
, pass_toolset=0
|
||||
)
|
||||
|
||||
t.set_tree('startup')
|
||||
|
||||
@@ -11,6 +11,7 @@ def match_re(actual,expected):
|
||||
t = Tester(
|
||||
match= match_re
|
||||
, boost_build_path=''
|
||||
, pass_toolset=0
|
||||
)
|
||||
|
||||
t.set_tree('startup')
|
||||
|
||||
@@ -8,7 +8,7 @@ t = Tester()
|
||||
t.set_tree("test2")
|
||||
t.run_build_system("-sBOOST_BUILD_PATH=" + t.original_workdir + "/..")
|
||||
|
||||
file_list = 'bin/foo/gcc/debug/runtime-link-dynamic/' * List("foo foo.o")
|
||||
file_list = 'bin/foo/$toolset/debug/runtime-link-dynamic/' * List("foo foo.o")
|
||||
t.expect_addition(file_list)
|
||||
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
from BoostBuild import Tester
|
||||
|
||||
t = Tester()
|
||||
t = Tester(pass_toolset=0)
|
||||
t.run_build_system(extra_args="--debug --build-system=test")
|
||||
|
||||
t.cleanup()
|
||||
t.cleanup()
|
||||
|
||||
@@ -162,6 +162,6 @@ void foo() {}
|
||||
""")
|
||||
|
||||
t.run_build_system("link=static")
|
||||
t.expect_addition("libs/bin/gcc/debug/link-static/a_d.o")
|
||||
t.expect_addition("libs/bin/$toolset/debug/link-static/a_d.o")
|
||||
|
||||
t.cleanup()
|
||||
|
||||
Reference in New Issue
Block a user