summaryrefslogtreecommitdiffstats
path: root/test/scons-time
diff options
context:
space:
mode:
Diffstat (limited to 'test/scons-time')
-rw-r--r--test/scons-time/run/archive/zip.py24
-rw-r--r--test/scons-time/run/option/quiet.py5
-rw-r--r--test/scons-time/run/option/verbose.py5
3 files changed, 32 insertions, 2 deletions
diff --git a/test/scons-time/run/archive/zip.py b/test/scons-time/run/archive/zip.py
index 67cfc3a..b5b122b 100644
--- a/test/scons-time/run/archive/zip.py
+++ b/test/scons-time/run/archive/zip.py
@@ -29,6 +29,8 @@ Verify basic generation of timing information from an input fake-project
.zip file.
"""
+import sys
+
import TestSCons_time
test = TestSCons_time.TestSCons_time()
@@ -37,6 +39,28 @@ test.write_fake_scons_py()
test.write_sample_project('foo.zip')
+try:
+ import zipfile
+ # There's a bug in the Python 2.1 zipfile library that makes it blow
+ # up on 64-bit architectures, when trying to read normal 32-bit zip
+ # files. Check for it by trying to read the archive we just created,
+ # and skipping the test gracefully if there's a problem.
+ zf = zipfile.ZipFile('foo.zip', 'r')
+ for name in zf.namelist():
+ zf.read(name)
+except ImportError:
+ # This "shouldn't happen" because the early Python versions that
+ # have no zipfile module don't support the scons-time script,
+ # so the initialization above should short-circuit this test.
+ # But just in case...
+ fmt = "Python %s has no zipfile module. Skipping test.\n"
+ test.skip_test(fmt % sys.version[:3])
+except zipfile.BadZipfile, e:
+ if str(e)[:11] == 'Bad CRC-32 ':
+ fmt = "Python %s zipfile module doesn't work on 64-bit architectures. Skipping test.\n"
+ test.skip_test(fmt % sys.version[:3])
+ raise
+
test.run(arguments = 'run foo.zip')
test.must_exist('foo-000-0.log',
diff --git a/test/scons-time/run/option/quiet.py b/test/scons-time/run/option/quiet.py
index 5d5d7cf..f5a3d8c 100644
--- a/test/scons-time/run/option/quiet.py
+++ b/test/scons-time/run/option/quiet.py
@@ -39,7 +39,7 @@ test.diff_function = TestSCons_time.diff_re
def tempdir_re(*args):
- import os
+ import os,sys
import os.path
import string
import tempfile
@@ -49,6 +49,9 @@ def tempdir_re(*args):
x = apply(os.path.join, args)
x = re.escape(x)
x = string.replace(x, 'time\\-', 'time\\-[^%s]*' % sep)
+ if sys.platform=='darwin':
+ # OSX has /tmp in /private/tmp.
+ x = '(/private)?' + x
return x
scons_py = re.escape(test.workpath('src', 'script', 'scons.py'))
diff --git a/test/scons-time/run/option/verbose.py b/test/scons-time/run/option/verbose.py
index cdf5b5a..fb95dab 100644
--- a/test/scons-time/run/option/verbose.py
+++ b/test/scons-time/run/option/verbose.py
@@ -40,7 +40,7 @@ test.diff_function = TestSCons_time.diff_re
def tempdir_re(*args):
- import os
+ import os,sys
import os.path
import string
import tempfile
@@ -50,6 +50,9 @@ def tempdir_re(*args):
x = apply(os.path.join, args)
x = re.escape(x)
x = string.replace(x, 'time\\-', 'time\\-[^%s]*' % sep)
+ if sys.platform=='darwin':
+ # OSX has /tmp in /private/tmp.
+ x = '(/private)?' + x
return x
scons_py = re.escape(test.workpath('src', 'script', 'scons.py'))