2744026f64
With sans-jamroot projects we don't get a missing jamroot error. Hence we can get other errors, like in this test that fails to find definitions in the missing jamroot.
136 lines
4.0 KiB
Python
136 lines
4.0 KiB
Python
#!/usr/bin/python
|
|
|
|
# Copyright 2002, 2003 Dave Abrahams
|
|
# Copyright 2002, 2003, 2004, 2006 Vladimir Prus
|
|
# Distributed under the Boost Software License, Version 1.0.
|
|
# (See accompanying file LICENSE_1_0.txt or copy at
|
|
# http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
import BoostBuild
|
|
import os
|
|
|
|
t = BoostBuild.Tester(translate_suffixes=0)
|
|
|
|
# First check some startup.
|
|
t.set_tree("project-test3")
|
|
os.remove("jamroot.jam")
|
|
t.run_build_system(status=1)
|
|
|
|
t.expect_output_lines("*.yfc-compile\" unknown in module*")
|
|
|
|
t.set_tree("project-test3")
|
|
t.run_build_system()
|
|
|
|
t.expect_addition("bin/$toolset/debug*/a.obj")
|
|
t.expect_content("bin/$toolset/debug*/a.obj", """\
|
|
$toolset/debug*
|
|
a.cpp
|
|
""")
|
|
|
|
t.expect_addition("bin/$toolset/debug*/a.exe")
|
|
t.expect_content("bin/$toolset/debug*/a.exe",
|
|
"$toolset/debug*\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/$toolset/debug*/b.obj")
|
|
t.expect_content("lib/bin/$toolset/debug*/b.obj", """\
|
|
$toolset/debug*
|
|
lib/b.cpp
|
|
""")
|
|
|
|
t.expect_addition("lib/bin/$toolset/debug*/m.exe")
|
|
t.expect_content("lib/bin/$toolset/debug*/m.exe", """\
|
|
$toolset/debug*
|
|
lib/bin/$toolset/debug*/b.obj lib2/bin/$toolset/debug*/c.obj
|
|
""")
|
|
|
|
t.expect_addition("lib2/bin/$toolset/debug*/c.obj")
|
|
t.expect_content("lib2/bin/$toolset/debug*/c.obj", """\
|
|
$toolset/debug*
|
|
lib2/c.cpp
|
|
""")
|
|
|
|
t.expect_addition("lib2/bin/$toolset/debug*/d.obj")
|
|
t.expect_content("lib2/bin/$toolset/debug*/d.obj", """\
|
|
$toolset/debug*
|
|
lib2/d.cpp
|
|
""")
|
|
|
|
t.expect_addition("lib2/bin/$toolset/debug*/l.exe")
|
|
t.expect_content("lib2/bin/$toolset/debug*/l.exe", """\
|
|
$toolset/debug*
|
|
lib2/bin/$toolset/debug*/c.obj bin/$toolset/debug*/a.obj
|
|
""")
|
|
|
|
t.expect_addition("lib2/helper/bin/$toolset/debug*/e.obj")
|
|
t.expect_content("lib2/helper/bin/$toolset/debug*/e.obj", """\
|
|
$toolset/debug*
|
|
lib2/helper/e.cpp
|
|
""")
|
|
|
|
t.expect_addition("lib3/bin/$toolset/debug*/f.obj")
|
|
t.expect_content("lib3/bin/$toolset/debug*/f.obj", """\
|
|
$toolset/debug*
|
|
lib3/f.cpp lib2/helper/bin/$toolset/debug*/e.obj
|
|
""")
|
|
|
|
t.touch("a.cpp")
|
|
t.run_build_system()
|
|
t.expect_touch(["bin/$toolset/debug*/a.obj",
|
|
"bin/$toolset/debug*/a.exe",
|
|
"lib2/bin/$toolset/debug*/l.exe"])
|
|
|
|
t.run_build_system(["release", "optimization=off,speed"])
|
|
t.expect_addition(["bin/$toolset/release/optimization-off*/a.exe",
|
|
"bin/$toolset/release/optimization-off*/a.obj",
|
|
"bin/$toolset/release*/a.exe",
|
|
"bin/$toolset/release*/a.obj"])
|
|
|
|
t.run_build_system(["--clean-all"])
|
|
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/$toolset/debug*/b.obj")
|
|
t.expect_nothing_more()
|
|
|
|
t.run_build_system(["--clean", "lib//b.obj"])
|
|
t.expect_removal("lib/bin/$toolset/debug*/b.obj")
|
|
t.expect_nothing_more()
|
|
|
|
t.run_build_system(["lib//b.obj"])
|
|
t.expect_addition("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/$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/$toolset/debug*/" *
|
|
BoostBuild.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/$toolset/debug*/" *
|
|
BoostBuild.List("b.obj m.exe"))
|
|
t.expect_nothing_more()
|
|
|
|
t.cleanup()
|