$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: ghost_at_[hidden]
Date: 2007-12-25 04:43:45
Author: vladimir_prus
Date: 2007-12-25 04:43:44 EST (Tue, 25 Dec 2007)
New Revision: 42301
URL: http://svn.boost.org/trac/boost/changeset/42301
Log:
Make the Tester.copy method open files in binary mode.
This fixes the searched_lib.py failure on Windows.
Patch from Jurko Gospodnetic.
Text files modified: 
   trunk/tools/build/v2/test/BoostBuild.py   |    16 ++++++++++------                        
   trunk/tools/build/v2/test/searched_lib.py |    15 +++++++--------                         
   2 files changed, 17 insertions(+), 14 deletions(-)
Modified: trunk/tools/build/v2/test/BoostBuild.py
==============================================================================
--- trunk/tools/build/v2/test/BoostBuild.py	(original)
+++ trunk/tools/build/v2/test/BoostBuild.py	2007-12-25 04:43:44 EST (Tue, 25 Dec 2007)
@@ -298,7 +298,7 @@
     def copy(self, src, dst):
         self.wait_for_time_change()
         try:
-            self.write(dst, self.read(src))
+            self.write(dst, self.read(src, 1))
         except:
             self.fail_test(1)
 
@@ -306,13 +306,13 @@
         src_name = self.native_file_name(src)
         dst_name = self.native_file_name(dst)
         stats = os.stat(src_name)        
-        self.write(dst, self.read(src))
+        self.write(dst, self.read(src, 1))
         os.utime(dst_name, (stats.st_atime, stats.st_mtime))
         
     def touch(self, names):
         self.wait_for_time_change()
         for name in self.adjust_names(names):
-                os.utime(self.native_file_name(name), None)
+            os.utime(self.native_file_name(name), None)
 
     def rm(self, names):
         self.wait_for_time_change()
@@ -437,12 +437,17 @@
                 result = result[0]
         return result
 
-    def read(self, name):
+    def read(self, name, binary = 0):
         try:
             if self.toolset:
                 name = string.replace(name, "$toolset", self.toolset+"*")
             name = self.glob_file(name)
-            return open(name, "rU").read()
+            openMode = "r"
+            if ( binary ):
+                openMode += "b"
+            else:
+                openMode += "U"
+            return open(name, openMode).read()
         except:
             annotation("reason", "Could not open '%s'" % name)
             self.fail_test(1)
@@ -522,7 +527,6 @@
         self.ignore_elements(self.unexpected_difference.modified_files, wildcard)
 
     def expect_touch(self, names):
-        
         d = self.unexpected_difference
         for name in self.adjust_names(names):
 
Modified: trunk/tools/build/v2/test/searched_lib.py
==============================================================================
--- trunk/tools/build/v2/test/searched_lib.py	(original)
+++ trunk/tools/build/v2/test/searched_lib.py	2007-12-25 04:43:44 EST (Tue, 25 Dec 2007)
@@ -1,19 +1,19 @@
 #!/usr/bin/python
 
-# Copyright 2003 Dave Abrahams 
-# Copyright 2003, 2004, 2005, 2006 Vladimir Prus 
-# 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) 
+# Copyright 2003 Dave Abrahams
+# Copyright 2003, 2004, 2005, 2006 Vladimir Prus
+# 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)
 
 # Test usage of searched-libs: one which are found via -l
-# switch to the linker/compiler. 
+# switch to the linker/compiler.
 
 from BoostBuild import Tester, get_toolset
 import string
 import os
 t = Tester()
 
-# To start with, we have to prepate a library to link with
+# To start with, we have to prepare a library to link with.
 t.write("lib/project-root.jam", "")
 t.write("lib/Jamfile", "lib test_lib : test_lib.cpp ;")
 t.write("lib/test_lib.cpp", """
@@ -28,7 +28,6 @@
 
 # Auto adjusting of suffixes does not work, since we need to
 # change dll to lib.
-# 
 if (os.name == 'nt' or os.uname()[0].lower().startswith('cygwin')) and get_toolset() != 'gcc':
     t.copy("lib/bin/$toolset/debug/test_lib.implib", "lib/test_lib.implib")
     t.copy("lib/bin/$toolset/debug/test_lib.dll", "lib/test_lib.dll")
@@ -104,7 +103,7 @@
 # A regression test: <library>property referring to
 # searched-lib was mishandled. As the result, we were
 # putting target name to the command line!
-# Note that 
+# Note that
 #    g++ ...... <.>z
 # works nicely in some cases, sending output from compiler
 # to file 'z'.