File Explorer

/var/lang/lib/node_modules/npm/node_modules/node-gyp/gyp/pylib/gyp

This explorer reads the filesystem of the server it runs on, so /workspace/user isn't present here. Browsing and the terminal still work against this server's own disk from /.

MSVSSettings_test.py72.7 KB · 1546 lines
#!/usr/bin/env python3 # Copyright (c) 2012 Google Inc. All rights reserved.# Use of this source code is governed by a BSD-style license that can be# found in the LICENSE file. """Unit tests for the MSVSSettings.py file.""" import unittestfrom io import StringIO from gyp import MSVSSettings  class TestSequenceFunctions(unittest.TestCase):    def setUp(self):        self.stderr = StringIO()     def _ExpectedWarnings(self, expected):        """Compares recorded lines to expected warnings."""        self.stderr.seek(0)        actual = self.stderr.read().split("\n")        actual = [line for line in actual if line]        self.assertEqual(sorted(expected), sorted(actual))     def testValidateMSVSSettings_tool_names(self):        """Tests that only MSVS tool names are allowed."""        MSVSSettings.ValidateMSVSSettings(            {                "VCCLCompilerTool": {},                "VCLinkerTool": {},                "VCMIDLTool": {},                "foo": {},                "VCResourceCompilerTool": {},                "VCLibrarianTool": {},                "VCManifestTool": {},                "ClCompile": {},            },            self.stderr,        )        self._ExpectedWarnings(            ["Warning: unrecognized tool foo", "Warning: unrecognized tool ClCompile"]        )     def testValidateMSVSSettings_settings(self):        """Tests that for invalid MSVS settings."""        MSVSSettings.ValidateMSVSSettings(            {                "VCCLCompilerTool": {                    "AdditionalIncludeDirectories": "folder1;folder2",                    "AdditionalOptions": ["string1", "string2"],                    "AdditionalUsingDirectories": "folder1;folder2",                    "AssemblerListingLocation": "a_file_name",                    "AssemblerOutput": "0",                    "BasicRuntimeChecks": "5",                    "BrowseInformation": "fdkslj",                    "BrowseInformationFile": "a_file_name",                    "BufferSecurityCheck": "true",                    "CallingConvention": "-1",                    "CompileAs": "1",                    "DebugInformationFormat": "2",                    "DefaultCharIsUnsigned": "true",                    "Detect64BitPortabilityProblems": "true",                    "DisableLanguageExtensions": "true",                    "DisableSpecificWarnings": "string1;string2",                    "EnableEnhancedInstructionSet": "1",                    "EnableFiberSafeOptimizations": "true",                    "EnableFunctionLevelLinking": "true",                    "EnableIntrinsicFunctions": "true",                    "EnablePREfast": "true",                    "Enableprefast": "bogus",                    "ErrorReporting": "1",                    "ExceptionHandling": "1",                    "ExpandAttributedSource": "true",                    "FavorSizeOrSpeed": "1",                    "FloatingPointExceptions": "true",                    "FloatingPointModel": "1",                    "ForceConformanceInForLoopScope": "true",                    "ForcedIncludeFiles": "file1;file2",                    "ForcedUsingFiles": "file1;file2",                    "GeneratePreprocessedFile": "1",                    "GenerateXMLDocumentationFiles": "true",                    "IgnoreStandardIncludePath": "true",                    "InlineFunctionExpansion": "1",                    "KeepComments": "true",                    "MinimalRebuild": "true",                    "ObjectFile": "a_file_name",                    "OmitDefaultLibName": "true",                    "OmitFramePointers": "true",                    "OpenMP": "true",                    "Optimization": "1",                    "PrecompiledHeaderFile": "a_file_name",                    "PrecompiledHeaderThrough": "a_file_name",                    "PreprocessorDefinitions": "string1;string2",                    "ProgramDataBaseFileName": "a_file_name",                    "RuntimeLibrary": "1",                    "RuntimeTypeInfo": "true",                    "ShowIncludes": "true",                    "SmallerTypeCheck": "true",                    "StringPooling": "true",                    "StructMemberAlignment": "1",                    "SuppressStartupBanner": "true",                    "TreatWChar_tAsBuiltInType": "true",                    "UndefineAllPreprocessorDefinitions": "true",                    "UndefinePreprocessorDefinitions": "string1;string2",                    "UseFullPaths": "true",                    "UsePrecompiledHeader": "1",                    "UseUnicodeResponseFiles": "true",                    "WarnAsError": "true",                    "WarningLevel": "1",                    "WholeProgramOptimization": "true",                    "XMLDocumentationFileName": "a_file_name",                    "ZZXYZ": "bogus",                },                "VCLinkerTool": {                    "AdditionalDependencies": "file1;file2",                    "AdditionalDependencies_excluded": "file3",                    "AdditionalLibraryDirectories": "folder1;folder2",                    "AdditionalManifestDependencies": "file1;file2",                    "AdditionalOptions": "a string1",                    "AddModuleNamesToAssembly": "file1;file2",                    "AllowIsolation": "true",                    "AssemblyDebug": "2",                    "AssemblyLinkResource": "file1;file2",                    "BaseAddress": "a string1",                    "CLRImageType": "2",                    "CLRThreadAttribute": "2",                    "CLRUnmanagedCodeCheck": "true",                    "DataExecutionPrevention": "2",                    "DelayLoadDLLs": "file1;file2",                    "DelaySign": "true",                    "Driver": "2",                    "EmbedManagedResourceFile": "file1;file2",                    "EnableCOMDATFolding": "2",                    "EnableUAC": "true",                    "EntryPointSymbol": "a string1",                    "ErrorReporting": "2",                    "FixedBaseAddress": "2",                    "ForceSymbolReferences": "file1;file2",                    "FunctionOrder": "a_file_name",                    "GenerateDebugInformation": "true",                    "GenerateManifest": "true",                    "GenerateMapFile": "true",                    "HeapCommitSize": "a string1",                    "HeapReserveSize": "a string1",                    "IgnoreAllDefaultLibraries": "true",                    "IgnoreDefaultLibraryNames": "file1;file2",                    "IgnoreEmbeddedIDL": "true",                    "IgnoreImportLibrary": "true",                    "ImportLibrary": "a_file_name",                    "KeyContainer": "a_file_name",                    "KeyFile": "a_file_name",                    "LargeAddressAware": "2",                    "LinkIncremental": "2",                    "LinkLibraryDependencies": "true",                    "LinkTimeCodeGeneration": "2",                    "ManifestFile": "a_file_name",                    "MapExports": "true",                    "MapFileName": "a_file_name",                    "MergedIDLBaseFileName": "a_file_name",                    "MergeSections": "a string1",                    "MidlCommandFile": "a_file_name",                    "ModuleDefinitionFile": "a_file_name",                    "OptimizeForWindows98": "1",                    "OptimizeReferences": "2",                    "OutputFile": "a_file_name",                    "PerUserRedirection": "true",                    "Profile": "true",                    "ProfileGuidedDatabase": "a_file_name",                    "ProgramDatabaseFile": "a_file_name",                    "RandomizedBaseAddress": "2",                    "RegisterOutput": "true",                    "ResourceOnlyDLL": "true",                    "SetChecksum": "true",                    "ShowProgress": "2",                    "StackCommitSize": "a string1",                    "StackReserveSize": "a string1",                    "StripPrivateSymbols": "a_file_name",                    "SubSystem": "2",                    "SupportUnloadOfDelayLoadedDLL": "true",                    "SuppressStartupBanner": "true",                    "SwapRunFromCD": "true",                    "SwapRunFromNet": "true",                    "TargetMachine": "2",                    "TerminalServerAware": "2",                    "TurnOffAssemblyGeneration": "true",                    "TypeLibraryFile": "a_file_name",                    "TypeLibraryResourceID": "33",                    "UACExecutionLevel": "2",                    "UACUIAccess": "true",                    "UseLibraryDependencyInputs": "true",                    "UseUnicodeResponseFiles": "true",                    "Version": "a string1",                },                "VCMIDLTool": {                    "AdditionalIncludeDirectories": "folder1;folder2",                    "AdditionalOptions": "a string1",                    "CPreprocessOptions": "a string1",                    "DefaultCharType": "1",                    "DLLDataFileName": "a_file_name",                    "EnableErrorChecks": "1",                    "ErrorCheckAllocations": "true",                    "ErrorCheckBounds": "true",                    "ErrorCheckEnumRange": "true",                    "ErrorCheckRefPointers": "true",                    "ErrorCheckStubData": "true",                    "GenerateStublessProxies": "true",                    "GenerateTypeLibrary": "true",                    "HeaderFileName": "a_file_name",                    "IgnoreStandardIncludePath": "true",                    "InterfaceIdentifierFileName": "a_file_name",                    "MkTypLibCompatible": "true",                    "notgood": "bogus",                    "OutputDirectory": "a string1",                    "PreprocessorDefinitions": "string1;string2",                    "ProxyFileName": "a_file_name",                    "RedirectOutputAndErrors": "a_file_name",                    "StructMemberAlignment": "1",                    "SuppressStartupBanner": "true",                    "TargetEnvironment": "1",                    "TypeLibraryName": "a_file_name",                    "UndefinePreprocessorDefinitions": "string1;string2",                    "ValidateParameters": "true",                    "WarnAsError": "true",                    "WarningLevel": "1",                },                "VCResourceCompilerTool": {                    "AdditionalOptions": "a string1",                    "AdditionalIncludeDirectories": "folder1;folder2",                    "Culture": "1003",                    "IgnoreStandardIncludePath": "true",                    "notgood2": "bogus",                    "PreprocessorDefinitions": "string1;string2",                    "ResourceOutputFileName": "a string1",                    "ShowProgress": "true",                    "SuppressStartupBanner": "true",                    "UndefinePreprocessorDefinitions": "string1;string2",                },                "VCLibrarianTool": {                    "AdditionalDependencies": "file1;file2",                    "AdditionalLibraryDirectories": "folder1;folder2",                    "AdditionalOptions": "a string1",                    "ExportNamedFunctions": "string1;string2",                    "ForceSymbolReferences": "a string1",                    "IgnoreAllDefaultLibraries": "true",                    "IgnoreSpecificDefaultLibraries": "file1;file2",                    "LinkLibraryDependencies": "true",                    "ModuleDefinitionFile": "a_file_name",                    "OutputFile": "a_file_name",                    "SuppressStartupBanner": "true",                    "UseUnicodeResponseFiles": "true",                },                "VCManifestTool": {                    "AdditionalManifestFiles": "file1;file2",                    "AdditionalOptions": "a string1",                    "AssemblyIdentity": "a string1",                    "ComponentFileName": "a_file_name",                    "DependencyInformationFile": "a_file_name",                    "GenerateCatalogFiles": "true",                    "InputResourceManifests": "a string1",                    "ManifestResourceFile": "a_file_name",                    "OutputManifestFile": "a_file_name",                    "RegistrarScriptFile": "a_file_name",                    "ReplacementsFile": "a_file_name",                    "SuppressStartupBanner": "true",                    "TypeLibraryFile": "a_file_name",                    "UpdateFileHashes": "truel",                    "UpdateFileHashesSearchPath": "a_file_name",                    "UseFAT32Workaround": "true",                    "UseUnicodeResponseFiles": "true",                    "VerboseOutput": "true",                },            },            self.stderr,        )        self._ExpectedWarnings(            [                "Warning: for VCCLCompilerTool/BasicRuntimeChecks, "                "index value (5) not in expected range [0, 4)",                "Warning: for VCCLCompilerTool/BrowseInformation, "                "invalid literal for int() with base 10: 'fdkslj'",                "Warning: for VCCLCompilerTool/CallingConvention, "                "index value (-1) not in expected range [0, 4)",                "Warning: for VCCLCompilerTool/DebugInformationFormat, "                "converted value for 2 not specified.",                "Warning: unrecognized setting VCCLCompilerTool/Enableprefast",                "Warning: unrecognized setting VCCLCompilerTool/ZZXYZ",                "Warning: for VCLinkerTool/TargetMachine, "                "converted value for 2 not specified.",                "Warning: unrecognized setting VCMIDLTool/notgood",                "Warning: unrecognized setting VCResourceCompilerTool/notgood2",                "Warning: for VCManifestTool/UpdateFileHashes, "                "expected bool; got 'truel'"                "",            ]        )     def testValidateMSBuildSettings_settings(self):        """Tests that for invalid MSBuild settings."""        MSVSSettings.ValidateMSBuildSettings(            {                "ClCompile": {                    "AdditionalIncludeDirectories": "folder1;folder2",                    "AdditionalOptions": ["string1", "string2"],                    "AdditionalUsingDirectories": "folder1;folder2",                    "AssemblerListingLocation": "a_file_name",                    "AssemblerOutput": "NoListing",                    "BasicRuntimeChecks": "StackFrameRuntimeCheck",                    "BrowseInformation": "false",                    "BrowseInformationFile": "a_file_name",                    "BufferSecurityCheck": "true",                    "BuildingInIDE": "true",                    "CallingConvention": "Cdecl",                    "CompileAs": "CompileAsC",                    "CompileAsManaged": "true",                    "CreateHotpatchableImage": "true",                    "DebugInformationFormat": "ProgramDatabase",                    "DisableLanguageExtensions": "true",                    "DisableSpecificWarnings": "string1;string2",                    "EnableEnhancedInstructionSet": "StreamingSIMDExtensions",                    "EnableFiberSafeOptimizations": "true",                    "EnablePREfast": "true",                    "Enableprefast": "bogus",                    "ErrorReporting": "Prompt",                    "ExceptionHandling": "SyncCThrow",                    "ExpandAttributedSource": "true",                    "FavorSizeOrSpeed": "Neither",                    "FloatingPointExceptions": "true",                    "FloatingPointModel": "Precise",                    "ForceConformanceInForLoopScope": "true",                    "ForcedIncludeFiles": "file1;file2",                    "ForcedUsingFiles": "file1;file2",                    "FunctionLevelLinking": "false",                    "GenerateXMLDocumentationFiles": "true",                    "IgnoreStandardIncludePath": "true",                    "InlineFunctionExpansion": "OnlyExplicitInline",                    "IntrinsicFunctions": "false",                    "MinimalRebuild": "true",                    "MultiProcessorCompilation": "true",                    "ObjectFileName": "a_file_name",                    "OmitDefaultLibName": "true",                    "OmitFramePointers": "true",                    "OpenMPSupport": "true",                    "Optimization": "Disabled",                    "PrecompiledHeader": "NotUsing",                    "PrecompiledHeaderFile": "a_file_name",                    "PrecompiledHeaderOutputFile": "a_file_name",                    "PreprocessKeepComments": "true",                    "PreprocessorDefinitions": "string1;string2",                    "PreprocessOutputPath": "a string1",                    "PreprocessSuppressLineNumbers": "false",                    "PreprocessToFile": "false",                    "ProcessorNumber": "33",                    "ProgramDataBaseFileName": "a_file_name",                    "RuntimeLibrary": "MultiThreaded",                    "RuntimeTypeInfo": "true",                    "ShowIncludes": "true",                    "SmallerTypeCheck": "true",                    "StringPooling": "true",                    "StructMemberAlignment": "1Byte",                    "SuppressStartupBanner": "true",                    "TrackerLogDirectory": "a_folder",                    "TreatSpecificWarningsAsErrors": "string1;string2",                    "TreatWarningAsError": "true",                    "TreatWChar_tAsBuiltInType": "true",                    "UndefineAllPreprocessorDefinitions": "true",                    "UndefinePreprocessorDefinitions": "string1;string2",                    "UseFullPaths": "true",                    "UseUnicodeForAssemblerListing": "true",                    "WarningLevel": "TurnOffAllWarnings",                    "WholeProgramOptimization": "true",                    "XMLDocumentationFileName": "a_file_name",                    "ZZXYZ": "bogus",                },                "Link": {                    "AdditionalDependencies": "file1;file2",                    "AdditionalLibraryDirectories": "folder1;folder2",                    "AdditionalManifestDependencies": "file1;file2",                    "AdditionalOptions": "a string1",                    "AddModuleNamesToAssembly": "file1;file2",                    "AllowIsolation": "true",                    "AssemblyDebug": "",                    "AssemblyLinkResource": "file1;file2",                    "BaseAddress": "a string1",                    "BuildingInIDE": "true",                    "CLRImageType": "ForceIJWImage",                    "CLRSupportLastError": "Enabled",                    "CLRThreadAttribute": "MTAThreadingAttribute",                    "CLRUnmanagedCodeCheck": "true",                    "CreateHotPatchableImage": "X86Image",                    "DataExecutionPrevention": "false",                    "DelayLoadDLLs": "file1;file2",                    "DelaySign": "true",                    "Driver": "NotSet",                    "EmbedManagedResourceFile": "file1;file2",                    "EnableCOMDATFolding": "false",                    "EnableUAC": "true",                    "EntryPointSymbol": "a string1",                    "FixedBaseAddress": "false",                    "ForceFileOutput": "Enabled",                    "ForceSymbolReferences": "file1;file2",                    "FunctionOrder": "a_file_name",                    "GenerateDebugInformation": "true",                    "GenerateMapFile": "true",                    "HeapCommitSize": "a string1",                    "HeapReserveSize": "a string1",                    "IgnoreAllDefaultLibraries": "true",                    "IgnoreEmbeddedIDL": "true",                    "IgnoreSpecificDefaultLibraries": "a_file_list",                    "ImageHasSafeExceptionHandlers": "true",                    "ImportLibrary": "a_file_name",                    "KeyContainer": "a_file_name",                    "KeyFile": "a_file_name",                    "LargeAddressAware": "false",                    "LinkDLL": "true",                    "LinkErrorReporting": "SendErrorReport",                    "LinkStatus": "true",                    "LinkTimeCodeGeneration": "UseLinkTimeCodeGeneration",                    "ManifestFile": "a_file_name",                    "MapExports": "true",                    "MapFileName": "a_file_name",                    "MergedIDLBaseFileName": "a_file_name",                    "MergeSections": "a string1",                    "MidlCommandFile": "a_file_name",                    "MinimumRequiredVersion": "a string1",                    "ModuleDefinitionFile": "a_file_name",                    "MSDOSStubFileName": "a_file_name",                    "NoEntryPoint": "true",                    "OptimizeReferences": "false",                    "OutputFile": "a_file_name",                    "PerUserRedirection": "true",                    "PreventDllBinding": "true",                    "Profile": "true",                    "ProfileGuidedDatabase": "a_file_name",                    "ProgramDatabaseFile": "a_file_name",                    "RandomizedBaseAddress": "false",                    "RegisterOutput": "true",                    "SectionAlignment": "33",                    "SetChecksum": "true",                    "ShowProgress": "LinkVerboseREF",                    "SpecifySectionAttributes": "a string1",                    "StackCommitSize": "a string1",                    "StackReserveSize": "a string1",                    "StripPrivateSymbols": "a_file_name",                    "SubSystem": "Console",                    "SupportNobindOfDelayLoadedDLL": "true",                    "SupportUnloadOfDelayLoadedDLL": "true",                    "SuppressStartupBanner": "true",                    "SwapRunFromCD": "true",                    "SwapRunFromNET": "true",                    "TargetMachine": "MachineX86",                    "TerminalServerAware": "false",                    "TrackerLogDirectory": "a_folder",                    "TreatLinkerWarningAsErrors": "true",                    "TurnOffAssemblyGeneration": "true",                    "TypeLibraryFile": "a_file_name",                    "TypeLibraryResourceID": "33",                    "UACExecutionLevel": "AsInvoker",                    "UACUIAccess": "true",                    "Version": "a string1",                },                "ResourceCompile": {                    "AdditionalIncludeDirectories": "folder1;folder2",                    "AdditionalOptions": "a string1",                    "Culture": "0x236",                    "IgnoreStandardIncludePath": "true",                    "NullTerminateStrings": "true",                    "PreprocessorDefinitions": "string1;string2",                    "ResourceOutputFileName": "a string1",                    "ShowProgress": "true",                    "SuppressStartupBanner": "true",                    "TrackerLogDirectory": "a_folder",                    "UndefinePreprocessorDefinitions": "string1;string2",                },                "Midl": {                    "AdditionalIncludeDirectories": "folder1;folder2",                    "AdditionalOptions": "a string1",                    "ApplicationConfigurationMode": "true",                    "ClientStubFile": "a_file_name",                    "CPreprocessOptions": "a string1",                    "DefaultCharType": "Signed",                    "DllDataFileName": "a_file_name",                    "EnableErrorChecks": "EnableCustom",                    "ErrorCheckAllocations": "true",                    "ErrorCheckBounds": "true",                    "ErrorCheckEnumRange": "true",                    "ErrorCheckRefPointers": "true",                    "ErrorCheckStubData": "true",                    "GenerateClientFiles": "Stub",                    "GenerateServerFiles": "None",                    "GenerateStublessProxies": "true",                    "GenerateTypeLibrary": "true",                    "HeaderFileName": "a_file_name",                    "IgnoreStandardIncludePath": "true",                    "InterfaceIdentifierFileName": "a_file_name",                    "LocaleID": "33",                    "MkTypLibCompatible": "true",                    "OutputDirectory": "a string1",                    "PreprocessorDefinitions": "string1;string2",                    "ProxyFileName": "a_file_name",                    "RedirectOutputAndErrors": "a_file_name",                    "ServerStubFile": "a_file_name",                    "StructMemberAlignment": "NotSet",                    "SuppressCompilerWarnings": "true",                    "SuppressStartupBanner": "true",                    "TargetEnvironment": "Itanium",                    "TrackerLogDirectory": "a_folder",                    "TypeLibFormat": "NewFormat",                    "TypeLibraryName": "a_file_name",                    "UndefinePreprocessorDefinitions": "string1;string2",                    "ValidateAllParameters": "true",                    "WarnAsError": "true",                    "WarningLevel": "1",                },                "Lib": {                    "AdditionalDependencies": "file1;file2",                    "AdditionalLibraryDirectories": "folder1;folder2",                    "AdditionalOptions": "a string1",                    "DisplayLibrary": "a string1",                    "ErrorReporting": "PromptImmediately",                    "ExportNamedFunctions": "string1;string2",                    "ForceSymbolReferences": "a string1",                    "IgnoreAllDefaultLibraries": "true",                    "IgnoreSpecificDefaultLibraries": "file1;file2",                    "LinkTimeCodeGeneration": "true",                    "MinimumRequiredVersion": "a string1",                    "ModuleDefinitionFile": "a_file_name",                    "Name": "a_file_name",                    "OutputFile": "a_file_name",                    "RemoveObjects": "file1;file2",                    "SubSystem": "Console",                    "SuppressStartupBanner": "true",                    "TargetMachine": "MachineX86i",                    "TrackerLogDirectory": "a_folder",                    "TreatLibWarningAsErrors": "true",                    "UseUnicodeResponseFiles": "true",                    "Verbose": "true",                },                "Manifest": {                    "AdditionalManifestFiles": "file1;file2",                    "AdditionalOptions": "a string1",                    "AssemblyIdentity": "a string1",                    "ComponentFileName": "a_file_name",                    "EnableDPIAwareness": "fal",                    "GenerateCatalogFiles": "truel",                    "GenerateCategoryTags": "true",                    "InputResourceManifests": "a string1",                    "ManifestFromManagedAssembly": "a_file_name",                    "notgood3": "bogus",                    "OutputManifestFile": "a_file_name",                    "OutputResourceManifests": "a string1",                    "RegistrarScriptFile": "a_file_name",                    "ReplacementsFile": "a_file_name",                    "SuppressDependencyElement": "true",                    "SuppressStartupBanner": "true",                    "TrackerLogDirectory": "a_folder",                    "TypeLibraryFile": "a_file_name",                    "UpdateFileHashes": "true",                    "UpdateFileHashesSearchPath": "a_file_name",                    "VerboseOutput": "true",                },                "ProjectReference": {                    "LinkLibraryDependencies": "true",                    "UseLibraryDependencyInputs": "true",                },                "ManifestResourceCompile": {"ResourceOutputFileName": "a_file_name"},                "": {                    "EmbedManifest": "true",                    "GenerateManifest": "true",                    "IgnoreImportLibrary": "true",                    "LinkIncremental": "false",                },            },            self.stderr,        )        self._ExpectedWarnings(            [                "Warning: unrecognized setting ClCompile/Enableprefast",                "Warning: unrecognized setting ClCompile/ZZXYZ",                "Warning: unrecognized setting Manifest/notgood3",                "Warning: for Manifest/GenerateCatalogFiles, "                "expected bool; got 'truel'",                "Warning: for Lib/TargetMachine, unrecognized enumerated value "                "MachineX86i",                "Warning: for Manifest/EnableDPIAwareness, expected bool; got 'fal'",            ]        )     def testConvertToMSBuildSettings_empty(self):        """Tests an empty conversion."""        msvs_settings = {}        expected_msbuild_settings = {}        actual_msbuild_settings = MSVSSettings.ConvertToMSBuildSettings(            msvs_settings, self.stderr        )        self.assertEqual(expected_msbuild_settings, actual_msbuild_settings)        self._ExpectedWarnings([])     def testConvertToMSBuildSettings_minimal(self):        """Tests a minimal conversion."""        msvs_settings = {            "VCCLCompilerTool": {                "AdditionalIncludeDirectories": "dir1",                "AdditionalOptions": "/foo",                "BasicRuntimeChecks": "0",            },            "VCLinkerTool": {                "LinkTimeCodeGeneration": "1",                "ErrorReporting": "1",                "DataExecutionPrevention": "2",            },        }        expected_msbuild_settings = {            "ClCompile": {                "AdditionalIncludeDirectories": "dir1",                "AdditionalOptions": "/foo",                "BasicRuntimeChecks": "Default",            },            "Link": {                "LinkTimeCodeGeneration": "UseLinkTimeCodeGeneration",                "LinkErrorReporting": "PromptImmediately",                "DataExecutionPrevention": "true",            },        }        actual_msbuild_settings = MSVSSettings.ConvertToMSBuildSettings(            msvs_settings, self.stderr        )        self.assertEqual(expected_msbuild_settings, actual_msbuild_settings)        self._ExpectedWarnings([])     def testConvertToMSBuildSettings_warnings(self):        """Tests conversion that generates warnings."""        msvs_settings = {            "VCCLCompilerTool": {                "AdditionalIncludeDirectories": "1",                "AdditionalOptions": "2",                # These are incorrect values:                "BasicRuntimeChecks": "12",                "BrowseInformation": "21",                "UsePrecompiledHeader": "13",                "GeneratePreprocessedFile": "14",            },            "VCLinkerTool": {                # These are incorrect values:                "Driver": "10",                "LinkTimeCodeGeneration": "31",                "ErrorReporting": "21",                "FixedBaseAddress": "6",            },            "VCResourceCompilerTool": {                # Custom                "Culture": "1003"            },        }        expected_msbuild_settings = {            "ClCompile": {                "AdditionalIncludeDirectories": "1",                "AdditionalOptions": "2",            },            "Link": {},            "ResourceCompile": {                # Custom                "Culture": "0x03eb"            },        }        actual_msbuild_settings = MSVSSettings.ConvertToMSBuildSettings(            msvs_settings, self.stderr        )        self.assertEqual(expected_msbuild_settings, actual_msbuild_settings)        self._ExpectedWarnings(            [                "Warning: while converting VCCLCompilerTool/BasicRuntimeChecks to "                "MSBuild, index value (12) not in expected range [0, 4)",                "Warning: while converting VCCLCompilerTool/BrowseInformation to "                "MSBuild, index value (21) not in expected range [0, 3)",                "Warning: while converting VCCLCompilerTool/UsePrecompiledHeader to "                "MSBuild, index value (13) not in expected range [0, 3)",                "Warning: while converting "                "VCCLCompilerTool/GeneratePreprocessedFile to "                "MSBuild, value must be one of [0, 1, 2]; got 14",                "Warning: while converting VCLinkerTool/Driver to "                "MSBuild, index value (10) not in expected range [0, 4)",                "Warning: while converting VCLinkerTool/LinkTimeCodeGeneration to "                "MSBuild, index value (31) not in expected range [0, 5)",                "Warning: while converting VCLinkerTool/ErrorReporting to "                "MSBuild, index value (21) not in expected range [0, 3)",                "Warning: while converting VCLinkerTool/FixedBaseAddress to "                "MSBuild, index value (6) not in expected range [0, 3)",            ]        )     def testConvertToMSBuildSettings_full_synthetic(self):        """Tests conversion of all the MSBuild settings."""        msvs_settings = {            "VCCLCompilerTool": {                "AdditionalIncludeDirectories": "folder1;folder2;folder3",                "AdditionalOptions": "a_string",                "AdditionalUsingDirectories": "folder1;folder2;folder3",                "AssemblerListingLocation": "a_file_name",                "AssemblerOutput": "0",                "BasicRuntimeChecks": "1",                "BrowseInformation": "2",                "BrowseInformationFile": "a_file_name",                "BufferSecurityCheck": "true",                "CallingConvention": "0",                "CompileAs": "1",                "DebugInformationFormat": "4",                "DefaultCharIsUnsigned": "true",                "Detect64BitPortabilityProblems": "true",                "DisableLanguageExtensions": "true",                "DisableSpecificWarnings": "d1;d2;d3",                "EnableEnhancedInstructionSet": "0",                "EnableFiberSafeOptimizations": "true",                "EnableFunctionLevelLinking": "true",                "EnableIntrinsicFunctions": "true",                "EnablePREfast": "true",                "ErrorReporting": "1",                "ExceptionHandling": "2",                "ExpandAttributedSource": "true",                "FavorSizeOrSpeed": "0",                "FloatingPointExceptions": "true",                "FloatingPointModel": "1",                "ForceConformanceInForLoopScope": "true",                "ForcedIncludeFiles": "file1;file2;file3",                "ForcedUsingFiles": "file1;file2;file3",                "GeneratePreprocessedFile": "1",                "GenerateXMLDocumentationFiles": "true",                "IgnoreStandardIncludePath": "true",                "InlineFunctionExpansion": "2",                "KeepComments": "true",                "MinimalRebuild": "true",                "ObjectFile": "a_file_name",                "OmitDefaultLibName": "true",                "OmitFramePointers": "true",                "OpenMP": "true",                "Optimization": "3",                "PrecompiledHeaderFile": "a_file_name",                "PrecompiledHeaderThrough": "a_file_name",                "PreprocessorDefinitions": "d1;d2;d3",                "ProgramDataBaseFileName": "a_file_name",                "RuntimeLibrary": "0",                "RuntimeTypeInfo": "true",                "ShowIncludes": "true",                "SmallerTypeCheck": "true",                "StringPooling": "true",                "StructMemberAlignment": "1",                "SuppressStartupBanner": "true",                "TreatWChar_tAsBuiltInType": "true",                "UndefineAllPreprocessorDefinitions": "true",                "UndefinePreprocessorDefinitions": "d1;d2;d3",                "UseFullPaths": "true",                "UsePrecompiledHeader": "1",                "UseUnicodeResponseFiles": "true",                "WarnAsError": "true",                "WarningLevel": "2",                "WholeProgramOptimization": "true",                "XMLDocumentationFileName": "a_file_name",            },            "VCLinkerTool": {                "AdditionalDependencies": "file1;file2;file3",                "AdditionalLibraryDirectories": "folder1;folder2;folder3",                "AdditionalLibraryDirectories_excluded": "folder1;folder2;folder3",                "AdditionalManifestDependencies": "file1;file2;file3",                "AdditionalOptions": "a_string",                "AddModuleNamesToAssembly": "file1;file2;file3",                "AllowIsolation": "true",                "AssemblyDebug": "0",                "AssemblyLinkResource": "file1;file2;file3",                "BaseAddress": "a_string",                "CLRImageType": "1",                "CLRThreadAttribute": "2",                "CLRUnmanagedCodeCheck": "true",                "DataExecutionPrevention": "0",                "DelayLoadDLLs": "file1;file2;file3",                "DelaySign": "true",                "Driver": "1",                "EmbedManagedResourceFile": "file1;file2;file3",                "EnableCOMDATFolding": "0",                "EnableUAC": "true",                "EntryPointSymbol": "a_string",                "ErrorReporting": "0",                "FixedBaseAddress": "1",                "ForceSymbolReferences": "file1;file2;file3",                "FunctionOrder": "a_file_name",                "GenerateDebugInformation": "true",                "GenerateManifest": "true",                "GenerateMapFile": "true",                "HeapCommitSize": "a_string",                "HeapReserveSize": "a_string",                "IgnoreAllDefaultLibraries": "true",                "IgnoreDefaultLibraryNames": "file1;file2;file3",                "IgnoreEmbeddedIDL": "true",                "IgnoreImportLibrary": "true",                "ImportLibrary": "a_file_name",                "KeyContainer": "a_file_name",                "KeyFile": "a_file_name",                "LargeAddressAware": "2",                "LinkIncremental": "1",                "LinkLibraryDependencies": "true",                "LinkTimeCodeGeneration": "2",                "ManifestFile": "a_file_name",                "MapExports": "true",                "MapFileName": "a_file_name",                "MergedIDLBaseFileName": "a_file_name",                "MergeSections": "a_string",                "MidlCommandFile": "a_file_name",                "ModuleDefinitionFile": "a_file_name",                "OptimizeForWindows98": "1",                "OptimizeReferences": "0",                "OutputFile": "a_file_name",                "PerUserRedirection": "true",                "Profile": "true",                "ProfileGuidedDatabase": "a_file_name",                "ProgramDatabaseFile": "a_file_name",                "RandomizedBaseAddress": "1",                "RegisterOutput": "true",                "ResourceOnlyDLL": "true",                "SetChecksum": "true",                "ShowProgress": "0",                "StackCommitSize": "a_string",                "StackReserveSize": "a_string",                "StripPrivateSymbols": "a_file_name",                "SubSystem": "2",                "SupportUnloadOfDelayLoadedDLL": "true",                "SuppressStartupBanner": "true",                "SwapRunFromCD": "true",                "SwapRunFromNet": "true",                "TargetMachine": "3",                "TerminalServerAware": "2",                "TurnOffAssemblyGeneration": "true",                "TypeLibraryFile": "a_file_name",                "TypeLibraryResourceID": "33",                "UACExecutionLevel": "1",                "UACUIAccess": "true",                "UseLibraryDependencyInputs": "false",                "UseUnicodeResponseFiles": "true",                "Version": "a_string",            },            "VCResourceCompilerTool": {                "AdditionalIncludeDirectories": "folder1;folder2;folder3",                "AdditionalOptions": "a_string",                "Culture": "1003",                "IgnoreStandardIncludePath": "true",                "PreprocessorDefinitions": "d1;d2;d3",                "ResourceOutputFileName": "a_string",                "ShowProgress": "true",                "SuppressStartupBanner": "true",                "UndefinePreprocessorDefinitions": "d1;d2;d3",            },            "VCMIDLTool": {                "AdditionalIncludeDirectories": "folder1;folder2;folder3",                "AdditionalOptions": "a_string",                "CPreprocessOptions": "a_string",                "DefaultCharType": "0",                "DLLDataFileName": "a_file_name",                "EnableErrorChecks": "2",                "ErrorCheckAllocations": "true",                "ErrorCheckBounds": "true",                "ErrorCheckEnumRange": "true",                "ErrorCheckRefPointers": "true",                "ErrorCheckStubData": "true",                "GenerateStublessProxies": "true",                "GenerateTypeLibrary": "true",                "HeaderFileName": "a_file_name",                "IgnoreStandardIncludePath": "true",                "InterfaceIdentifierFileName": "a_file_name",                "MkTypLibCompatible": "true",                "OutputDirectory": "a_string",                "PreprocessorDefinitions": "d1;d2;d3",                "ProxyFileName": "a_file_name",                "RedirectOutputAndErrors": "a_file_name",                "StructMemberAlignment": "3",                "SuppressStartupBanner": "true",                "TargetEnvironment": "1",                "TypeLibraryName": "a_file_name",                "UndefinePreprocessorDefinitions": "d1;d2;d3",                "ValidateParameters": "true",                "WarnAsError": "true",                "WarningLevel": "4",            },            "VCLibrarianTool": {                "AdditionalDependencies": "file1;file2;file3",                "AdditionalLibraryDirectories": "folder1;folder2;folder3",                "AdditionalLibraryDirectories_excluded": "folder1;folder2;folder3",                "AdditionalOptions": "a_string",                "ExportNamedFunctions": "d1;d2;d3",                "ForceSymbolReferences": "a_string",                "IgnoreAllDefaultLibraries": "true",                "IgnoreSpecificDefaultLibraries": "file1;file2;file3",                "LinkLibraryDependencies": "true",                "ModuleDefinitionFile": "a_file_name",                "OutputFile": "a_file_name",                "SuppressStartupBanner": "true",                "UseUnicodeResponseFiles": "true",            },            "VCManifestTool": {                "AdditionalManifestFiles": "file1;file2;file3",                "AdditionalOptions": "a_string",                "AssemblyIdentity": "a_string",                "ComponentFileName": "a_file_name",                "DependencyInformationFile": "a_file_name",                "EmbedManifest": "true",                "GenerateCatalogFiles": "true",                "InputResourceManifests": "a_string",                "ManifestResourceFile": "my_name",                "OutputManifestFile": "a_file_name",                "RegistrarScriptFile": "a_file_name",                "ReplacementsFile": "a_file_name",                "SuppressStartupBanner": "true",                "TypeLibraryFile": "a_file_name",                "UpdateFileHashes": "true",                "UpdateFileHashesSearchPath": "a_file_name",                "UseFAT32Workaround": "true",                "UseUnicodeResponseFiles": "true",                "VerboseOutput": "true",            },        }        expected_msbuild_settings = {            "ClCompile": {                "AdditionalIncludeDirectories": "folder1;folder2;folder3",                "AdditionalOptions": "a_string /J",                "AdditionalUsingDirectories": "folder1;folder2;folder3",                "AssemblerListingLocation": "a_file_name",                "AssemblerOutput": "NoListing",                "BasicRuntimeChecks": "StackFrameRuntimeCheck",                "BrowseInformation": "true",                "BrowseInformationFile": "a_file_name",                "BufferSecurityCheck": "true",                "CallingConvention": "Cdecl",                "CompileAs": "CompileAsC",                "DebugInformationFormat": "EditAndContinue",                "DisableLanguageExtensions": "true",                "DisableSpecificWarnings": "d1;d2;d3",                "EnableEnhancedInstructionSet": "NotSet",                "EnableFiberSafeOptimizations": "true",                "EnablePREfast": "true",                "ErrorReporting": "Prompt",                "ExceptionHandling": "Async",                "ExpandAttributedSource": "true",                "FavorSizeOrSpeed": "Neither",                "FloatingPointExceptions": "true",                "FloatingPointModel": "Strict",                "ForceConformanceInForLoopScope": "true",                "ForcedIncludeFiles": "file1;file2;file3",                "ForcedUsingFiles": "file1;file2;file3",                "FunctionLevelLinking": "true",                "GenerateXMLDocumentationFiles": "true",                "IgnoreStandardIncludePath": "true",                "InlineFunctionExpansion": "AnySuitable",                "IntrinsicFunctions": "true",                "MinimalRebuild": "true",                "ObjectFileName": "a_file_name",                "OmitDefaultLibName": "true",                "OmitFramePointers": "true",                "OpenMPSupport": "true",                "Optimization": "Full",                "PrecompiledHeader": "Create",                "PrecompiledHeaderFile": "a_file_name",                "PrecompiledHeaderOutputFile": "a_file_name",                "PreprocessKeepComments": "true",                "PreprocessorDefinitions": "d1;d2;d3",                "PreprocessSuppressLineNumbers": "false",                "PreprocessToFile": "true",                "ProgramDataBaseFileName": "a_file_name",                "RuntimeLibrary": "MultiThreaded",                "RuntimeTypeInfo": "true",                "ShowIncludes": "true",                "SmallerTypeCheck": "true",                "StringPooling": "true",                "StructMemberAlignment": "1Byte",                "SuppressStartupBanner": "true",                "TreatWarningAsError": "true",                "TreatWChar_tAsBuiltInType": "true",                "UndefineAllPreprocessorDefinitions": "true",                "UndefinePreprocessorDefinitions": "d1;d2;d3",                "UseFullPaths": "true",                "WarningLevel": "Level2",                "WholeProgramOptimization": "true",                "XMLDocumentationFileName": "a_file_name",            },            "Link": {                "AdditionalDependencies": "file1;file2;file3",                "AdditionalLibraryDirectories": "folder1;folder2;folder3",                "AdditionalManifestDependencies": "file1;file2;file3",                "AdditionalOptions": "a_string",                "AddModuleNamesToAssembly": "file1;file2;file3",                "AllowIsolation": "true",                "AssemblyDebug": "",                "AssemblyLinkResource": "file1;file2;file3",                "BaseAddress": "a_string",                "CLRImageType": "ForceIJWImage",                "CLRThreadAttribute": "STAThreadingAttribute",                "CLRUnmanagedCodeCheck": "true",                "DataExecutionPrevention": "",                "DelayLoadDLLs": "file1;file2;file3",                "DelaySign": "true",                "Driver": "Driver",                "EmbedManagedResourceFile": "file1;file2;file3",                "EnableCOMDATFolding": "",                "EnableUAC": "true",                "EntryPointSymbol": "a_string",                "FixedBaseAddress": "false",                "ForceSymbolReferences": "file1;file2;file3",                "FunctionOrder": "a_file_name",                "GenerateDebugInformation": "true",                "GenerateMapFile": "true",                "HeapCommitSize": "a_string",                "HeapReserveSize": "a_string",                "IgnoreAllDefaultLibraries": "true",                "IgnoreEmbeddedIDL": "true",                "IgnoreSpecificDefaultLibraries": "file1;file2;file3",                "ImportLibrary": "a_file_name",                "KeyContainer": "a_file_name",                "KeyFile": "a_file_name",                "LargeAddressAware": "true",                "LinkErrorReporting": "NoErrorReport",                "LinkTimeCodeGeneration": "PGInstrument",                "ManifestFile": "a_file_name",                "MapExports": "true",                "MapFileName": "a_file_name",                "MergedIDLBaseFileName": "a_file_name",                "MergeSections": "a_string",                "MidlCommandFile": "a_file_name",                "ModuleDefinitionFile": "a_file_name",                "NoEntryPoint": "true",                "OptimizeReferences": "",                "OutputFile": "a_file_name",                "PerUserRedirection": "true",                "Profile": "true",                "ProfileGuidedDatabase": "a_file_name",                "ProgramDatabaseFile": "a_file_name",                "RandomizedBaseAddress": "false",                "RegisterOutput": "true",                "SetChecksum": "true",                "ShowProgress": "NotSet",                "StackCommitSize": "a_string",                "StackReserveSize": "a_string",                "StripPrivateSymbols": "a_file_name",                "SubSystem": "Windows",                "SupportUnloadOfDelayLoadedDLL": "true",                "SuppressStartupBanner": "true",                "SwapRunFromCD": "true",                "SwapRunFromNET": "true",                "TargetMachine": "MachineARM",                "TerminalServerAware": "true",                "TurnOffAssemblyGeneration": "true",                "TypeLibraryFile": "a_file_name",                "TypeLibraryResourceID": "33",                "UACExecutionLevel": "HighestAvailable",                "UACUIAccess": "true",                "Version": "a_string",            },            "ResourceCompile": {                "AdditionalIncludeDirectories": "folder1;folder2;folder3",                "AdditionalOptions": "a_string",                "Culture": "0x03eb",                "IgnoreStandardIncludePath": "true",                "PreprocessorDefinitions": "d1;d2;d3",                "ResourceOutputFileName": "a_string",                "ShowProgress": "true",                "SuppressStartupBanner": "true",                "UndefinePreprocessorDefinitions": "d1;d2;d3",            },            "Midl": {                "AdditionalIncludeDirectories": "folder1;folder2;folder3",                "AdditionalOptions": "a_string",                "CPreprocessOptions": "a_string",                "DefaultCharType": "Unsigned",                "DllDataFileName": "a_file_name",                "EnableErrorChecks": "All",                "ErrorCheckAllocations": "true",                "ErrorCheckBounds": "true",                "ErrorCheckEnumRange": "true",                "ErrorCheckRefPointers": "true",                "ErrorCheckStubData": "true",                "GenerateStublessProxies": "true",                "GenerateTypeLibrary": "true",                "HeaderFileName": "a_file_name",                "IgnoreStandardIncludePath": "true",                "InterfaceIdentifierFileName": "a_file_name",                "MkTypLibCompatible": "true",                "OutputDirectory": "a_string",                "PreprocessorDefinitions": "d1;d2;d3",                "ProxyFileName": "a_file_name",                "RedirectOutputAndErrors": "a_file_name",                "StructMemberAlignment": "4",                "SuppressStartupBanner": "true",                "TargetEnvironment": "Win32",                "TypeLibraryName": "a_file_name",                "UndefinePreprocessorDefinitions": "d1;d2;d3",                "ValidateAllParameters": "true",                "WarnAsError": "true",                "WarningLevel": "4",            },            "Lib": {                "AdditionalDependencies": "file1;file2;file3",                "AdditionalLibraryDirectories": "folder1;folder2;folder3",                "AdditionalOptions": "a_string",                "ExportNamedFunctions": "d1;d2;d3",                "ForceSymbolReferences": "a_string",                "IgnoreAllDefaultLibraries": "true",                "IgnoreSpecificDefaultLibraries": "file1;file2;file3",                "ModuleDefinitionFile": "a_file_name",                "OutputFile": "a_file_name",                "SuppressStartupBanner": "true",                "UseUnicodeResponseFiles": "true",            },            "Manifest": {                "AdditionalManifestFiles": "file1;file2;file3",                "AdditionalOptions": "a_string",                "AssemblyIdentity": "a_string",                "ComponentFileName": "a_file_name",                "GenerateCatalogFiles": "true",                "InputResourceManifests": "a_string",                "OutputManifestFile": "a_file_name",                "RegistrarScriptFile": "a_file_name",                "ReplacementsFile": "a_file_name",                "SuppressStartupBanner": "true",                "TypeLibraryFile": "a_file_name",                "UpdateFileHashes": "true",                "UpdateFileHashesSearchPath": "a_file_name",                "VerboseOutput": "true",            },            "ManifestResourceCompile": {"ResourceOutputFileName": "my_name"},            "ProjectReference": {                "LinkLibraryDependencies": "true",                "UseLibraryDependencyInputs": "false",            },            "": {                "EmbedManifest": "true",                "GenerateManifest": "true",                "IgnoreImportLibrary": "true",                "LinkIncremental": "false",            },        }        self.maxDiff = 9999  # on failure display a long diff        actual_msbuild_settings = MSVSSettings.ConvertToMSBuildSettings(            msvs_settings, self.stderr        )        self.assertEqual(expected_msbuild_settings, actual_msbuild_settings)        self._ExpectedWarnings([])     def testConvertToMSBuildSettings_actual(self):        """Tests the conversion of an actual project.         A VS2008 project with most of the options defined was created through the        VS2008 IDE.  It was then converted to VS2010.  The tool settings found in        the .vcproj and .vcxproj files were converted to the two dictionaries        msvs_settings and expected_msbuild_settings.         Note that for many settings, the VS2010 converter adds macros like        %(AdditionalIncludeDirectories) to make sure than inherited values are        included.  Since the Gyp projects we generate do not use inheritance,        we removed these macros.  They were:            ClCompile:                AdditionalIncludeDirectories:  ';%(AdditionalIncludeDirectories)'                AdditionalOptions:  ' %(AdditionalOptions)'                AdditionalUsingDirectories:  ';%(AdditionalUsingDirectories)'                DisableSpecificWarnings: ';%(DisableSpecificWarnings)',                ForcedIncludeFiles:  ';%(ForcedIncludeFiles)',                ForcedUsingFiles:  ';%(ForcedUsingFiles)',                PreprocessorDefinitions:  ';%(PreprocessorDefinitions)',                UndefinePreprocessorDefinitions:                    ';%(UndefinePreprocessorDefinitions)',            Link:                AdditionalDependencies:  ';%(AdditionalDependencies)',                AdditionalLibraryDirectories:  ';%(AdditionalLibraryDirectories)',                AdditionalManifestDependencies:                    ';%(AdditionalManifestDependencies)',                AdditionalOptions:  ' %(AdditionalOptions)',                AddModuleNamesToAssembly:  ';%(AddModuleNamesToAssembly)',                AssemblyLinkResource:  ';%(AssemblyLinkResource)',                DelayLoadDLLs:  ';%(DelayLoadDLLs)',                EmbedManagedResourceFile:  ';%(EmbedManagedResourceFile)',                ForceSymbolReferences:  ';%(ForceSymbolReferences)',                IgnoreSpecificDefaultLibraries:                    ';%(IgnoreSpecificDefaultLibraries)',            ResourceCompile:                AdditionalIncludeDirectories:  ';%(AdditionalIncludeDirectories)',                AdditionalOptions:  ' %(AdditionalOptions)',                PreprocessorDefinitions:  ';%(PreprocessorDefinitions)',            Manifest:                AdditionalManifestFiles:  ';%(AdditionalManifestFiles)',                AdditionalOptions:  ' %(AdditionalOptions)',                InputResourceManifests:  ';%(InputResourceManifests)',        """        msvs_settings = {            "VCCLCompilerTool": {                "AdditionalIncludeDirectories": "dir1",                "AdditionalOptions": "/more",                "AdditionalUsingDirectories": "test",                "AssemblerListingLocation": "$(IntDir)\\a",                "AssemblerOutput": "1",                "BasicRuntimeChecks": "3",                "BrowseInformation": "1",                "BrowseInformationFile": "$(IntDir)\\e",                "BufferSecurityCheck": "false",                "CallingConvention": "1",                "CompileAs": "1",                "DebugInformationFormat": "4",                "DefaultCharIsUnsigned": "true",                "Detect64BitPortabilityProblems": "true",                "DisableLanguageExtensions": "true",                "DisableSpecificWarnings": "abc",                "EnableEnhancedInstructionSet": "1",                "EnableFiberSafeOptimizations": "true",                "EnableFunctionLevelLinking": "true",                "EnableIntrinsicFunctions": "true",                "EnablePREfast": "true",                "ErrorReporting": "2",                "ExceptionHandling": "2",                "ExpandAttributedSource": "true",                "FavorSizeOrSpeed": "2",                "FloatingPointExceptions": "true",                "FloatingPointModel": "1",                "ForceConformanceInForLoopScope": "false",                "ForcedIncludeFiles": "def",                "ForcedUsingFiles": "ge",                "GeneratePreprocessedFile": "2",                "GenerateXMLDocumentationFiles": "true",                "IgnoreStandardIncludePath": "true",                "InlineFunctionExpansion": "1",                "KeepComments": "true",                "MinimalRebuild": "true",                "ObjectFile": "$(IntDir)\\b",                "OmitDefaultLibName": "true",                "OmitFramePointers": "true",                "OpenMP": "true",                "Optimization": "3",                "PrecompiledHeaderFile": "$(IntDir)\\$(TargetName).pche",                "PrecompiledHeaderThrough": "StdAfx.hd",                "PreprocessorDefinitions": "WIN32;_DEBUG;_CONSOLE",                "ProgramDataBaseFileName": "$(IntDir)\\vc90b.pdb",                "RuntimeLibrary": "3",                "RuntimeTypeInfo": "false",                "ShowIncludes": "true",                "SmallerTypeCheck": "true",                "StringPooling": "true",                "StructMemberAlignment": "3",                "SuppressStartupBanner": "false",                "TreatWChar_tAsBuiltInType": "false",                "UndefineAllPreprocessorDefinitions": "true",                "UndefinePreprocessorDefinitions": "wer",                "UseFullPaths": "true",                "UsePrecompiledHeader": "0",                "UseUnicodeResponseFiles": "false",                "WarnAsError": "true",                "WarningLevel": "3",                "WholeProgramOptimization": "true",                "XMLDocumentationFileName": "$(IntDir)\\c",            },            "VCLinkerTool": {                "AdditionalDependencies": "zx",                "AdditionalLibraryDirectories": "asd",                "AdditionalManifestDependencies": "s2",                "AdditionalOptions": "/mor2",                "AddModuleNamesToAssembly": "d1",                "AllowIsolation": "false",                "AssemblyDebug": "1",                "AssemblyLinkResource": "d5",                "BaseAddress": "23423",                "CLRImageType": "3",                "CLRThreadAttribute": "1",                "CLRUnmanagedCodeCheck": "true",                "DataExecutionPrevention": "0",                "DelayLoadDLLs": "d4",                "DelaySign": "true",                "Driver": "2",                "EmbedManagedResourceFile": "d2",                "EnableCOMDATFolding": "1",                "EnableUAC": "false",                "EntryPointSymbol": "f5",                "ErrorReporting": "2",                "FixedBaseAddress": "1",                "ForceSymbolReferences": "d3",                "FunctionOrder": "fssdfsd",                "GenerateDebugInformation": "true",                "GenerateManifest": "false",                "GenerateMapFile": "true",                "HeapCommitSize": "13",                "HeapReserveSize": "12",                "IgnoreAllDefaultLibraries": "true",                "IgnoreDefaultLibraryNames": "flob;flok",                "IgnoreEmbeddedIDL": "true",                "IgnoreImportLibrary": "true",                "ImportLibrary": "f4",                "KeyContainer": "f7",                "KeyFile": "f6",                "LargeAddressAware": "2",                "LinkIncremental": "0",                "LinkLibraryDependencies": "false",                "LinkTimeCodeGeneration": "1",                "ManifestFile": "$(IntDir)\\$(TargetFileName).2intermediate.manifest",                "MapExports": "true",                "MapFileName": "d5",                "MergedIDLBaseFileName": "f2",                "MergeSections": "f5",                "MidlCommandFile": "f1",                "ModuleDefinitionFile": "sdsd",                "OptimizeForWindows98": "2",                "OptimizeReferences": "2",                "OutputFile": "$(OutDir)\\$(ProjectName)2.exe",                "PerUserRedirection": "true",                "Profile": "true",                "ProfileGuidedDatabase": "$(TargetDir)$(TargetName).pgdd",                "ProgramDatabaseFile": "Flob.pdb",                "RandomizedBaseAddress": "1",                "RegisterOutput": "true",                "ResourceOnlyDLL": "true",                "SetChecksum": "false",                "ShowProgress": "1",                "StackCommitSize": "15",                "StackReserveSize": "14",                "StripPrivateSymbols": "d3",                "SubSystem": "1",                "SupportUnloadOfDelayLoadedDLL": "true",                "SuppressStartupBanner": "false",                "SwapRunFromCD": "true",                "SwapRunFromNet": "true",                "TargetMachine": "1",                "TerminalServerAware": "1",                "TurnOffAssemblyGeneration": "true",                "TypeLibraryFile": "f3",                "TypeLibraryResourceID": "12",                "UACExecutionLevel": "2",                "UACUIAccess": "true",                "UseLibraryDependencyInputs": "true",                "UseUnicodeResponseFiles": "false",                "Version": "333",            },            "VCResourceCompilerTool": {                "AdditionalIncludeDirectories": "f3",                "AdditionalOptions": "/more3",                "Culture": "3084",                "IgnoreStandardIncludePath": "true",                "PreprocessorDefinitions": "_UNICODE;UNICODE2",                "ResourceOutputFileName": "$(IntDir)/$(InputName)3.res",                "ShowProgress": "true",            },            "VCManifestTool": {                "AdditionalManifestFiles": "sfsdfsd",                "AdditionalOptions": "afdsdafsd",                "AssemblyIdentity": "sddfdsadfsa",                "ComponentFileName": "fsdfds",                "DependencyInformationFile": "$(IntDir)\\mt.depdfd",                "EmbedManifest": "false",                "GenerateCatalogFiles": "true",                "InputResourceManifests": "asfsfdafs",                "ManifestResourceFile": "$(IntDir)\\$(TargetFileName).embed.manifest.resfdsf",  # noqa: E501                "OutputManifestFile": "$(TargetPath).manifestdfs",                "RegistrarScriptFile": "sdfsfd",                "ReplacementsFile": "sdffsd",                "SuppressStartupBanner": "false",                "TypeLibraryFile": "sfsd",                "UpdateFileHashes": "true",                "UpdateFileHashesSearchPath": "sfsd",                "UseFAT32Workaround": "true",                "UseUnicodeResponseFiles": "false",                "VerboseOutput": "true",            },        }        expected_msbuild_settings = {            "ClCompile": {                "AdditionalIncludeDirectories": "dir1",                "AdditionalOptions": "/more /J",                "AdditionalUsingDirectories": "test",                "AssemblerListingLocation": "$(IntDir)a",                "AssemblerOutput": "AssemblyCode",                "BasicRuntimeChecks": "EnableFastChecks",                "BrowseInformation": "true",                "BrowseInformationFile": "$(IntDir)e",                "BufferSecurityCheck": "false",                "CallingConvention": "FastCall",                "CompileAs": "CompileAsC",                "DebugInformationFormat": "EditAndContinue",                "DisableLanguageExtensions": "true",                "DisableSpecificWarnings": "abc",                "EnableEnhancedInstructionSet": "StreamingSIMDExtensions",                "EnableFiberSafeOptimizations": "true",                "EnablePREfast": "true",                "ErrorReporting": "Queue",                "ExceptionHandling": "Async",                "ExpandAttributedSource": "true",                "FavorSizeOrSpeed": "Size",                "FloatingPointExceptions": "true",                "FloatingPointModel": "Strict",                "ForceConformanceInForLoopScope": "false",                "ForcedIncludeFiles": "def",                "ForcedUsingFiles": "ge",                "FunctionLevelLinking": "true",                "GenerateXMLDocumentationFiles": "true",                "IgnoreStandardIncludePath": "true",                "InlineFunctionExpansion": "OnlyExplicitInline",                "IntrinsicFunctions": "true",                "MinimalRebuild": "true",                "ObjectFileName": "$(IntDir)b",                "OmitDefaultLibName": "true",                "OmitFramePointers": "true",                "OpenMPSupport": "true",                "Optimization": "Full",                "PrecompiledHeader": "NotUsing",  # Actual conversion gives ''                "PrecompiledHeaderFile": "StdAfx.hd",                "PrecompiledHeaderOutputFile": "$(IntDir)$(TargetName).pche",                "PreprocessKeepComments": "true",                "PreprocessorDefinitions": "WIN32;_DEBUG;_CONSOLE",                "PreprocessSuppressLineNumbers": "true",                "PreprocessToFile": "true",                "ProgramDataBaseFileName": "$(IntDir)vc90b.pdb",                "RuntimeLibrary": "MultiThreadedDebugDLL",                "RuntimeTypeInfo": "false",                "ShowIncludes": "true",                "SmallerTypeCheck": "true",                "StringPooling": "true",                "StructMemberAlignment": "4Bytes",                "SuppressStartupBanner": "false",                "TreatWarningAsError": "true",                "TreatWChar_tAsBuiltInType": "false",                "UndefineAllPreprocessorDefinitions": "true",                "UndefinePreprocessorDefinitions": "wer",                "UseFullPaths": "true",                "WarningLevel": "Level3",                "WholeProgramOptimization": "true",                "XMLDocumentationFileName": "$(IntDir)c",            },            "Link": {                "AdditionalDependencies": "zx",                "AdditionalLibraryDirectories": "asd",                "AdditionalManifestDependencies": "s2",                "AdditionalOptions": "/mor2",                "AddModuleNamesToAssembly": "d1",                "AllowIsolation": "false",                "AssemblyDebug": "true",                "AssemblyLinkResource": "d5",                "BaseAddress": "23423",                "CLRImageType": "ForceSafeILImage",                "CLRThreadAttribute": "MTAThreadingAttribute",                "CLRUnmanagedCodeCheck": "true",                "DataExecutionPrevention": "",                "DelayLoadDLLs": "d4",                "DelaySign": "true",                "Driver": "UpOnly",                "EmbedManagedResourceFile": "d2",                "EnableCOMDATFolding": "false",                "EnableUAC": "false",                "EntryPointSymbol": "f5",                "FixedBaseAddress": "false",                "ForceSymbolReferences": "d3",                "FunctionOrder": "fssdfsd",                "GenerateDebugInformation": "true",                "GenerateMapFile": "true",                "HeapCommitSize": "13",                "HeapReserveSize": "12",                "IgnoreAllDefaultLibraries": "true",                "IgnoreEmbeddedIDL": "true",                "IgnoreSpecificDefaultLibraries": "flob;flok",                "ImportLibrary": "f4",                "KeyContainer": "f7",                "KeyFile": "f6",                "LargeAddressAware": "true",                "LinkErrorReporting": "QueueForNextLogin",                "LinkTimeCodeGeneration": "UseLinkTimeCodeGeneration",                "ManifestFile": "$(IntDir)$(TargetFileName).2intermediate.manifest",                "MapExports": "true",                "MapFileName": "d5",                "MergedIDLBaseFileName": "f2",                "MergeSections": "f5",                "MidlCommandFile": "f1",                "ModuleDefinitionFile": "sdsd",                "NoEntryPoint": "true",                "OptimizeReferences": "true",                "OutputFile": "$(OutDir)$(ProjectName)2.exe",                "PerUserRedirection": "true",                "Profile": "true",                "ProfileGuidedDatabase": "$(TargetDir)$(TargetName).pgdd",                "ProgramDatabaseFile": "Flob.pdb",                "RandomizedBaseAddress": "false",                "RegisterOutput": "true",                "SetChecksum": "false",                "ShowProgress": "LinkVerbose",                "StackCommitSize": "15",                "StackReserveSize": "14",                "StripPrivateSymbols": "d3",                "SubSystem": "Console",                "SupportUnloadOfDelayLoadedDLL": "true",                "SuppressStartupBanner": "false",                "SwapRunFromCD": "true",                "SwapRunFromNET": "true",                "TargetMachine": "MachineX86",                "TerminalServerAware": "false",                "TurnOffAssemblyGeneration": "true",                "TypeLibraryFile": "f3",                "TypeLibraryResourceID": "12",                "UACExecutionLevel": "RequireAdministrator",                "UACUIAccess": "true",                "Version": "333",            },            "ResourceCompile": {                "AdditionalIncludeDirectories": "f3",                "AdditionalOptions": "/more3",                "Culture": "0x0c0c",                "IgnoreStandardIncludePath": "true",                "PreprocessorDefinitions": "_UNICODE;UNICODE2",                "ResourceOutputFileName": "$(IntDir)%(Filename)3.res",                "ShowProgress": "true",            },            "Manifest": {                "AdditionalManifestFiles": "sfsdfsd",                "AdditionalOptions": "afdsdafsd",                "AssemblyIdentity": "sddfdsadfsa",                "ComponentFileName": "fsdfds",                "GenerateCatalogFiles": "true",                "InputResourceManifests": "asfsfdafs",                "OutputManifestFile": "$(TargetPath).manifestdfs",                "RegistrarScriptFile": "sdfsfd",                "ReplacementsFile": "sdffsd",                "SuppressStartupBanner": "false",                "TypeLibraryFile": "sfsd",                "UpdateFileHashes": "true",                "UpdateFileHashesSearchPath": "sfsd",                "VerboseOutput": "true",            },            "ProjectReference": {                "LinkLibraryDependencies": "false",                "UseLibraryDependencyInputs": "true",            },            "": {                "EmbedManifest": "false",                "GenerateManifest": "false",                "IgnoreImportLibrary": "true",                "LinkIncremental": "",            },            "ManifestResourceCompile": {                "ResourceOutputFileName": "$(IntDir)$(TargetFileName).embed.manifest.resfdsf"  # noqa: E501            },        }        self.maxDiff = 9999  # on failure display a long diff        actual_msbuild_settings = MSVSSettings.ConvertToMSBuildSettings(            msvs_settings, self.stderr        )        self.assertEqual(expected_msbuild_settings, actual_msbuild_settings)        self._ExpectedWarnings([])  if __name__ == "__main__":    unittest.main()