diff options
Diffstat (limited to 'src/boost/tools/build/test/suffix.py')
-rw-r--r-- | src/boost/tools/build/test/suffix.py | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/src/boost/tools/build/test/suffix.py b/src/boost/tools/build/test/suffix.py new file mode 100644 index 00000000..b31dd173 --- /dev/null +++ b/src/boost/tools/build/test/suffix.py @@ -0,0 +1,78 @@ +#!/usr/bin/python + +# Copyright 2003, 2004 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 + +t = BoostBuild.Tester() + +# Regression test: when staging V2 used to change suffixes on targets +# corresponding to real files. +t.write("jamfile.jam", """ +import type : register ; +register A : a1 a2 a3 ; +stage a : a.a3 ; +""") + +t.write("jamroot.jam", "") +t.write("a.a3", "") + +t.run_build_system() +t.expect_addition("a/a.a3"); + +# Regression test: we should be able to specify empty suffix for derived target +# type, even if base type has non-empty suffix. +t.write("a.cpp", "") + +t.write("suffixes.jam", """ +import type ; +import generators ; +import common ; + +type.register First : first : ; +type.register Second : "" : First ; + +generators.register-standard $(__name__).second : CPP : Second ; + +rule second +{ + TOUCH on $(<) = [ common.file-creation-command ] ; +} + +actions second +{ + $(TOUCH) $(<) +} +""") + +t.write("suffixes.py", """ +import b2.build.type as type +import b2.build.generators as generators +import b2.tools.common as common + +from b2.manager import get_manager + +type.register("First", ["first"]) +type.register("Second", [""], "First") + +generators.register_standard("suffixes.second", ["CPP"], ["Second"]) + +get_manager().engine().register_action("suffixes.second", + "%s $(<)" % common.file_creation_command()) + +""") + +t.write("jamroot.jam", """ +import suffixes ; +""") + +t.write("jamfile.jam", """ +second a : a.cpp ; +""") + +t.run_build_system() +t.expect_addition("bin/a") + +t.cleanup() |