## @file\r
# This file is used to define class Configuration\r
#\r
-# Copyright (c) 2008 - 2017, Intel Corporation. All rights reserved.<BR>\r
+# Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR>\r
# This program and the accompanying materials\r
# are licensed and made available under the terms and conditions of the BSD License\r
# which accompanies this distribution. The full text of the license may be found at\r
from Common.String import *\r
from Common.LongFilePathSupport import OpenLongFilePath as open\r
\r
+_ConfigFileToInternalTranslation = {\r
+ # not same\r
+ "ModifierList":"ModifierSet",\r
+\r
+ # same\r
+ # please keep this in correct alphabetical order.\r
+ "AutoCorrect":"AutoCorrect",\r
+ "BinaryExtList":"BinaryExtList",\r
+ "CFunctionLayoutCheckAll":"CFunctionLayoutCheckAll",\r
+ "CFunctionLayoutCheckDataDeclaration":"CFunctionLayoutCheckDataDeclaration",\r
+ "CFunctionLayoutCheckFunctionBody":"CFunctionLayoutCheckFunctionBody",\r
+ "CFunctionLayoutCheckFunctionName":"CFunctionLayoutCheckFunctionName",\r
+ "CFunctionLayoutCheckFunctionPrototype":"CFunctionLayoutCheckFunctionPrototype",\r
+ "CFunctionLayoutCheckNoInitOfVariable":"CFunctionLayoutCheckNoInitOfVariable",\r
+ "CFunctionLayoutCheckNoStatic":"CFunctionLayoutCheckNoStatic",\r
+ "CFunctionLayoutCheckOptionalFunctionalModifier":"CFunctionLayoutCheckOptionalFunctionalModifier",\r
+ "CFunctionLayoutCheckReturnType":"CFunctionLayoutCheckReturnType",\r
+ "CheckAll":"CheckAll",\r
+ "Copyright":"Copyright",\r
+ "DeclarationDataTypeCheckAll":"DeclarationDataTypeCheckAll",\r
+ "DeclarationDataTypeCheckEFIAPIModifier":"DeclarationDataTypeCheckEFIAPIModifier",\r
+ "DeclarationDataTypeCheckEnumeratedType":"DeclarationDataTypeCheckEnumeratedType",\r
+ "DeclarationDataTypeCheckInOutModifier":"DeclarationDataTypeCheckInOutModifier",\r
+ "DeclarationDataTypeCheckNoUseCType":"DeclarationDataTypeCheckNoUseCType",\r
+ "DeclarationDataTypeCheckSameStructure":"DeclarationDataTypeCheckSameStructure",\r
+ "DeclarationDataTypeCheckStructureDeclaration":"DeclarationDataTypeCheckStructureDeclaration",\r
+ "DeclarationDataTypeCheckUnionType":"DeclarationDataTypeCheckUnionType",\r
+ "DoxygenCheckAll":"DoxygenCheckAll",\r
+ "DoxygenCheckCommand":"DoxygenCheckCommand",\r
+ "DoxygenCheckCommentDescription":"DoxygenCheckCommentDescription",\r
+ "DoxygenCheckCommentFormat":"DoxygenCheckCommentFormat",\r
+ "DoxygenCheckFileHeader":"DoxygenCheckFileHeader",\r
+ "DoxygenCheckFunctionHeader":"DoxygenCheckFunctionHeader",\r
+ "GeneralCheckAll":"GeneralCheckAll",\r
+ "GeneralCheckCarriageReturn":"GeneralCheckCarriageReturn",\r
+ "GeneralCheckFileExistence":"GeneralCheckFileExistence",\r
+ "GeneralCheckIndentation":"GeneralCheckIndentation",\r
+ "GeneralCheckIndentationWidth":"GeneralCheckIndentationWidth",\r
+ "GeneralCheckLine":"GeneralCheckLine",\r
+ "GeneralCheckLineWidth":"GeneralCheckLineWidth",\r
+ "GeneralCheckNoProgma":"GeneralCheckNoProgma",\r
+ "GeneralCheckNoTab":"GeneralCheckNoTab",\r
+ "GeneralCheckNo_Asm":"GeneralCheckNo_Asm",\r
+ "GeneralCheckNonAcsii":"GeneralCheckNonAcsii",\r
+ "GeneralCheckTabWidth":"GeneralCheckTabWidth",\r
+ "GeneralCheckUni":"GeneralCheckUni",\r
+ "HeaderCheckAll":"HeaderCheckAll",\r
+ "HeaderCheckCFileCommentLicenseFormat":"HeaderCheckCFileCommentLicenseFormat",\r
+ "HeaderCheckCFileCommentReferenceFormat":"HeaderCheckCFileCommentReferenceFormat",\r
+ "HeaderCheckCFileCommentStartSpacesNum":"HeaderCheckCFileCommentStartSpacesNum",\r
+ "HeaderCheckFile":"HeaderCheckFile",\r
+ "HeaderCheckFileCommentEnd":"HeaderCheckFileCommentEnd",\r
+ "HeaderCheckFunction":"HeaderCheckFunction",\r
+ "IncludeFileCheckAll":"IncludeFileCheckAll",\r
+ "IncludeFileCheckData":"IncludeFileCheckData",\r
+ "IncludeFileCheckIfndefStatement":"IncludeFileCheckIfndefStatement",\r
+ "IncludeFileCheckSameName":"IncludeFileCheckSameName",\r
+ "MetaDataFileCheckAll":"MetaDataFileCheckAll",\r
+ "MetaDataFileCheckBinaryInfInFdf":"MetaDataFileCheckBinaryInfInFdf",\r
+ "MetaDataFileCheckGenerateFileList":"MetaDataFileCheckGenerateFileList",\r
+ "MetaDataFileCheckGuidDuplicate":"MetaDataFileCheckGuidDuplicate",\r
+ "MetaDataFileCheckLibraryDefinedInDec":"MetaDataFileCheckLibraryDefinedInDec",\r
+ "MetaDataFileCheckLibraryInstance":"MetaDataFileCheckLibraryInstance",\r
+ "MetaDataFileCheckLibraryInstanceDependent":"MetaDataFileCheckLibraryInstanceDependent",\r
+ "MetaDataFileCheckLibraryInstanceOrder":"MetaDataFileCheckLibraryInstanceOrder",\r
+ "MetaDataFileCheckLibraryNoUse":"MetaDataFileCheckLibraryNoUse",\r
+ "MetaDataFileCheckModuleFileGuidDuplication":"MetaDataFileCheckModuleFileGuidDuplication",\r
+ "MetaDataFileCheckModuleFileGuidFormat":"MetaDataFileCheckModuleFileGuidFormat",\r
+ "MetaDataFileCheckModuleFileNoUse":"MetaDataFileCheckModuleFileNoUse",\r
+ "MetaDataFileCheckModuleFilePcdFormat":"MetaDataFileCheckModuleFilePcdFormat",\r
+ "MetaDataFileCheckModuleFilePpiFormat":"MetaDataFileCheckModuleFilePpiFormat",\r
+ "MetaDataFileCheckModuleFileProtocolFormat":"MetaDataFileCheckModuleFileProtocolFormat",\r
+ "MetaDataFileCheckPathName":"MetaDataFileCheckPathName",\r
+ "MetaDataFileCheckPathOfGenerateFileList":"MetaDataFileCheckPathOfGenerateFileList",\r
+ "MetaDataFileCheckPcdDuplicate":"MetaDataFileCheckPcdDuplicate",\r
+ "MetaDataFileCheckPcdFlash":"MetaDataFileCheckPcdFlash",\r
+ "MetaDataFileCheckPcdNoUse":"MetaDataFileCheckPcdNoUse",\r
+ "MetaDataFileCheckPcdType":"MetaDataFileCheckPcdType",\r
+ "NamingConventionCheckAll":"NamingConventionCheckAll",\r
+ "NamingConventionCheckDefineStatement":"NamingConventionCheckDefineStatement",\r
+ "NamingConventionCheckFunctionName":"NamingConventionCheckFunctionName",\r
+ "NamingConventionCheckIfndefStatement":"NamingConventionCheckIfndefStatement",\r
+ "NamingConventionCheckPathName":"NamingConventionCheckPathName",\r
+ "NamingConventionCheckSingleCharacterVariable":"NamingConventionCheckSingleCharacterVariable",\r
+ "NamingConventionCheckTypedefStatement":"NamingConventionCheckTypedefStatement",\r
+ "NamingConventionCheckVariableName":"NamingConventionCheckVariableName",\r
+ "PredicateExpressionCheckAll":"PredicateExpressionCheckAll",\r
+ "PredicateExpressionCheckBooleanValue":"PredicateExpressionCheckBooleanValue",\r
+ "PredicateExpressionCheckComparisonNullType":"PredicateExpressionCheckComparisonNullType",\r
+ "PredicateExpressionCheckNonBooleanOperator":"PredicateExpressionCheckNonBooleanOperator",\r
+ "ScanOnlyDirList":"ScanOnlyDirList",\r
+ "SkipDirList":"SkipDirList",\r
+ "SkipFileList":"SkipFileList",\r
+ "SmmCommParaCheckAll":"SmmCommParaCheckAll",\r
+ "SmmCommParaCheckBufferType":"SmmCommParaCheckBufferType",\r
+ "SpaceCheckAll":"SpaceCheckAll",\r
+ "SpellingCheckAll":"SpellingCheckAll",\r
+ "UniCheckAll":"UniCheckAll",\r
+ "UniCheckHelpInfo":"UniCheckHelpInfo",\r
+ "UniCheckPCDInfo":"UniCheckPCDInfo",\r
+ "Version":"Version"\r
+ }\r
+\r
## Configuration\r
#\r
# This class is used to define all items in configuration file\r
Line = CleanString(Line)\r
if Line != '':\r
List = GetSplitValueList(Line, TAB_EQUAL_SPLIT)\r
- if List[0] not in self.__dict__:\r
+ if List[0] not in _ConfigFileToInternalTranslation:\r
ErrorMsg = "Invalid configuration option '%s' was found" % List[0]\r
EdkLogger.error("Ecc", EdkLogger.ECC_ERROR, ErrorMsg, File = Filepath, Line = LineNo)\r
+ assert _ConfigFileToInternalTranslation[List[0]] in self.__dict__\r
if List[0] == 'ModifierList':\r
List[1] = GetSplitValueList(List[1], TAB_COMMA_SPLIT)\r
if List[0] == 'MetaDataFileCheckPathOfGenerateFileList' and List[1] == "":\r
List[1] = GetSplitValueList(List[1], TAB_COMMA_SPLIT)\r
if List[0] == 'Copyright':\r
List[1] = GetSplitValueList(List[1], TAB_COMMA_SPLIT)\r
- self.__dict__[List[0]] = List[1]\r
+ self.__dict__[_ConfigFileToInternalTranslation[List[0]]] = List[1]\r
\r
def ShowMe(self):\r
print self.Filename\r
for Key in self.__dict__.keys():\r
print Key, '=', self.__dict__[Key]\r
+\r
+#\r
+# test that our dict and out class still match in contents.\r
+#\r
+if __name__ == '__main__':\r
+ myconfig = Configuration("BaseTools\Source\Python\Ecc\config.ini")\r
+ for each in myconfig.__dict__:\r
+ if each == "Filename":\r
+ continue\r
+ assert each in _ConfigFileToInternalTranslation.values()\r
+ for each in _ConfigFileToInternalTranslation.values():\r
+ assert each in myconfig.__dict__\r