📄 timedata.py
字号:
#!/usr/bin/python# Copyright 2005 David Abrahams# Copyright 2008 Jurko Gospodnetic# 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 the build step timing facilities.import BoostBuildimport re################################################################################## basic_jam_action_test()# -----------------------#################################################################################def basic_jam_action_test(): """Tests basic Jam action timing support.""" t = BoostBuild.Tester(pass_toolset=0) t.write("file.jam", """rule time{ DEPENDS $(<) : $(>) ; __TIMING_RULE__ on $(>) = record_time $(<) ; DEPENDS all : $(<) ;}actions time{ echo $(>) user: $(__USER_TIME__) system: $(__SYSTEM_TIME__) echo timed from $(>) >> $(<)}rule record_time ( target : source : start end user system ){ __USER_TIME__ on $(target) = $(user) ; __SYSTEM_TIME__ on $(target) = $(system) ;}rule make{ DEPENDS $(<) : $(>) ;}actions make{ echo made from $(>) >> $(<)}time foo : bar ;make bar : baz ;""") t.write("baz", "nothing\n") expected_output = """\.\.\.found 4 targets\.\.\.\.\.\.updating 2 targets\.\.\.make bartime foobar +user: [0-9\.]+ +system: +[0-9\.]+ *\.\.\.updated 2 targets\.\.\.$""" t.run_build_system("-ffile.jam -d+1", stdout=expected_output, match=lambda actual, expected: re.search(expected, actual, re.DOTALL)) t.expect_addition("foo") t.expect_addition("bar") t.expect_nothing_more() t.cleanup()################################################################################## boost_build_testing_support_timing_rule():# ------------------------------------------#################################################################################def boost_build_testing_support_timing_rule(): """Tests the target build timing rule provided by the Boost Build testing support system. """ t = BoostBuild.Tester() t.write("aaa.cpp", "int main() {}\n") t.write("jamroot.jam", """import testing ;exe my-exe : aaa.cpp ;time my-time : my-exe ;""") t.run_build_system() t.expect_addition("bin/$toolset/debug/aaa.obj") t.expect_addition("bin/$toolset/debug/my-exe.exe") t.expect_addition("bin/$toolset/debug/my-time.time") t.expect_content_line("bin/$toolset/debug/my-time.time", "user: *") t.expect_content_line("bin/$toolset/debug/my-time.time", "system: *") t.cleanup()################################################################################## boost_build_testing_support_timing_rule_with_spaces_in_names()# --------------------------------------------------------------#################################################################################def boost_build_testing_support_timing_rule_with_spaces_in_names(): """Tests the target build timing rule provided by the Boost Build testing support system when used with targets contining spaces in their names. """ t = BoostBuild.Tester() t.write("aaa bbb.cpp", "int main() {}\n") t.write("jamroot.jam", """import testing ;exe "my exe" : "aaa bbb.cpp" ;time "my time" : "my exe" ;""") t.run_build_system() t.expect_addition("bin/$toolset/debug/aaa bbb.obj") t.expect_addition("bin/$toolset/debug/my exe.exe") t.expect_addition("bin/$toolset/debug/my time.time") t.expect_content_line("bin/$toolset/debug/my time.time", "user: *") t.expect_content_line("bin/$toolset/debug/my time.time", "system: *") t.cleanup()################################################################################## main()# ------#################################################################################basic_jam_action_test()boost_build_testing_support_timing_rule()boost_build_testing_support_timing_rule_with_spaces_in_names()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -