Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r48648 - in trunk/tools/build/v2: test tools
From: jurko.gospodnetic_at_[hidden]
Date: 2008-09-07 04:38:16


Author: jurko
Date: 2008-09-07 04:38:15 EDT (Sun, 07 Sep 2008)
New Revision: 48648
URL: http://svn.boost.org/trac/boost/changeset/48648

Log:
Added documentation comments for the action timing 'time' rule in the Boost Build tools/testing.jam module. Added a test for this rule. Corrected a bug with this rule not storing user time in its output file.
Text files modified:
   trunk/tools/build/v2/test/timedata.py | 86 +++++++++++++++++++++++++++++++++------
   trunk/tools/build/v2/tools/testing.jam | 6 ++
   2 files changed, 77 insertions(+), 15 deletions(-)

Modified: trunk/tools/build/v2/test/timedata.py
==============================================================================
--- trunk/tools/build/v2/test/timedata.py (original)
+++ trunk/tools/build/v2/test/timedata.py 2008-09-07 04:38:15 EDT (Sun, 07 Sep 2008)
@@ -1,16 +1,30 @@
 #!/usr/bin/python
-# Copyright David Abrahams 2005. Distributed under the Boost
-# Software License, Version 1.0. (See accompanying
-# file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
-# This tests the build step timing facilities.
+# 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 BoostBuild
 import re
 
-t = BoostBuild.Tester(pass_toolset=0)
 
-t.write("file.jam", """
+################################################################################
+#
+# 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 $(<) : $(>) ;
@@ -44,9 +58,9 @@
 make bar : baz ;
 """)
 
-t.write("baz", "nothing\n")
+ t.write("baz", "nothing\n")
 
-expected_output = """\.\.\.found 4 targets\.\.\.
+ expected_output = """\.\.\.found 4 targets\.\.\.
 \.\.\.updating 2 targets\.\.\.
 make bar
 time foo
@@ -54,10 +68,54 @@
 \.\.\.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.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 profided by the Boost Build tasting
+ 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()
+
+
+################################################################################
+#
+# main()
+# ------
+#
+################################################################################
 
-t.cleanup()
+basic_jam_action_test()
+boost_build_testing_support_timing_rule()

Modified: trunk/tools/build/v2/tools/testing.jam
==============================================================================
--- trunk/tools/build/v2/tools/testing.jam (original)
+++ trunk/tools/build/v2/tools/testing.jam 2008-09-07 04:38:15 EDT (Sun, 07 Sep 2008)
@@ -560,6 +560,10 @@
 IMPORT testing : record-time : : testing.record-time ;
 
 
+# Calling this rule requests that Boost Build time how long it taks to build the
+# 'source' target and display the results both on the standard output and in the
+# 'target' file.
+#
 rule time ( target : source : properties * )
 {
     # Set up rule for recording timing information.
@@ -577,5 +581,5 @@
     echo system: $(SYSTEM_TIME)
 
     echo user: $(USER_TIME)" seconds" > $(<)
- echo system: $(SYSTEM_TIME)" seconds" > $(<)
+ echo system: $(SYSTEM_TIME)" seconds" >> $(<)
 }


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk