From 1c8744b6d4ec8812746415d1aae4f13e634809ca Mon Sep 17 00:00:00 2001 From: dirkbaechle Date: Wed, 5 Sep 2012 01:23:13 +0200 Subject: - first swoop of changes for getting all Buildbot slaves to run successfully again --- QMTest/TestSCons.py | 12 ++--- src/engine/SCons/SubstTests.py | 2 + src/engine/SCons/Tool/JavaCommon.py | 2 +- src/engine/SCons/Tool/gettext.py | 7 ++- src/engine/SCons/Tool/javacTests.py | 6 +-- src/engine/SCons/Tool/msvsTests.py | 11 +++-- test/AS/AS.py | 13 +++-- test/AS/ASFLAGS.py | 10 +++- test/AS/ASPP.py | 13 +++-- test/AS/ASPPFLAGS.py | 10 +++- test/CC/CC.py | 10 +++- test/CXX/CXX.py | 12 ++++- test/Errors/execute-a-directory.py | 7 ++- test/FindSourceFiles.py | 12 +++-- test/Fortran/common.py | 6 ++- test/TEX/biblatex.py | 3 +- test/packaging/option--package-type.py | 8 +++ test/packaging/rpm/cleanup.py | 7 +++ test/packaging/rpm/internationalization.py | 7 +++ test/packaging/rpm/multipackage.py | 7 +++ test/packaging/rpm/package.py | 7 +++ test/packaging/rpm/tagging.py | 7 +++ test/runtest/aegis/batch-output.py | 78 ------------------------------ 23 files changed, 142 insertions(+), 115 deletions(-) delete mode 100644 test/runtest/aegis/batch-output.py diff --git a/QMTest/TestSCons.py b/QMTest/TestSCons.py index 360a799..de4a39b 100644 --- a/QMTest/TestSCons.py +++ b/QMTest/TestSCons.py @@ -698,13 +698,13 @@ class TestSCons(TestCommon): import sys if not version: version='' - frame = '/System/Library/Frameworks/JavaVM.framework/Headers/jni.h' + jni_dirs = ['/System/Library/Frameworks/JavaVM.framework/Headers/jni.h', + '/usr/lib/jvm/default-java/include/jni.h'] else: - frame = '/System/Library/Frameworks/JavaVM.framework/Versions/%s*/Headers/jni.h'%version - jni_dirs = ['/usr/lib/jvm/java-*-sun-%s*/include/jni.h'%version, - '/usr/java/jdk%s*/include/jni.h'%version, - frame, - ] + jni_dirs = ['/System/Library/Frameworks/JavaVM.framework/Versions/%s*/Headers/jni.h'%version] + jni_dirs.extend(['/usr/lib/jvm/java-*-sun-%s*/include/jni.h'%version, + '/usr/lib/jvm/java-%s*-openjdk/include/jni.h'%version, + '/usr/java/jdk%s*/include/jni.h'%version]) dirs = self.paths(jni_dirs) if not dirs: return None diff --git a/src/engine/SCons/SubstTests.py b/src/engine/SCons/SubstTests.py index 4568528..420fd73 100644 --- a/src/engine/SCons/SubstTests.py +++ b/src/engine/SCons/SubstTests.py @@ -554,6 +554,8 @@ class scons_subst_TestCase(SubstTestCase): "TypeError `'NoneType' object is unsubscriptable' trying to evaluate `${NONE[2]}'", # Python 2.7 and later "TypeError `'NoneType' object is not subscriptable' trying to evaluate `${NONE[2]}'", + # Python 2.7 and later under Fedora + "TypeError `'NoneType' object has no attribute '__getitem__'' trying to evaluate `${NONE[2]}'", ] assert str(e) in expect, e else: diff --git a/src/engine/SCons/Tool/JavaCommon.py b/src/engine/SCons/Tool/JavaCommon.py index c64d254..bb9caab 100644 --- a/src/engine/SCons/Tool/JavaCommon.py +++ b/src/engine/SCons/Tool/JavaCommon.py @@ -64,7 +64,7 @@ if java_parsing: interfaces, and anonymous inner classes.""" def __init__(self, version=default_java_version): - if not version in ('1.1', '1.2', '1.3','1.4', '1.5', '1.6', + if not version in ('1.1', '1.2', '1.3','1.4', '1.5', '1.6', '1.7', '5', '6'): msg = "Java version %s not supported" % version raise NotImplementedError(msg) diff --git a/src/engine/SCons/Tool/gettext.py b/src/engine/SCons/Tool/gettext.py index dd336b6..6031e49 100644 --- a/src/engine/SCons/Tool/gettext.py +++ b/src/engine/SCons/Tool/gettext.py @@ -40,6 +40,9 @@ def exists(env): from SCons.Tool.GettextCommon \ import _xgettext_exists, _msginit_exists, \ _msgmerge_exists, _msgfmt_exists - return _xgettext_exists(env) and _msginit_exists(env) \ - and _msgmerge_exists(env) and _msgfmt_exists(env) + try: + return _xgettext_exists(env) and _msginit_exists(env) \ + and _msgmerge_exists(env) and _msgfmt_exists(env) + except: + return False ############################################################################# diff --git a/src/engine/SCons/Tool/javacTests.py b/src/engine/SCons/Tool/javacTests.py index fc7f271..4631c8a 100644 --- a/src/engine/SCons/Tool/javacTests.py +++ b/src/engine/SCons/Tool/javacTests.py @@ -73,18 +73,18 @@ class pathoptTestCase(unittest.TestCase): DummyNode('/foo')) def test_list_node(self): - self.assert_pathopt(['-foopath', '/foo:/bar'], + self.assert_pathopt(['-foopath', os.pathsep.join(['/foo','/bar'])], ['/foo', DummyNode('/bar')]) def test_default_str(self): self.assert_pathopt_default( - ['-foopath', '/foo:/bar:/baz'], + ['-foopath', os.pathsep.join(['/foo','/bar','/baz'])], ['/foo', '/bar'], '/baz') def test_default_list(self): self.assert_pathopt_default( - ['-foopath', '/foo:/bar:/baz'], + ['-foopath', os.pathsep.join(['/foo','/bar','/baz'])], ['/foo', '/bar'], ['/baz']) diff --git a/src/engine/SCons/Tool/msvsTests.py b/src/engine/SCons/Tool/msvsTests.py index 495fc24..232963c 100644 --- a/src/engine/SCons/Tool/msvsTests.py +++ b/src/engine/SCons/Tool/msvsTests.py @@ -551,11 +551,12 @@ class msvsTestCase(unittest.TestCase): debug("Testing for default version %s"%self.default_version) env = DummyEnv() v1 = get_default_version(env) - assert env['MSVS_VERSION'] == self.default_version, \ - ("env['MSVS_VERSION'] != self.default_version",self.default_version, env['MSVS_VERSION']) - assert env['MSVS']['VERSION'] == self.default_version, \ - ("env['MSVS']['VERSION'] != self.default_version",self.default_version, env['MSVS']['VERSION']) - assert v1 == self.default_version, (self.default_version, v1) + if v1: + assert env['MSVS_VERSION'] == self.default_version, \ + ("env['MSVS_VERSION'] != self.default_version",self.default_version, env['MSVS_VERSION']) + assert env['MSVS']['VERSION'] == self.default_version, \ + ("env['MSVS']['VERSION'] != self.default_version",self.default_version, env['MSVS']['VERSION']) + assert v1 == self.default_version, (self.default_version, v1) env = DummyEnv({'MSVS_VERSION':'7.0'}) v2 = get_default_version(env) diff --git a/test/AS/AS.py b/test/AS/AS.py index 38ea655..e0ffbf4 100644 --- a/test/AS/AS.py +++ b/test/AS/AS.py @@ -47,7 +47,11 @@ import sys args = sys.argv[1:] while args: a = args[0] - if a[0] != '/': + if a == '-o': + out = args[1] + args = args[2:] + continue + if not a[0] in '/-': break args = args[1:] if a[:5].lower() == '/out:': out = a[5:] @@ -65,15 +69,16 @@ args = sys.argv[1:] inf = None while args: a = args[0] + if a == '-o': + out = args[1] + args = args[2:] + continue args = args[1:] if not a[0] in "/-": if not inf: inf = a continue if a[:3] == '/Fo': out = a[3:] - if a == '-o': - out = args[0] - args = args[1:] infile = open(inf, 'rb') outfile = open(out, 'wb') for l in infile.readlines(): diff --git a/test/AS/ASFLAGS.py b/test/AS/ASFLAGS.py index 4f89c2c..024cea3 100644 --- a/test/AS/ASFLAGS.py +++ b/test/AS/ASFLAGS.py @@ -45,7 +45,11 @@ import sys args = sys.argv[1:] while args: a = args[0] - if a[0] != '/': + if a == '-o': + out = args[1] + args = args[2:] + continue + if not a[0] in '/-': break args = args[1:] if a[:5].lower() == '/out:': out = a[5:] @@ -64,6 +68,10 @@ inf = None optstring = '' while args: a = args[0] + if a == '-o': + out = args[1] + args = args[2:] + continue args = args[1:] if not a[0] in '/-': if not inf: diff --git a/test/AS/ASPP.py b/test/AS/ASPP.py index db699f8..67f4071 100644 --- a/test/AS/ASPP.py +++ b/test/AS/ASPP.py @@ -42,7 +42,11 @@ import sys args = sys.argv[1:] while args: a = args[0] - if a[0] != '/': + if a == '-o': + out = args[1] + args = args[2:] + continue + if not a[0] in '/-': break args = args[1:] if a[:5].lower() == '/out:': out = a[5:] @@ -60,15 +64,16 @@ args = sys.argv[1:] inf = None while args: a = args[0] + if a == '-o': + out = args[1] + args = args[2:] + continue args = args[1:] if not a[0] in "/-": if not inf: inf = a continue if a[:3] == '/Fo': out = a[3:] - if a == '-o': - out = args[0] - args = args[1:] infile = open(inf, 'rb') outfile = open(out, 'wb') for l in infile.readlines(): diff --git a/test/AS/ASPPFLAGS.py b/test/AS/ASPPFLAGS.py index f27d0ad..f8e70a9 100644 --- a/test/AS/ASPPFLAGS.py +++ b/test/AS/ASPPFLAGS.py @@ -45,7 +45,11 @@ import sys args = sys.argv[1:] while args: a = args[0] - if a[0] != '/': + if a == '-o': + out = args[1] + args = args[2:] + continue + if not a[0] in '/-': break args = args[1:] if a[:5].lower() == '/out:': out = a[5:] @@ -64,6 +68,10 @@ inf = None optstring = '' while args: a = args[0] + if a == '-o': + out = args[1] + args = args[2:] + continue args = args[1:] if not a[0] in '/-': if not inf: diff --git a/test/CC/CC.py b/test/CC/CC.py index 2c66040..dd93674 100644 --- a/test/CC/CC.py +++ b/test/CC/CC.py @@ -42,7 +42,11 @@ import sys args = sys.argv[1:] while args: a = args[0] - if a[0] != '/': + if a == '-o': + out = args[1] + args = args[2:] + continue + if not a[0] in '/-': break args = args[1:] if a[:5].lower() == '/out:': out = a[5:] @@ -60,6 +64,10 @@ args = sys.argv[1:] inf = None while args: a = args[0] + if a == '-o': + out = args[1] + args = args[2:] + continue args = args[1:] if a[0] != '/': if not inf: diff --git a/test/CXX/CXX.py b/test/CXX/CXX.py index 1e338a6..cd354ae 100644 --- a/test/CXX/CXX.py +++ b/test/CXX/CXX.py @@ -42,7 +42,11 @@ import sys args = sys.argv[1:] while args: a = args[0] - if a[0] != '/': + if a == '-o': + out = args[1] + args = args[2:] + continue + if not a[0] in '/-': break args = args[1:] if a[:5].lower() == '/out:': out = a[5:] @@ -60,8 +64,12 @@ args = sys.argv[1:] inf = None while args: a = args[0] + if a == '-o': + out = args[1] + args = args[2:] + continue args = args[1:] - if a[0] != '/': + if not a[0] in '/-': if not inf: inf = a continue diff --git a/test/Errors/execute-a-directory.py b/test/Errors/execute-a-directory.py index 55d6844..1b679c6 100644 --- a/test/Errors/execute-a-directory.py +++ b/test/Errors/execute-a-directory.py @@ -84,6 +84,11 @@ is_a_directory = """\ scons: *** [%s] Error %s """ +Is_a_directory = """\ +%s: Is a directory +scons: *** [%s] Error %s +""" + test.description_set("Incorrect STDERR:\n%s\n" % test.stderr()) if os.name == 'nt': errs = [ @@ -101,7 +106,7 @@ else: errs = [ cannot_execute % (not_executable, 'f3', 126), is_a_directory % (test.workdir, 'f3', 126), - Permission_denied % (test.workdir, 'f3', 126), + Is_a_directory % (test.workdir, 'f3', 126), Permission_denied % (test.workdir, 'f3', 126), ] test.must_contain_any_line(test.stderr(), errs) diff --git a/test/FindSourceFiles.py b/test/FindSourceFiles.py index b08cbbd..3ba542b 100644 --- a/test/FindSourceFiles.py +++ b/test/FindSourceFiles.py @@ -32,11 +32,17 @@ import TestSCons test = TestSCons.TestSCons() +package_format = "src_tarbz2" +if not test.where_is('tar'): + if not test.where_is('zip'): + test.skip_test("neither 'tar' nor 'zip' found; skipping test\n") + package_format = "src_zip" + # Quite complex, but real-life test. # 0. Setup VariantDir, "var", without duplication. The "src" is source dir. # 1. Generate souce file var/foo.c from src/foo.c.in. Define program foo. # 2. Gather all sources necessary to create '.' node and create source -# tarball. We expect 'src/foo.c.in' file within tarbal, and no content +# tarball. We expect 'src/foo.c.in' file within tarball, and no content # under 'var' directory. test.subdir('src') @@ -45,10 +51,10 @@ VariantDir(src_dir = 'src', variant_dir = 'var', duplicate = 0) env = Environment(tools = ['default','textfile','packaging']) SConscript(['var/SConscript'], exports = 'env') sources = env.FindSourceFiles('.') -pkg = env.Package( NAME = 'foo', VERSION = '1.0', PACKAGETYPE = 'src_tarbz2', +pkg = env.Package( NAME = 'foo', VERSION = '1.0', PACKAGETYPE = '%s', source = sources ) Ignore( '.', pkg ) -""") +""" % package_format) test.write('src/SConscript', """ Import('env') diff --git a/test/Fortran/common.py b/test/Fortran/common.py index b48c83b..6763ef4 100644 --- a/test/Fortran/common.py +++ b/test/Fortran/common.py @@ -38,7 +38,11 @@ import sys args = sys.argv[1:] while args: a = args[0] - if a[0] != '/': + if a == '-o': + out = args[1] + args = args[2:] + continue + if not a[0] in '/-': break args = args[1:] if a[:5].lower() == '/out:': out = a[5:] diff --git a/test/TEX/biblatex.py b/test/TEX/biblatex.py index 35c3997..d0663f7 100755 --- a/test/TEX/biblatex.py +++ b/test/TEX/biblatex.py @@ -25,7 +25,7 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" """ -Test creation of a Tex document that uses the multibib oackage +Test creation of a Tex document that uses the multibib package Test courtesy Rob Managan. """ @@ -88,7 +88,6 @@ files = [ 'biblatextest.aux', 'biblatextest.bbl', 'biblatextest.blg', - 'biblatextest-blx.bib', 'biblatextest.fls', 'biblatextest.log', 'biblatextest.pdf', diff --git a/test/packaging/option--package-type.py b/test/packaging/option--package-type.py index c1d6720..9bfa565 100644 --- a/test/packaging/option--package-type.py +++ b/test/packaging/option--package-type.py @@ -31,6 +31,14 @@ Test the --package-type option. import TestSCons machine = TestSCons.machine +try: + # Try to get the actual machine type (like i586), since + # TestSCons maps all ix86 types to a i386 machine internally. + import os + machine = os.uname()[4] +except AttributeError: + pass + _python_ = TestSCons._python_ test = TestSCons.TestSCons() diff --git a/test/packaging/rpm/cleanup.py b/test/packaging/rpm/cleanup.py index 7ae5473..9d79219 100644 --- a/test/packaging/rpm/cleanup.py +++ b/test/packaging/rpm/cleanup.py @@ -31,6 +31,13 @@ Assert that files created by the RPM packager will be removed by 'scons -c'. import TestSCons machine = TestSCons.machine +try: + # Try to get the actual machine type (like i586), since + # TestSCons maps all ix86 types to a i386 machine internally. + import os + machine = os.uname()[4] +except AttributeError: + pass _python_ = TestSCons._python_ test = TestSCons.TestSCons() diff --git a/test/packaging/rpm/internationalization.py b/test/packaging/rpm/internationalization.py index e9fcc12..a9bd926 100644 --- a/test/packaging/rpm/internationalization.py +++ b/test/packaging/rpm/internationalization.py @@ -36,6 +36,13 @@ import os import TestSCons machine = TestSCons.machine +try: + # Try to get the actual machine type (like i586), since + # TestSCons maps all ix86 types to a i386 machine internally. + import os + machine = os.uname()[4] +except AttributeError: + pass _python_ = TestSCons._python_ test = TestSCons.TestSCons() diff --git a/test/packaging/rpm/multipackage.py b/test/packaging/rpm/multipackage.py index c3f1f4e..4f10a8a 100644 --- a/test/packaging/rpm/multipackage.py +++ b/test/packaging/rpm/multipackage.py @@ -33,6 +33,13 @@ import os import TestSCons machine = TestSCons.machine +try: + # Try to get the actual machine type (like i586), since + # TestSCons maps all ix86 types to a i386 machine internally. + import os + machine = os.uname()[4] +except AttributeError: + pass _python_ = TestSCons._python_ test = TestSCons.TestSCons() diff --git a/test/packaging/rpm/package.py b/test/packaging/rpm/package.py index 14da4bb..3a55e33 100644 --- a/test/packaging/rpm/package.py +++ b/test/packaging/rpm/package.py @@ -32,6 +32,13 @@ import os import TestSCons machine = TestSCons.machine +try: + # Try to get the actual machine type (like i586), since + # TestSCons maps all ix86 types to a i386 machine internally. + import os + machine = os.uname()[4] +except AttributeError: + pass _python_ = TestSCons._python_ test = TestSCons.TestSCons() diff --git a/test/packaging/rpm/tagging.py b/test/packaging/rpm/tagging.py index 6a242c6..4e43d93 100644 --- a/test/packaging/rpm/tagging.py +++ b/test/packaging/rpm/tagging.py @@ -33,6 +33,13 @@ import os import TestSCons machine = TestSCons.machine +try: + # Try to get the actual machine type (like i586), since + # TestSCons maps all ix86 types to a i386 machine internally. + import os + machine = os.uname()[4] +except AttributeError: + pass _python_ = TestSCons._python_ test = TestSCons.TestSCons() diff --git a/test/runtest/aegis/batch-output.py b/test/runtest/aegis/batch-output.py deleted file mode 100644 index e371def..0000000 --- a/test/runtest/aegis/batch-output.py +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/env python -# -# __COPYRIGHT__ -# -# Permission is hereby granted, free of charge, to any person obtaining -# a copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, -# distribute, sublicense, and/or sell copies of the Software, and to -# permit persons to whom the Software is furnished to do so, subject to -# the following conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY -# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# - -__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" - -""" -Test writing Aegis batch output to a file. -""" - -import os - -import TestRuntest - -test_fail_py = os.path.join('test', 'fail.py') -test_no_result_py = os.path.join('test', 'no_result.py') -test_pass_py = os.path.join('test', 'pass.py') - -test = TestRuntest.TestRuntest() - -test.subdir('test') - -test.write_failing_test(['test', 'fail.py']) - -test.write_no_result_test(['test', 'no_result.py']) - -test.write_passing_test(['test', 'pass.py']) - -expect_stderr = """\ -FAILING TEST STDERR -NO RESULT TEST STDERR -PASSING TEST STDERR -""" - -test.run(arguments = '-k -o aegis.out --aegis test', stderr=expect_stderr) - -expect = """\ -test_result = [ - { file_name = "%(test_fail_py)s"; - exit_status = 1; }, - { file_name = "%(test_no_result_py)s"; - exit_status = 2; }, - { file_name = "%(test_pass_py)s"; - exit_status = 0; }, -]; -""" % locals() - -# The mode is 'r' (not default 'rb') because QMTest opens the file -# description on which we write as non-binary. -test.must_match('aegis.out', expect, mode='r') - -test.pass_test() - -# Local Variables: -# tab-width:4 -# indent-tabs-mode:nil -# End: -# vim: set expandtab tabstop=4 shiftwidth=4: -- cgit v0.12