summaryrefslogtreecommitdiff
path: root/test/MSVC/MSVC_UWP_APP.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/MSVC/MSVC_UWP_APP.py')
-rw-r--r--test/MSVC/MSVC_UWP_APP.py53
1 files changed, 41 insertions, 12 deletions
diff --git a/test/MSVC/MSVC_UWP_APP.py b/test/MSVC/MSVC_UWP_APP.py
index 2521ad6f..c72c7394 100644
--- a/test/MSVC/MSVC_UWP_APP.py
+++ b/test/MSVC/MSVC_UWP_APP.py
@@ -30,17 +30,21 @@ the desired effect.
"""
import TestSCons
+import SCons.Tool.MSCommon.vc as msvc
def AreVCStoreLibPathsInLIBPATH(output):
+ libpath = None
+ msvc_version = None
lines = output.splitlines()
for line in lines:
if 'env[ENV][LIBPATH]=' in line:
- idx_eq = line.find('=')
- libpath = line[idx_eq + 1:]
+ libpath = line.split('=')[1]
+ elif 'env[MSVC_VERSION]=' in line:
+ msvc_version = line.split('=')[1]
- if not libpath:
- # Couldn't find the libpath in the output
- return (False, False)
+ if not libpath or not msvc_version:
+ # Couldn't find the libpath or msvc version in the output
+ return (False, False, None)
libpaths = libpath.lower().split(';')
(vclibstore_path_present, vclibstorerefs_path_present) = (False, False)
@@ -56,7 +60,7 @@ def AreVCStoreLibPathsInLIBPATH(output):
elif r'vc\lib\store' in path:
vclibstore_path_present = True
- return (vclibstore_path_present, vclibstorerefs_path_present)
+ return (vclibstore_path_present, vclibstorerefs_path_present, msvc_version)
_python_ = TestSCons._python_
@@ -77,22 +81,47 @@ else:
env = Environment(tools=['default', 'msvc'], variables=help_vars)
# Print the ENV LIBPATH to stdout
print('env[ENV][LIBPATH]=%s' % env.get('ENV').get('LIBPATH'))
+print('env[MSVC_VERSION]=%s' % env.get('MSVC_VERSION'))
""")
+installed_msvc_versions = msvc.cached_get_installed_vcs()
+# MSVC guaranteed to be at least one version on the system or else skip_if_not_msvc() function
+# would have skipped the test
+greatest_msvc_version_on_system = installed_msvc_versions[0]
+maj, min = msvc.msvc_version_to_maj_min(greatest_msvc_version_on_system)
+
+# We always use the greatest MSVC version installed on the system
+
+if maj < 14:
+ # Skip the test if MSVC version is less than VS2015
+ test.skip_test("Available MSVC doesn't support App store ")
+
# Test setting MSVC_UWP_APP is '1' (True)
test.run(arguments = "MSVC_UWP_APP=1")
-(vclibstore_path_present, vclibstorerefs_path_present) = AreVCStoreLibPathsInLIBPATH(test.stdout())
-test.fail_test((vclibstore_path_present is False) or (vclibstorerefs_path_present is False))
+(vclibstore_path_present, vclibstorerefs_path_present, msvc_version) = AreVCStoreLibPathsInLIBPATH(test.stdout())
+test.fail_test(msvc_version != greatest_msvc_version_on_system,
+ message='MSVC_VERSION (%s) does not match expected greatest version on system (%s)' \
+ % (msvc_version, greatest_msvc_version_on_system))
+test.fail_test((vclibstore_path_present is False) or (vclibstorerefs_path_present is False),
+ message='VC Store LIBPATHs NOT present when MSVC_UWP_APP=1 (msvc_version=%s)' % msvc_version)
# Test setting MSVC_UWP_APP is '0' (False)
test.run(arguments = "MSVC_UWP_APP=0")
-(vclibstore_path_present, vclibstorerefs_path_present) = AreVCStoreLibPathsInLIBPATH(test.stdout())
-test.fail_test((vclibstore_path_present is True) or (vclibstorerefs_path_present is True))
+(vclibstore_path_present, vclibstorerefs_path_present, msvc_version) = AreVCStoreLibPathsInLIBPATH(test.stdout())
+test.fail_test(msvc_version != greatest_msvc_version_on_system,
+ message='MSVC_VERSION (%s) does not match expected greatest version on system (%s)' \
+ % (msvc_version, greatest_msvc_version_on_system))
+test.fail_test((vclibstore_path_present is True) or (vclibstorerefs_path_present is True),
+ message='VC Store LIBPATHs present when MSVC_UWP_APP=0 (msvc_version=%s)' % msvc_version)
# Test not setting MSVC_UWP_APP
test.run(arguments = "")
-(vclibstore_path_present, vclibstorerefs_path_present) = AreVCStoreLibPathsInLIBPATH(test.stdout())
-test.fail_test((vclibstore_path_present is True) or (vclibstorerefs_path_present is True))
+(vclibstore_path_present, vclibstorerefs_path_present, msvc_version) = AreVCStoreLibPathsInLIBPATH(test.stdout())
+test.fail_test(msvc_version != greatest_msvc_version_on_system,
+ message='MSVC_VERSION (%s) does not match expected greatest version on system (%s)' \
+ % (msvc_version, greatest_msvc_version_on_system))
+test.fail_test((vclibstore_path_present is True) or (vclibstorerefs_path_present is True),
+ message='VC Store LIBPATHs present when MSVC_UWP_APP not set (msvc_version=%s)' % msvc_version)
test.pass_test()