2
0
mirror of https://github.com/boostorg/build.git synced 2026-02-14 12:42:11 +00:00
Files
build/test/expansion.py
Rene Rivera 40e7f0e8dd Fix tests to pass on Windows after removing toolset requirements ignore.
Various restructure of test framework handling of paths to avoid duplicate path editing which caused failed tests. Adjust many tests to deal with added subdirectories in build outputs now that toolset requirements are active.
2017-07-02 23:28:48 -05:00

81 lines
1.7 KiB
Python

#!/usr/bin/python
# Copyright 2003 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(use_test_config=False)
t.write("a.cpp", """
#ifdef CF_IS_OFF
int main() {}
#endif
""")
t.write("b.cpp", """
#ifdef CF_1
int main() {}
#endif
""")
t.write("c.cpp", """
#ifdef FOO
int main() {}
#endif
""")
t.write("jamfile.jam", """
# See if default value of composite feature 'cf' will be expanded to
# <define>CF_IS_OFF.
exe a : a.cpp ;
# See if subfeature in requirements in expanded.
exe b : b.cpp : <cf>on-1 ;
# See if conditional requirements are recursively expanded.
exe c : c.cpp : <toolset>$toolset:<variant>release <variant>release:<define>FOO
;
""")
t.write("jamroot.jam", """
import feature ;
feature.feature cf : off on : composite incidental ;
feature.compose <cf>off : <define>CF_IS_OFF ;
feature.subfeature cf on : version : 1 2 : composite optional incidental ;
feature.compose <cf-on:version>1 : <define>CF_1 ;
""")
t.expand_toolset("jamfile.jam")
t.run_build_system()
t.expect_addition(["bin/$toolset/debug*/a.exe",
"bin/$toolset/debug*/b.exe",
"bin/$toolset/release*/c.exe"])
t.rm("bin")
# Test for issue BB60.
t.write("test.cpp", """
#include "header.h"
int main() {}
""")
t.write("jamfile.jam", """
project : requirements <toolset>$toolset:<include>foo ;
exe test : test.cpp : <toolset>$toolset ;
""")
t.expand_toolset("jamfile.jam")
t.write("foo/header.h", "\n")
t.write("jamroot.jam", "")
t.run_build_system()
t.expect_addition("bin/$toolset/debug*/test.exe")
t.cleanup()