| #!/usr/bin/python |
| |
| # Copyright 2014 Steven Watanabe |
| # 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 |
| import sys |
| |
| t = BoostBuild.Tester(pass_toolset=False, pass_d0=False) |
| |
| t.write("file.jam", """ |
| actions run { |
| $(ACTION) |
| } |
| |
| # Raw commands only work on Windows |
| if $(OS) = NT |
| { |
| JAMSHELL on test-raw = % ; |
| JAMSHELL on test-raw-fail = % ; |
| } |
| ACTION on test-raw = "\"$(PYTHON)\" -V" ; |
| run test-raw ; |
| |
| ACTION on test-raw-fail = missing-executable ; |
| run test-raw-fail ; |
| |
| # On Windows, the command is stored in a temporary |
| # file. On other systems it is passed directly. |
| if $(OS) = NT |
| { |
| JAMSHELL on test-py = $(PYTHON) ; |
| } |
| else |
| { |
| JAMSHELL on test-py = $(PYTHON) -c ; |
| } |
| ACTION on test-py = " |
| print \\\",\\\".join([str(x) for x in range(3)]) |
| " ; |
| run test-py ; |
| |
| DEPENDS all : test-raw test-raw-fail test-py ; |
| """) |
| |
| t.run_build_system(["-ffile.jam", "-d1", "-sPYTHON=" + sys.executable], status=1) |
| t.expect_output_lines([ |
| "...failed run test-raw-fail...", |
| "0,1,2", |
| "...failed updating 1 target...", |
| "...updated 2 targets..."]) |
| |
| t.cleanup() |