mirror of https://github.com/acidanthera/audk.git
BaseTools: Ecc - add dict for config file to internal translation
Commit eece4292ac
changed a variable name, which was tied directly to
a config file entry. This seperates the internal variable names from
the config file entries by having the internal dict accessed through a
translation of key words.
added a test when this is run straight from command line.
Cc: Liming Gao <liming.gao@intel.com>
Cc: Yonghong Zhu <yonghong.zhu@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jaben Carsey <jaben.carsey@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Yonghong Zhu <yonghong.zhu@intel.com>
This commit is contained in:
parent
8252e6bf2d
commit
a4c35dedd9
|
@ -1,7 +1,7 @@
|
|||
## @file
|
||||
# This file is used to define class Configuration
|
||||
#
|
||||
# Copyright (c) 2008 - 2017, Intel Corporation. All rights reserved.<BR>
|
||||
# Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR>
|
||||
# This program and the accompanying materials
|
||||
# are licensed and made available under the terms and conditions of the BSD License
|
||||
# which accompanies this distribution. The full text of the license may be found at
|
||||
|
@ -20,6 +20,109 @@ from Common.DataType import *
|
|||
from Common.String import *
|
||||
from Common.LongFilePathSupport import OpenLongFilePath as open
|
||||
|
||||
_ConfigFileToInternalTranslation = {
|
||||
# not same
|
||||
"ModifierList":"ModifierSet",
|
||||
|
||||
# same
|
||||
# please keep this in correct alphabetical order.
|
||||
"AutoCorrect":"AutoCorrect",
|
||||
"BinaryExtList":"BinaryExtList",
|
||||
"CFunctionLayoutCheckAll":"CFunctionLayoutCheckAll",
|
||||
"CFunctionLayoutCheckDataDeclaration":"CFunctionLayoutCheckDataDeclaration",
|
||||
"CFunctionLayoutCheckFunctionBody":"CFunctionLayoutCheckFunctionBody",
|
||||
"CFunctionLayoutCheckFunctionName":"CFunctionLayoutCheckFunctionName",
|
||||
"CFunctionLayoutCheckFunctionPrototype":"CFunctionLayoutCheckFunctionPrototype",
|
||||
"CFunctionLayoutCheckNoInitOfVariable":"CFunctionLayoutCheckNoInitOfVariable",
|
||||
"CFunctionLayoutCheckNoStatic":"CFunctionLayoutCheckNoStatic",
|
||||
"CFunctionLayoutCheckOptionalFunctionalModifier":"CFunctionLayoutCheckOptionalFunctionalModifier",
|
||||
"CFunctionLayoutCheckReturnType":"CFunctionLayoutCheckReturnType",
|
||||
"CheckAll":"CheckAll",
|
||||
"Copyright":"Copyright",
|
||||
"DeclarationDataTypeCheckAll":"DeclarationDataTypeCheckAll",
|
||||
"DeclarationDataTypeCheckEFIAPIModifier":"DeclarationDataTypeCheckEFIAPIModifier",
|
||||
"DeclarationDataTypeCheckEnumeratedType":"DeclarationDataTypeCheckEnumeratedType",
|
||||
"DeclarationDataTypeCheckInOutModifier":"DeclarationDataTypeCheckInOutModifier",
|
||||
"DeclarationDataTypeCheckNoUseCType":"DeclarationDataTypeCheckNoUseCType",
|
||||
"DeclarationDataTypeCheckSameStructure":"DeclarationDataTypeCheckSameStructure",
|
||||
"DeclarationDataTypeCheckStructureDeclaration":"DeclarationDataTypeCheckStructureDeclaration",
|
||||
"DeclarationDataTypeCheckUnionType":"DeclarationDataTypeCheckUnionType",
|
||||
"DoxygenCheckAll":"DoxygenCheckAll",
|
||||
"DoxygenCheckCommand":"DoxygenCheckCommand",
|
||||
"DoxygenCheckCommentDescription":"DoxygenCheckCommentDescription",
|
||||
"DoxygenCheckCommentFormat":"DoxygenCheckCommentFormat",
|
||||
"DoxygenCheckFileHeader":"DoxygenCheckFileHeader",
|
||||
"DoxygenCheckFunctionHeader":"DoxygenCheckFunctionHeader",
|
||||
"GeneralCheckAll":"GeneralCheckAll",
|
||||
"GeneralCheckCarriageReturn":"GeneralCheckCarriageReturn",
|
||||
"GeneralCheckFileExistence":"GeneralCheckFileExistence",
|
||||
"GeneralCheckIndentation":"GeneralCheckIndentation",
|
||||
"GeneralCheckIndentationWidth":"GeneralCheckIndentationWidth",
|
||||
"GeneralCheckLine":"GeneralCheckLine",
|
||||
"GeneralCheckLineWidth":"GeneralCheckLineWidth",
|
||||
"GeneralCheckNoProgma":"GeneralCheckNoProgma",
|
||||
"GeneralCheckNoTab":"GeneralCheckNoTab",
|
||||
"GeneralCheckNo_Asm":"GeneralCheckNo_Asm",
|
||||
"GeneralCheckNonAcsii":"GeneralCheckNonAcsii",
|
||||
"GeneralCheckTabWidth":"GeneralCheckTabWidth",
|
||||
"GeneralCheckUni":"GeneralCheckUni",
|
||||
"HeaderCheckAll":"HeaderCheckAll",
|
||||
"HeaderCheckCFileCommentLicenseFormat":"HeaderCheckCFileCommentLicenseFormat",
|
||||
"HeaderCheckCFileCommentReferenceFormat":"HeaderCheckCFileCommentReferenceFormat",
|
||||
"HeaderCheckCFileCommentStartSpacesNum":"HeaderCheckCFileCommentStartSpacesNum",
|
||||
"HeaderCheckFile":"HeaderCheckFile",
|
||||
"HeaderCheckFileCommentEnd":"HeaderCheckFileCommentEnd",
|
||||
"HeaderCheckFunction":"HeaderCheckFunction",
|
||||
"IncludeFileCheckAll":"IncludeFileCheckAll",
|
||||
"IncludeFileCheckData":"IncludeFileCheckData",
|
||||
"IncludeFileCheckIfndefStatement":"IncludeFileCheckIfndefStatement",
|
||||
"IncludeFileCheckSameName":"IncludeFileCheckSameName",
|
||||
"MetaDataFileCheckAll":"MetaDataFileCheckAll",
|
||||
"MetaDataFileCheckBinaryInfInFdf":"MetaDataFileCheckBinaryInfInFdf",
|
||||
"MetaDataFileCheckGenerateFileList":"MetaDataFileCheckGenerateFileList",
|
||||
"MetaDataFileCheckGuidDuplicate":"MetaDataFileCheckGuidDuplicate",
|
||||
"MetaDataFileCheckLibraryDefinedInDec":"MetaDataFileCheckLibraryDefinedInDec",
|
||||
"MetaDataFileCheckLibraryInstance":"MetaDataFileCheckLibraryInstance",
|
||||
"MetaDataFileCheckLibraryInstanceDependent":"MetaDataFileCheckLibraryInstanceDependent",
|
||||
"MetaDataFileCheckLibraryInstanceOrder":"MetaDataFileCheckLibraryInstanceOrder",
|
||||
"MetaDataFileCheckLibraryNoUse":"MetaDataFileCheckLibraryNoUse",
|
||||
"MetaDataFileCheckModuleFileGuidDuplication":"MetaDataFileCheckModuleFileGuidDuplication",
|
||||
"MetaDataFileCheckModuleFileGuidFormat":"MetaDataFileCheckModuleFileGuidFormat",
|
||||
"MetaDataFileCheckModuleFileNoUse":"MetaDataFileCheckModuleFileNoUse",
|
||||
"MetaDataFileCheckModuleFilePcdFormat":"MetaDataFileCheckModuleFilePcdFormat",
|
||||
"MetaDataFileCheckModuleFilePpiFormat":"MetaDataFileCheckModuleFilePpiFormat",
|
||||
"MetaDataFileCheckModuleFileProtocolFormat":"MetaDataFileCheckModuleFileProtocolFormat",
|
||||
"MetaDataFileCheckPathName":"MetaDataFileCheckPathName",
|
||||
"MetaDataFileCheckPathOfGenerateFileList":"MetaDataFileCheckPathOfGenerateFileList",
|
||||
"MetaDataFileCheckPcdDuplicate":"MetaDataFileCheckPcdDuplicate",
|
||||
"MetaDataFileCheckPcdFlash":"MetaDataFileCheckPcdFlash",
|
||||
"MetaDataFileCheckPcdNoUse":"MetaDataFileCheckPcdNoUse",
|
||||
"MetaDataFileCheckPcdType":"MetaDataFileCheckPcdType",
|
||||
"NamingConventionCheckAll":"NamingConventionCheckAll",
|
||||
"NamingConventionCheckDefineStatement":"NamingConventionCheckDefineStatement",
|
||||
"NamingConventionCheckFunctionName":"NamingConventionCheckFunctionName",
|
||||
"NamingConventionCheckIfndefStatement":"NamingConventionCheckIfndefStatement",
|
||||
"NamingConventionCheckPathName":"NamingConventionCheckPathName",
|
||||
"NamingConventionCheckSingleCharacterVariable":"NamingConventionCheckSingleCharacterVariable",
|
||||
"NamingConventionCheckTypedefStatement":"NamingConventionCheckTypedefStatement",
|
||||
"NamingConventionCheckVariableName":"NamingConventionCheckVariableName",
|
||||
"PredicateExpressionCheckAll":"PredicateExpressionCheckAll",
|
||||
"PredicateExpressionCheckBooleanValue":"PredicateExpressionCheckBooleanValue",
|
||||
"PredicateExpressionCheckComparisonNullType":"PredicateExpressionCheckComparisonNullType",
|
||||
"PredicateExpressionCheckNonBooleanOperator":"PredicateExpressionCheckNonBooleanOperator",
|
||||
"ScanOnlyDirList":"ScanOnlyDirList",
|
||||
"SkipDirList":"SkipDirList",
|
||||
"SkipFileList":"SkipFileList",
|
||||
"SmmCommParaCheckAll":"SmmCommParaCheckAll",
|
||||
"SmmCommParaCheckBufferType":"SmmCommParaCheckBufferType",
|
||||
"SpaceCheckAll":"SpaceCheckAll",
|
||||
"SpellingCheckAll":"SpellingCheckAll",
|
||||
"UniCheckAll":"UniCheckAll",
|
||||
"UniCheckHelpInfo":"UniCheckHelpInfo",
|
||||
"UniCheckPCDInfo":"UniCheckPCDInfo",
|
||||
"Version":"Version"
|
||||
}
|
||||
|
||||
## Configuration
|
||||
#
|
||||
# This class is used to define all items in configuration file
|
||||
|
@ -297,9 +400,10 @@ class Configuration(object):
|
|||
Line = CleanString(Line)
|
||||
if Line != '':
|
||||
List = GetSplitValueList(Line, TAB_EQUAL_SPLIT)
|
||||
if List[0] not in self.__dict__:
|
||||
if List[0] not in _ConfigFileToInternalTranslation:
|
||||
ErrorMsg = "Invalid configuration option '%s' was found" % List[0]
|
||||
EdkLogger.error("Ecc", EdkLogger.ECC_ERROR, ErrorMsg, File = Filepath, Line = LineNo)
|
||||
assert _ConfigFileToInternalTranslation[List[0]] in self.__dict__
|
||||
if List[0] == 'ModifierList':
|
||||
List[1] = GetSplitValueList(List[1], TAB_COMMA_SPLIT)
|
||||
if List[0] == 'MetaDataFileCheckPathOfGenerateFileList' and List[1] == "":
|
||||
|
@ -312,9 +416,21 @@ class Configuration(object):
|
|||
List[1] = GetSplitValueList(List[1], TAB_COMMA_SPLIT)
|
||||
if List[0] == 'Copyright':
|
||||
List[1] = GetSplitValueList(List[1], TAB_COMMA_SPLIT)
|
||||
self.__dict__[List[0]] = List[1]
|
||||
self.__dict__[_ConfigFileToInternalTranslation[List[0]]] = List[1]
|
||||
|
||||
def ShowMe(self):
|
||||
print self.Filename
|
||||
for Key in self.__dict__.keys():
|
||||
print Key, '=', self.__dict__[Key]
|
||||
|
||||
#
|
||||
# test that our dict and out class still match in contents.
|
||||
#
|
||||
if __name__ == '__main__':
|
||||
myconfig = Configuration("BaseTools\Source\Python\Ecc\config.ini")
|
||||
for each in myconfig.__dict__:
|
||||
if each == "Filename":
|
||||
continue
|
||||
assert each in _ConfigFileToInternalTranslation.values()
|
||||
for each in _ConfigFileToInternalTranslation.values():
|
||||
assert each in myconfig.__dict__
|
||||
|
|
Loading…
Reference in New Issue