2
0
mirror of https://github.com/boostorg/build.git synced 2026-01-31 20:12:19 +00:00
Files
build/test/make_rule.py
Vladimir Prus aea0397977 Unbreak 'make_test.py'. Adjust it to not use extra argument to the rule passed
to 'make', sine it's no longer supported.

Allow to call 'flags' on local rule. Use flag settings on local rule to
implement the effect previously achieved with extra arguments.


[SVN r32723]
2006-02-08 09:29:35 +00:00

58 lines
1.2 KiB
Python

#!/usr/bin/python
# Test the 'make' rule
from BoostBuild import Tester
from string import find
t = Tester(pass_toolset=1)
t.write("Jamroot", """
import feature ;
feature.feature test_feature : : free ;
import toolset ;
toolset.flags creator STRING : <test_feature> ;
actions creator
{
echo $(STRING) > $(<)
}
make foo.bar : : creator : <test_feature>12345678 ;
""")
t.run_build_system()
t.expect_addition("bin/$toolset/debug/foo.bar")
t.fail_test(find(t.read("bin/$toolset/debug/foo.bar"), "12345678") == -1)
# Regression test. Make sure that if main target requested two times,
# and build request differ only in incidental properties, the main target
# if created only once. The bug was discovered by Kirill Lapshin.
t.write("Jamroot", """
# Make sure that incidental property does not
# cause second creation of 'hello1.cpp'.
exe a : dir//hello1.cpp ;
exe b : dir//hello1.cpp/<hardcode-dll-paths>true ;
""")
t.write("dir/Jamfile", """
import common ;
make hello1.cpp : hello.cpp : common.copy ;
""")
t.write("dir/hello.cpp", """
int main()
{
return 1;
}
""")
# Show only names of the actions.
t.run_build_system("-d1 -n")
t.fail_test(t.stdout().count("copy") != 1)
t.cleanup()