#!/usr/bin/python # Copyright 2002 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) # Test the very basic 'make' functionality. import BoostBuild t = BoostBuild.Tester() t.set_tree("test1") # Check that we can build something. t.run_build_system("-sTOOLSET=yfc") t.expect_addition("bin/a.obj/yfc/debug/runtime-link-dynamic/a.obj") t.expect_addition("bin/a/yfc/debug/runtime-link-dynamic/a") t.expect_nothing_more() t.fail(t.read("bin/a.obj/yfc/debug/runtime-link-dynamic/a.obj") !=\ """ off on dynamic yfc debug a.cpp """) t.fail(t.read("bin/a/yfc/debug/runtime-link-dynamic/a") !=\ """ off on dynamic yfc debug off on dynamic yfc debug a.cpp """) # Check that we have vanilla target names available. t.touch("a.cpp") t.run_build_system("-sTOOLSET a.obj") t.expect_touch("bin/a.obj/yfc/debug/runtime-link-dynamic/a.obj") t.expect_no_modification("bin/a/yfc/debug/runtime-link-dynamic/a") # Check that if a build request cannot be completely matches, a warning is # issued and a subvariant with link-compatible properties is used. t.write("jamfile.jam", t.read("jamfile2.jam")) stdout="""Warning: cannot exactly satisfy request for ./a with properties off on dynamic yfc debug Using space on dynamic yfc debug instead. """) t.run_build_system("-sTOOLSET=yfc", stdout=stdout) # Check that conflicting link-incompatible requirements prevent building. t.write("jamfile.jam", t.read("jamfile3.jam")) stdout="""Warning: cannot satisfy request for ./a with properties off on dynamic yfc debug Nothing will be built. """) t.run_build_system("-sTOOLSET=yfc", stdout=stdout, status=1) t.pass_test()