$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r48645 - in trunk/tools/build/v2: test tools
From: jurko.gospodnetic_at_[hidden]
Date: 2008-09-07 03:33:30
Author: jurko
Date: 2008-09-07 03:33:30 EDT (Sun, 07 Sep 2008)
New Revision: 48645
URL: http://svn.boost.org/trac/boost/changeset/48645
Log:
Fixed how Boost Build's automated testing results get reported in case of tests running on files containing spaces in their path. Regression test added as well.
Added:
   trunk/tools/build/v2/test/testing_support.py   (contents, props changed)
Text files modified: 
   trunk/tools/build/v2/test/test_all.py  |     1 +                                       
   trunk/tools/build/v2/tools/testing.jam |     9 +++++++--                               
   2 files changed, 8 insertions(+), 2 deletions(-)
Modified: trunk/tools/build/v2/test/test_all.py
==============================================================================
--- trunk/tools/build/v2/test/test_all.py	(original)
+++ trunk/tools/build/v2/test/test_all.py	2008-09-07 03:33:30 EDT (Sun, 07 Sep 2008)
@@ -167,6 +167,7 @@
           "suffix",
           "tag",
           "test_result_dumping",
+          "testing_support",
           "timedata",
           "unit_test",
           "use_requirements",
Added: trunk/tools/build/v2/test/testing_support.py
==============================================================================
--- (empty file)
+++ trunk/tools/build/v2/test/testing_support.py	2008-09-07 03:33:30 EDT (Sun, 07 Sep 2008)
@@ -0,0 +1,61 @@
+#!/usr/bin/python
+
+# 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 different aspects of Boost Builds automated testing support.
+
+import BoostBuild
+
+
+################################################################################
+#
+# test_files_with_spaces_in_their_name()
+# --------------------------------------
+#
+################################################################################
+
+def test_files_with_spaces_in_their_name():
+    """Regression test making sure test result files get created correctly when
+    testing files with spaces in their name.
+    """
+
+    t = BoostBuild.Tester()
+
+    t.write("valid source.cpp", "int main() {}\n");
+
+    t.write("invalid source.cpp", "this is not valid source code");
+    
+    t.write("jamroot.jam", """
+import testing ;
+testing.compile "valid source.cpp" ;
+testing.compile-fail "invalid source.cpp" ;
+""")
+
+    t.run_build_system(status=0)
+    t.expect_addition("bin/invalid source.test/$toolset/debug/invalid source.obj")
+    t.expect_addition("bin/invalid source.test/$toolset/debug/invalid source.test")
+    t.expect_addition("bin/valid source.test/$toolset/debug/valid source.obj")
+    t.expect_addition("bin/valid source.test/$toolset/debug/valid source.test")
+
+    t.expect_content("bin/valid source.test/$toolset/debug/valid source.test", \
+        "passed" )
+    t.expect_content( \
+        "bin/invalid source.test/$toolset/debug/invalid source.test", \
+        "passed" )
+    t.expect_content( \
+        "bin/invalid source.test/$toolset/debug/invalid source.obj", \
+        "failed as expected" )
+
+    t.cleanup()
+
+
+################################################################################
+#
+# main()
+# ------
+#
+################################################################################
+
+test_files_with_spaces_in_their_name()
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 03:33:30 EDT (Sun, 07 Sep 2008)
@@ -356,15 +356,20 @@
 }
 
 
+# Used to create test files signifying passed tests.
+#
 actions **passed**
 {
-    echo passed > $(<)
+    echo passed > "$(<)"
 }
 
 
+# Used to create replacement object files that do not get created during tests
+# that are expected to fail.
+#
 actions (failed-as-expected)
 {
-    echo failed as expected > $(<)
+    echo failed as expected > "$(<)"
 }