summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Moody <dmoody256@gmail.com>2016-11-11 06:24:48 (GMT)
committerDaniel Moody <dmoody256@gmail.com>2016-11-11 06:24:48 (GMT)
commit7b6b5aabd09fc6100d56544f2c5b99b57e0c41e7 (patch)
tree1c22c61ffe72a950fc518aa8c656627dcc3f5936
parentb527c93ebbb5b3e83b2f0882cf62d6072d8b4cb5 (diff)
downloadSCons-7b6b5aabd09fc6100d56544f2c5b99b57e0c41e7.zip
SCons-7b6b5aabd09fc6100d56544f2c5b99b57e0c41e7.tar.gz
SCons-7b6b5aabd09fc6100d56544f2c5b99b57e0c41e7.tar.bz2
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
-rw-r--r--QMTest/TestSConsMSVS.py14
-rw-r--r--test/MSVS/vs-14.0-exec.py6
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 "<foo.c>" > 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()