| #~ Copyright 2006-2008 Rene Rivera. |
| #~ 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) |
| |
| TESTS = |
| action_status |
| actions_quietly |
| builtin_normalize_path |
| builtin_shell |
| builtin_w32_getregnames |
| option_d2 |
| option_l |
| option_n |
| parallel_actions |
| parallel_multifile_actions_1 |
| parallel_multifile_actions_2 |
| rule_param |
| stress_var_expand |
| target_var |
| var_expand |
| ; |
| |
| BJAM ?= bjam ; |
| |
| ############################################################################# |
| |
| if $(BJAM_RUN_TEST) |
| { |
| fail-count = 0 ; |
| pass-count = 0 ; |
| |
| rule message ( message * ) |
| { |
| local b = [ BACKTRACE ] ; |
| ECHO "$(b[-4]):$(b[-3]):" $(message) ; |
| } |
| |
| |
| rule fail ( message * ) |
| { |
| fail-count = [ CALC $(fail-count) + 1 ] ; |
| message "error:" [FAILED] $(message) ; |
| } |
| |
| |
| rule pass ( message * ) |
| { |
| pass-count = [ CALC $(pass-count) + 1 ] ; |
| if --verbose in $(ARGV) |
| { |
| message "info:" [PASSED] $(message) ; |
| } |
| } |
| |
| |
| rule assert ( expected * : test ? : obtained * ) |
| { |
| test ?= "(==)" ; |
| local r = 0 ; |
| if $(test) = "(==)" && "*$(expected)*" != "*$(obtained)*" |
| { |
| fail '$(expected)' $(test) '$(obtained)' ; |
| } |
| else if $(test) = "(!=)" && "*$(expected)*" = "*$(obtained)*" |
| { |
| fail '$(expected)' $(test) '$(obtained)' ; |
| } |
| else |
| { |
| pass '$(expected)' $(test) '$(obtained)' ; |
| } |
| } |
| |
| include $(BJAM_RUN_TEST).jam ; |
| |
| EXIT --- $(BJAM_RUN_TEST): PASSED($(pass-count)) *FAILED($(fail-count))* : $(fail-count) ; |
| } |
| else |
| { |
| ECHO "Testing: $(BJAM)" ; |
| fail-count = 0 ; |
| |
| for local test in $(TESTS) |
| { |
| local result = [ SHELL "\"$(BJAM)\" -f test.jam -sBJAM_RUN_TEST=$(test)" : exit-status ] ; |
| fail-count = [ CALC $(fail-count) + $(result[1]) ] ; |
| ECHO $(result[0]) ; |
| } |
| |
| EXIT --- Complete: *FAILED($(fail-count))* : $(fail-count) ; |
| } |