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
|
## @file
|
||||||
# This file is used to define class Configuration
|
# 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
|
# This program and the accompanying materials
|
||||||
# are licensed and made available under the terms and conditions of the BSD License
|
# 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
|
# 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.String import *
|
||||||
from Common.LongFilePathSupport import OpenLongFilePath as open
|
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
|
## Configuration
|
||||||
#
|
#
|
||||||
# This class is used to define all items in configuration file
|
# This class is used to define all items in configuration file
|
||||||
|
@ -297,9 +400,10 @@ class Configuration(object):
|
||||||
Line = CleanString(Line)
|
Line = CleanString(Line)
|
||||||
if Line != '':
|
if Line != '':
|
||||||
List = GetSplitValueList(Line, TAB_EQUAL_SPLIT)
|
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]
|
ErrorMsg = "Invalid configuration option '%s' was found" % List[0]
|
||||||
EdkLogger.error("Ecc", EdkLogger.ECC_ERROR, ErrorMsg, File = Filepath, Line = LineNo)
|
EdkLogger.error("Ecc", EdkLogger.ECC_ERROR, ErrorMsg, File = Filepath, Line = LineNo)
|
||||||
|
assert _ConfigFileToInternalTranslation[List[0]] in self.__dict__
|
||||||
if List[0] == 'ModifierList':
|
if List[0] == 'ModifierList':
|
||||||
List[1] = GetSplitValueList(List[1], TAB_COMMA_SPLIT)
|
List[1] = GetSplitValueList(List[1], TAB_COMMA_SPLIT)
|
||||||
if List[0] == 'MetaDataFileCheckPathOfGenerateFileList' and List[1] == "":
|
if List[0] == 'MetaDataFileCheckPathOfGenerateFileList' and List[1] == "":
|
||||||
|
@ -312,9 +416,21 @@ class Configuration(object):
|
||||||
List[1] = GetSplitValueList(List[1], TAB_COMMA_SPLIT)
|
List[1] = GetSplitValueList(List[1], TAB_COMMA_SPLIT)
|
||||||
if List[0] == 'Copyright':
|
if List[0] == 'Copyright':
|
||||||
List[1] = GetSplitValueList(List[1], TAB_COMMA_SPLIT)
|
List[1] = GetSplitValueList(List[1], TAB_COMMA_SPLIT)
|
||||||
self.__dict__[List[0]] = List[1]
|
self.__dict__[_ConfigFileToInternalTranslation[List[0]]] = List[1]
|
||||||
|
|
||||||
def ShowMe(self):
|
def ShowMe(self):
|
||||||
print self.Filename
|
print self.Filename
|
||||||
for Key in self.__dict__.keys():
|
for Key in self.__dict__.keys():
|
||||||
print Key, '=', self.__dict__[Key]
|
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