From b527c93ebbb5b3e83b2f0882cf62d6072d8b4cb5 Mon Sep 17 00:00:00 2001 From: Daniel Moody Date: Fri, 11 Nov 2016 01:19:20 -0500 Subject: The percent signs are causing syntax error on windows, switched to more compatible code --- test/MSVS/vs-10.0Exp-exec.py | 3 ++- test/MSVS/vs-11.0-exec.py | 3 ++- test/MSVS/vs-11.0Exp-exec.py | 3 ++- test/MSVS/vs-14.0-exec.py | 3 ++- test/MSVS/vs-14.0Exp-exec.py | 3 ++- test/MSVS/vs-6.0-exec.py | 3 ++- test/MSVS/vs-7.0-exec.py | 3 ++- test/MSVS/vs-7.1-exec.py | 3 ++- test/MSVS/vs-8.0Exp-exec.py | 3 ++- test/MSVS/vs-9.0-exec.py | 3 ++- test/MSVS/vs-9.0Exp-exec.py | 3 ++- 11 files changed, 22 insertions(+), 11 deletions(-) diff --git a/test/MSVS/vs-10.0Exp-exec.py b/test/MSVS/vs-10.0Exp-exec.py index 39c96ac..a63f6c4 100644 --- a/test/MSVS/vs-10.0Exp-exec.py +++ b/test/MSVS/vs-10.0Exp-exec.py @@ -55,7 +55,8 @@ if not msvs_version in test.msvs_versions(): test.run(arguments = '-n -q -Q -f -', stdin = """\ env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s') -print "os.environ.update(%%s)" %% repr(env['ENV']) +sconsEnv = repr(env['ENV']) +print("os.environ.update(" + sconsEnv + ")") """ % locals()) exec(test.stdout()) diff --git a/test/MSVS/vs-11.0-exec.py b/test/MSVS/vs-11.0-exec.py index 7acf9d5..21645f5 100644 --- a/test/MSVS/vs-11.0-exec.py +++ b/test/MSVS/vs-11.0-exec.py @@ -55,7 +55,8 @@ if not msvs_version in test.msvs_versions(): test.run(arguments = '-n -q -Q -f -', stdin = """\ env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s') -print "os.environ.update(%%s)" %% repr(env['ENV']) +sconsEnv = repr(env['ENV']) +print("os.environ.update(" + sconsEnv + ")") """ % locals()) exec(test.stdout()) diff --git a/test/MSVS/vs-11.0Exp-exec.py b/test/MSVS/vs-11.0Exp-exec.py index 7cfc85d..be48971 100644 --- a/test/MSVS/vs-11.0Exp-exec.py +++ b/test/MSVS/vs-11.0Exp-exec.py @@ -55,7 +55,8 @@ if not msvs_version in test.msvs_versions(): test.run(arguments = '-n -q -Q -f -', stdin = """\ env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s') -print "os.environ.update(%%s)" %% repr(env['ENV']) +sconsEnv = repr(env['ENV']) +print("os.environ.update(" + sconsEnv + ")") """ % locals()) exec(test.stdout()) diff --git a/test/MSVS/vs-14.0-exec.py b/test/MSVS/vs-14.0-exec.py index b96bdab..911c4ac 100644 --- a/test/MSVS/vs-14.0-exec.py +++ b/test/MSVS/vs-14.0-exec.py @@ -55,7 +55,8 @@ if not msvs_version in test.msvs_versions(): test.run(arguments = '-n -q -Q -f -', stdin = """\ env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s') -print "os.environ.update(%%s)" %% repr(env['ENV']) +sconsEnv = repr(env['ENV']) +print("os.environ.update(" + sconsEnv + ")") """ % locals()) exec(test.stdout()) diff --git a/test/MSVS/vs-14.0Exp-exec.py b/test/MSVS/vs-14.0Exp-exec.py index 44ebece..cb4aaf3 100644 --- a/test/MSVS/vs-14.0Exp-exec.py +++ b/test/MSVS/vs-14.0Exp-exec.py @@ -55,7 +55,8 @@ if not msvs_version in test.msvs_versions(): test.run(arguments = '-n -q -Q -f -', stdin = """\ env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s') -print "os.environ.update(%%s)" %% repr(env['ENV']) +sconsEnv = repr(env['ENV']) +print("os.environ.update(" + sconsEnv + ")") """ % locals()) exec(test.stdout()) diff --git a/test/MSVS/vs-6.0-exec.py b/test/MSVS/vs-6.0-exec.py index fe08a77..d017790 100644 --- a/test/MSVS/vs-6.0-exec.py +++ b/test/MSVS/vs-6.0-exec.py @@ -54,7 +54,8 @@ if not msvs_version in test.msvs_versions(): test.run(arguments = '-n -q -Q -f -', stdin = """\ env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s') -print "os.environ.update(%%s)" %% repr(env['ENV']) +sconsEnv = repr(env['ENV']) +print("os.environ.update(" + sconsEnv + ")") """ % locals()) exec(test.stdout()) diff --git a/test/MSVS/vs-7.0-exec.py b/test/MSVS/vs-7.0-exec.py index cc141f3..e62ee77 100644 --- a/test/MSVS/vs-7.0-exec.py +++ b/test/MSVS/vs-7.0-exec.py @@ -54,7 +54,8 @@ if not msvs_version in test.msvs_versions(): test.run(arguments = '-n -q -Q -f -', stdin = """\ env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s') -print "os.environ.update(%%s)" %% repr(env['ENV']) +sconsEnv = repr(env['ENV']) +print("os.environ.update(" + sconsEnv + ")") """ % locals()) exec(test.stdout()) diff --git a/test/MSVS/vs-7.1-exec.py b/test/MSVS/vs-7.1-exec.py index f44af80..42f6ae8 100644 --- a/test/MSVS/vs-7.1-exec.py +++ b/test/MSVS/vs-7.1-exec.py @@ -54,7 +54,8 @@ if not msvs_version in test.msvs_versions(): test.run(arguments = '-n -q -Q -f -', stdin = """\ env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s') -print "os.environ.update(%%s)" %% repr(env['ENV']) +sconsEnv = repr(env['ENV']) +print("os.environ.update(" + sconsEnv + ")") """ % locals()) exec(test.stdout()) diff --git a/test/MSVS/vs-8.0Exp-exec.py b/test/MSVS/vs-8.0Exp-exec.py index 5132d6d..66196f1 100644 --- a/test/MSVS/vs-8.0Exp-exec.py +++ b/test/MSVS/vs-8.0Exp-exec.py @@ -55,7 +55,8 @@ if not msvs_version in test.msvs_versions(): test.run(arguments = '-n -q -Q -f -', stdin = """\ env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s') -print "os.environ.update(%%s)" %% repr(env['ENV']) +sconsEnv = repr(env['ENV']) +print("os.environ.update(" + sconsEnv + ")") """ % locals()) exec(test.stdout()) diff --git a/test/MSVS/vs-9.0-exec.py b/test/MSVS/vs-9.0-exec.py index ebd08c0..7b544aa 100644 --- a/test/MSVS/vs-9.0-exec.py +++ b/test/MSVS/vs-9.0-exec.py @@ -55,7 +55,8 @@ if not msvs_version in test.msvs_versions(): test.run(arguments = '-n -q -Q -f -', stdin = """\ env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s') -print "os.environ.update(%%s)" %% repr(env['ENV']) +sconsEnv = repr(env['ENV']) +print("os.environ.update(" + sconsEnv + ")") """ % locals()) exec(test.stdout()) diff --git a/test/MSVS/vs-9.0Exp-exec.py b/test/MSVS/vs-9.0Exp-exec.py index c4a562a..caa763e 100644 --- a/test/MSVS/vs-9.0Exp-exec.py +++ b/test/MSVS/vs-9.0Exp-exec.py @@ -55,7 +55,8 @@ if not msvs_version in test.msvs_versions(): test.run(arguments = '-n -q -Q -f -', stdin = """\ env = Environment(tools = ['msvc'], MSVS_VERSION='%(msvs_version)s') -print "os.environ.update(%%s)" %% repr(env['ENV']) +sconsEnv = repr(env['ENV']) +print("os.environ.update(" + sconsEnv + ")") """ % locals()) exec(test.stdout()) -- cgit v0.12 From 7b6b5aabd09fc6100d56544f2c5b99b57e0c41e7 Mon Sep 17 00:00:00 2001 From: Daniel Moody Date: Fri, 11 Nov 2016 01:24:48 -0500 Subject: Wrote tests to make sure the xml is valid for visual studio project files generated by scons This can occur when the user puts invalid characters that don't get converted to xml ampersands escapes --- QMTest/TestSConsMSVS.py | 14 ++++++++++++++ test/MSVS/vs-14.0-exec.py | 6 +++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/QMTest/TestSConsMSVS.py b/QMTest/TestSConsMSVS.py index 39dbb5e..fcca470 100644 --- a/QMTest/TestSConsMSVS.py +++ b/QMTest/TestSConsMSVS.py @@ -20,6 +20,8 @@ __revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__" import os import sys import platform +import traceback +from xml.etree import ElementTree from TestSCons import * from TestSCons import __all__ @@ -1156,6 +1158,18 @@ print("self._msvs_versions =", str(SCons.Tool.MSCommon.query_versions())) return host + def validate_msvs_file(self, file): + try: + x = ElementTree.parse(file) + except: + print("--------------------------------------------------------------") + print("--------------------------------------------------------------") + print(traceback.format_exc()) + print("Failed to validate xml in MSVS file: ") + print(file) + print("--------------------------------------------------------------") + print("--------------------------------------------------------------") + self.fail_test() # Local Variables: # tab-width:4 # indent-tabs-mode:nil diff --git a/test/MSVS/vs-14.0-exec.py b/test/MSVS/vs-14.0-exec.py index 911c4ac..f2a826c 100644 --- a/test/MSVS/vs-14.0-exec.py +++ b/test/MSVS/vs-14.0-exec.py @@ -71,8 +71,8 @@ env=Environment(MSVS_VERSION = '%(msvs_version)s') env.MSVSProject(target = 'foo.vcxproj', srcs = ['foo.c'], buildtarget = 'foo.exe', - variant = 'Release') - + variant = 'Release', + DebugSettings = {'LocalDebuggerCommandArguments':'echo "" > output.txt'}) env.Program('foo.c') """ % locals()) @@ -98,7 +98,7 @@ test.run(chdir='sub dir', arguments=['foo.sln', '/build', 'Release']) test.run(program=test.workpath('sub dir', 'foo'), stdout="foo.c\n") - +test.validate_msvs_file(test.workpath('sub dir', 'foo.vcxproj.user')) test.pass_test() -- cgit v0.12 From ee1e65643f7d01fade819726280518b2fb72c08e Mon Sep 17 00:00:00 2001 From: Daniel Moody Date: Fri, 11 Nov 2016 01:26:55 -0500 Subject: fix for invalid xml getting generated to SCons generated visual studio projects made test for this in commit ebf8e9ebf3ac --- src/engine/SCons/Tool/msvs.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/engine/SCons/Tool/msvs.py b/src/engine/SCons/Tool/msvs.py index 50f6b27..939668e 100644 --- a/src/engine/SCons/Tool/msvs.py +++ b/src/engine/SCons/Tool/msvs.py @@ -65,6 +65,8 @@ def xmlify(s): s = s.replace("&", "&") # do this first s = s.replace("'", "'") s = s.replace('"', """) + s = s.replace('<', "<") + s = s.replace('>', ">") s = s.replace('\n', ' ') return s -- cgit v0.12 From cd856daadb0700fff703171f48b74dce60dc4279 Mon Sep 17 00:00:00 2001 From: Daniel Moody Date: Fri, 11 Nov 2016 01:33:13 -0500 Subject: add changes to CHANGES.txt --- src/CHANGES.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/CHANGES.txt b/src/CHANGES.txt index a6f0f66..8d7aa28 100644 --- a/src/CHANGES.txt +++ b/src/CHANGES.txt @@ -13,6 +13,10 @@ RELEASE VERSION/DATE TO BE FILLED IN LATER RELEASE VERSION/DATE TO BE FILLED IN LATER + From Daniel Moody: + - Fixed msvs.py for Visual Studio generated projects which were + creating invalid xml for greater than and less than symbols. + From Daniel Holth: - Add basic support for PyPy (by deleting __slots__ from Node with a metaclass on PyPy); wrap most-used open() calls in 'with' statements to -- cgit v0.12