#!/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) # Regression test: it was possible that due to evaluation of conditional # requirements, two different values of non-free features were present in a # property set. import BoostBuild t = BoostBuild.Tester() t.write("a.cpp", "") t.write("jamroot.jam", """ import feature ; import common ; feature.feature the_feature : false true : propagated ; rule maker ( targets * : sources * : properties * ) { if false in $(properties) && true in $(properties) { EXIT "Oops, two different values of non-free feature" ; } CMD on $(targets) = [ common.file-creation-command ] ; } actions maker { $(CMD) $(<) ; } make a : a.cpp : maker : debug:true ; """) t.run_build_system() t.cleanup()