test_msvc9compiler.py (4146B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\carbon\common\stdlib\distutils\tests\test_msvc9compiler.py 2 import sys 3 import unittest 4 import os 5 from distutils.errors import DistutilsPlatformError 6 from distutils.tests import support 7 _MANIFEST = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<assembly xmlns="urn:schemas-microsoft-com:asm.v1"\n manifestVersion="1.0">\n <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">\n <security>\n <requestedPrivileges>\n <requestedExecutionLevel level="asInvoker" uiAccess="false">\n </requestedExecutionLevel>\n </requestedPrivileges>\n </security>\n </trustInfo>\n <dependency>\n <dependentAssembly>\n <assemblyIdentity type="win32" name="Microsoft.VC90.CRT"\n version="9.0.21022.8" processorArchitecture="x86"\n publicKeyToken="XXXX">\n </assemblyIdentity>\n </dependentAssembly>\n </dependency>\n <dependency>\n <dependentAssembly>\n <assemblyIdentity type="win32" name="Microsoft.VC90.MFC"\n version="9.0.21022.8" processorArchitecture="x86"\n publicKeyToken="XXXX"></assemblyIdentity>\n </dependentAssembly>\n </dependency>\n</assembly>\n' 8 _CLEANED_MANIFEST = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\n<assembly xmlns="urn:schemas-microsoft-com:asm.v1"\n manifestVersion="1.0">\n <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">\n <security>\n <requestedPrivileges>\n <requestedExecutionLevel level="asInvoker" uiAccess="false">\n </requestedExecutionLevel>\n </requestedPrivileges>\n </security>\n </trustInfo>\n <dependency>\n\n </dependency>\n <dependency>\n <dependentAssembly>\n <assemblyIdentity type="win32" name="Microsoft.VC90.MFC"\n version="9.0.21022.8" processorArchitecture="x86"\n publicKeyToken="XXXX"></assemblyIdentity>\n </dependentAssembly>\n </dependency>\n</assembly>' 9 if sys.platform == 'win32': 10 from distutils.msvccompiler import get_build_version 11 if get_build_version() >= 8.0: 12 SKIP_MESSAGE = None 13 else: 14 SKIP_MESSAGE = 'These tests are only for MSVC8.0 or above' 15 else: 16 SKIP_MESSAGE = 'These tests are only for win32' 17 18 @unittest.skipUnless(SKIP_MESSAGE is None, SKIP_MESSAGE) 19 20 class msvc9compilerTestCase(support.TempdirManager, unittest.TestCase): 21 22 def test_no_compiler(self): 23 from distutils.msvc9compiler import query_vcvarsall 24 25 def _find_vcvarsall(version): 26 return None 27 28 from distutils import msvc9compiler 29 old_find_vcvarsall = msvc9compiler.find_vcvarsall 30 msvc9compiler.find_vcvarsall = _find_vcvarsall 31 try: 32 self.assertRaises(DistutilsPlatformError, query_vcvarsall, 'wont find this version') 33 finally: 34 msvc9compiler.find_vcvarsall = old_find_vcvarsall 35 36 def test_reg_class(self): 37 from distutils.msvc9compiler import Reg 38 self.assertRaises(KeyError, Reg.get_value, 'xxx', 'xxx') 39 path = 'Control Panel\\Desktop' 40 v = Reg.get_value(path, u'dragfullwindows') 41 self.assertTrue(v in (u'0', u'1', u'2')) 42 import _winreg 43 HKCU = _winreg.HKEY_CURRENT_USER 44 keys = Reg.read_keys(HKCU, 'xxxx') 45 self.assertEqual(keys, None) 46 keys = Reg.read_keys(HKCU, 'Control Panel') 47 self.assertTrue('Desktop' in keys) 48 49 def test_remove_visual_c_ref(self): 50 from distutils.msvc9compiler import MSVCCompiler 51 tempdir = self.mkdtemp() 52 manifest = os.path.join(tempdir, 'manifest') 53 f = open(manifest, 'w') 54 try: 55 f.write(_MANIFEST) 56 finally: 57 f.close() 58 59 compiler = MSVCCompiler() 60 compiler._remove_visual_c_ref(manifest) 61 f = open(manifest) 62 try: 63 content = '\n'.join([ line.rstrip() for line in f.readlines() ]) 64 finally: 65 f.close() 66 67 self.assertEqual(content, _CLEANED_MANIFEST) 68 69 70 def test_suite(): 71 return unittest.makeSuite(msvc9compilerTestCase) 72 73 74 if __name__ == '__main__': 75 unittest.main(defaultTest='test_suite')