1. Remove the ECC.db from .\Database, the file is move to the root directory of Ecc...
[people/mcb30/basetools.git] / Source / Python / Ecc / EccToolError.py
1 ## @file\r
2 # Standardized Error Hanlding infrastructures.\r
3 #\r
4 # Copyright (c) 20087, Intel Corporation\r
5 # All rights reserved. This program and the accompanying materials\r
6 # are licensed and made available under the terms and conditions of the BSD License\r
7 # which accompanies this distribution.  The full text of the license may be found at\r
8 # http://opensource.org/licenses/bsd-license.php\r
9 #\r
10 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
12 #\r
13 \r
14 ERROR_GENERAL_CHECK_ALL = 1000\r
15 ERROR_GENERAL_CHECK_NO_TAB = 1001\r
16 ERROR_GENERAL_CHECK_INDENTATION = 1002\r
17 ERROR_GENERAL_CHECK_LINE = 1003\r
18 ERROR_GENERAL_CHECK_NO_ASM = 1004\r
19 ERROR_GENERAL_CHECK_NO_PROGMA = 1005\r
20 ERROR_GENERAL_CHECK_CARRIAGE_RETURN = 1006\r
21 ERROR_GENERAL_CHECK_FILE_EXISTENCE = 1007\r
22 \r
23 ERROR_SPACE_CHECK_ALL = 2000\r
24 \r
25 ERROR_PREDICATE_EXPRESSION_CHECK_ALL = 3000\r
26 ERROR_PREDICATE_EXPRESSION_CHECK_BOOLEAN_VALUE = 3001\r
27 ERROR_PREDICATE_EXPRESSION_CHECK_NO_BOOLEAN_OPERATOR = 3002\r
28 ERROR_PREDICATE_EXPRESSION_CHECK_COMPARISON_NULL_TYPE = 3003\r
29 \r
30 ERROR_HEADER_CHECK_ALL = 4000\r
31 ERROR_HEADER_CHECK_FILE = 4001\r
32 ERROR_HEADER_CHECK_FUNCTION = 4002\r
33 \r
34 ERROR_C_FUNCTION_LAYOUT_CHECK_ALL = 5000\r
35 ERROR_C_FUNCTION_LAYOUT_CHECK_RETURN_TYPE = 5001\r
36 ERROR_C_FUNCTION_LAYOUT_CHECK_OPTIONAL_FUNCTIONAL_MODIFIER = 5002\r
37 ERROR_C_FUNCTION_LAYOUT_CHECK_FUNCTION_NAME = 5003\r
38 ERROR_C_FUNCTION_LAYOUT_CHECK_FUNCTION_PROTO_TYPE = 5004\r
39 ERROR_C_FUNCTION_LAYOUT_CHECK_FUNCTION_BODY = 5005\r
40 ERROR_C_FUNCTION_LAYOUT_CHECK_DATA_DECLARATION = 5006\r
41 ERROR_C_FUNCTION_LAYOUT_CHECK_NO_INIT_OF_VARIABLE = 5007\r
42 ERROR_C_FUNCTION_LAYOUT_CHECK_NO_STATIC = 5008\r
43 \r
44 ERROR_INCLUDE_FILE_CHECK_ALL = 6000\r
45 ERROR_INCLUDE_FILE_CHECK_IFNDEF_STATEMENT_1 = 6001\r
46 ERROR_INCLUDE_FILE_CHECK_IFNDEF_STATEMENT_2 = 6002\r
47 ERROR_INCLUDE_FILE_CHECK_IFNDEF_STATEMENT_3 = 6003\r
48 ERROR_INCLUDE_FILE_CHECK_DATA = 6004\r
49 \r
50 ERROR_DECLARATION_DATA_TYPE_CHECK_ALL = 7000\r
51 ERROR_DECLARATION_DATA_TYPE_CHECK_NO_USE_C_TYPE = 7001\r
52 ERROR_DECLARATION_DATA_TYPE_CHECK_IN_OUT_MODIFIER = 7002\r
53 ERROR_DECLARATION_DATA_TYPE_CHECK_EFI_API_MODIFIER = 7003\r
54 ERROR_DECLARATION_DATA_TYPE_CHECK_ENUMERATED_TYPE = 7004\r
55 ERROR_DECLARATION_DATA_TYPE_CHECK_STRUCTURE_DECLARATION = 7005\r
56 ERROR_DECLARATION_DATA_TYPE_CHECK_UNION_TYPE = 7006\r
57 \r
58 ERROR_NAMING_CONVENTION_CHECK_ALL = 8000\r
59 ERROR_NAMING_CONVENTION_CHECK_DEFINE_STATEMENT = 8001\r
60 ERROR_NAMING_CONVENTION_CHECK_TYPEDEF_STATEMENT = 8002\r
61 ERROR_NAMING_CONVENTION_CHECK_IFNDEF_STATEMENT = 8003\r
62 ERROR_NAMING_CONVENTION_CHECK_PATH_NAME = 8004\r
63 ERROR_NAMING_CONVENTION_CHECK_VARIABLE_NAME = 8005\r
64 ERROR_NAMING_CONVENTION_CHECK_FUNCTION_NAME = 8006\r
65 ERROR_NAMING_CONVENTION_CHECK_SINGLE_CHARACTER_VARIABLE = 8007\r
66 \r
67 ERROR_DOXYGEN_CHECK_ALL = 9000\r
68 ERROR_DOXYGEN_CHECK_FILE_HEADER = 9001\r
69 ERROR_DOXYGEN_CHECK_FUNCTION_HEADER = 9002\r
70 ERROR_DOXYGEN_CHECK_COMMENT_DESCRIPTION = 9003\r
71 ERROR_DOXYGEN_CHECK_COMMENT_FORMAT = 9004\r
72 ERROR_DOXYGEN_CHECK_COMMAND = 9005\r
73 \r
74 ERROR_META_DATA_FILE_CHECK_ALL = 10000\r
75 ERROR_META_DATA_FILE_CHECK_PATH_NAME = 10001\r
76 ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_1 = 10002\r
77 ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_2 = 10003\r
78 ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_DEPENDENT = 10004\r
79 ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_ORDER = 10005\r
80 ERROR_META_DATA_FILE_CHECK_LIBRARY_NO_USE = 10006\r
81 ERROR_META_DATA_FILE_CHECK_BINARY_INF_IN_FDF = 10007\r
82 ERROR_META_DATA_FILE_CHECK_PCD_DUPLICATE = 10008\r
83 ERROR_META_DATA_FILE_CHECK_PCD_FLASH = 10009\r
84 ERROR_META_DATA_FILE_CHECK_PCD_NO_USE = 10010\r
85 ERROR_META_DATA_FILE_CHECK_DUPLICATE_GUID = 10011\r
86 ERROR_META_DATA_FILE_CHECK_DUPLICATE_PROTOCOL = 10012\r
87 ERROR_META_DATA_FILE_CHECK_DUPLICATE_PPI = 10013\r
88 \r
89 ERROR_SPELLING_CHECK_ALL = 11000\r
90 \r
91 gEccErrorMessage = {\r
92     ERROR_GENERAL_CHECK_ALL : "",\r
93     ERROR_GENERAL_CHECK_NO_TAB : "'TAB' character is not allowed in source code, please replace each 'TAB' with two spaces",\r
94     ERROR_GENERAL_CHECK_INDENTATION : "Indentation does not follow coding style",\r
95     ERROR_GENERAL_CHECK_LINE : "The width of each line does not follow coding style",\r
96     ERROR_GENERAL_CHECK_NO_ASM : "There should be no use of _asm in the source file",\r
97     ERROR_GENERAL_CHECK_NO_PROGMA : """There should be no use of "#progma" in source file except "#pragma pack(#)\"""",\r
98     ERROR_GENERAL_CHECK_CARRIAGE_RETURN : "There should be a carriage return at the end of the file",\r
99     ERROR_GENERAL_CHECK_FILE_EXISTENCE : "File not found",\r
100     \r
101     ERROR_SPACE_CHECK_ALL : "",\r
102     \r
103     ERROR_PREDICATE_EXPRESSION_CHECK_ALL : "",\r
104     ERROR_PREDICATE_EXPRESSION_CHECK_BOOLEAN_VALUE : "Boolean values and variable type BOOLEAN should not use explicit comparisons to TRUE or FALSE",\r
105     ERROR_PREDICATE_EXPRESSION_CHECK_NO_BOOLEAN_OPERATOR : "Non-Boolean comparisons should use a compare operator (==, !=, >, < >=, <=)",\r
106     ERROR_PREDICATE_EXPRESSION_CHECK_COMPARISON_NULL_TYPE : "A comparison of any pointer to zero must be done via the NULL type",\r
107     \r
108     ERROR_HEADER_CHECK_ALL : "",\r
109     ERROR_HEADER_CHECK_FILE : "File header doesn't exist",\r
110     ERROR_HEADER_CHECK_FUNCTION : "Function header doesn't exist",\r
111     \r
112     ERROR_C_FUNCTION_LAYOUT_CHECK_ALL : "",\r
113     ERROR_C_FUNCTION_LAYOUT_CHECK_RETURN_TYPE : "Return type of a function should exist and in the first line",\r
114     ERROR_C_FUNCTION_LAYOUT_CHECK_OPTIONAL_FUNCTIONAL_MODIFIER : "Any optional functional modifiers should exist and next to the return type",\r
115     ERROR_C_FUNCTION_LAYOUT_CHECK_FUNCTION_NAME : """Function name should be left justified, followed by the beginning of the parameter list, with the closing parenthesis on its own line, indented two spaces""",\r
116     ERROR_C_FUNCTION_LAYOUT_CHECK_FUNCTION_PROTO_TYPE : "Function prototypes in include files have the same form as function definitions",\r
117     ERROR_C_FUNCTION_LAYOUT_CHECK_FUNCTION_BODY : "The body of a function should be contained by open and close braces that must be in the first column",\r
118     ERROR_C_FUNCTION_LAYOUT_CHECK_DATA_DECLARATION : "The data declarations should be the first code in a module",\r
119     ERROR_C_FUNCTION_LAYOUT_CHECK_NO_INIT_OF_VARIABLE : "There should be no initialization of a variable as part of its declaration",\r
120     ERROR_C_FUNCTION_LAYOUT_CHECK_NO_STATIC : "There should be no use of STATIC for functions",\r
121     \r
122     ERROR_INCLUDE_FILE_CHECK_ALL : "",\r
123     ERROR_INCLUDE_FILE_CHECK_IFNDEF_STATEMENT_1 : "All include file contents should be guarded by a #ifndef statement.",\r
124     ERROR_INCLUDE_FILE_CHECK_IFNDEF_STATEMENT_2 : "The #ifndef must be the first line of code following the file header comment",\r
125     ERROR_INCLUDE_FILE_CHECK_IFNDEF_STATEMENT_3 : "The #endif must appear on the last line in the file",\r
126     ERROR_INCLUDE_FILE_CHECK_DATA : "Include files should contain only public or only private data and cannot contain code or define data variables",\r
127     \r
128     ERROR_DECLARATION_DATA_TYPE_CHECK_ALL : "",\r
129     ERROR_DECLARATION_DATA_TYPE_CHECK_NO_USE_C_TYPE : "There should be no use of int, unsigned, char, void, static, long in any .c, .h or .asl files",\r
130     ERROR_DECLARATION_DATA_TYPE_CHECK_IN_OUT_MODIFIER : """The modifiers IN, OUT, OPTIONAL, and UNALIGNED should be used only to qualify arguments to a function and should not appear in a data type declaration""",\r
131     ERROR_DECLARATION_DATA_TYPE_CHECK_EFI_API_MODIFIER : "The EFIAPI modifier should be used at the entry of drivers, events, and member functions of protocols",\r
132     ERROR_DECLARATION_DATA_TYPE_CHECK_ENUMERATED_TYPE : "Enumerated Type should have a 'typedef' and the name must be in capital letters",\r
133     ERROR_DECLARATION_DATA_TYPE_CHECK_STRUCTURE_DECLARATION : "Structure Type should have a 'typedef' and the name must be in capital letters",\r
134     ERROR_DECLARATION_DATA_TYPE_CHECK_UNION_TYPE : "Union Type should have a 'typedef' and the name must be in capital letters",\r
135     \r
136     ERROR_NAMING_CONVENTION_CHECK_ALL : "",\r
137     ERROR_NAMING_CONVENTION_CHECK_DEFINE_STATEMENT : "Only capital letters are allowed to be used for #define declarations",\r
138     ERROR_NAMING_CONVENTION_CHECK_TYPEDEF_STATEMENT : "Only capital letters are allowed to be used for typedef declarations",\r
139     ERROR_NAMING_CONVENTION_CHECK_IFNDEF_STATEMENT : "The #ifndef at the start of an include file should use both prefix and postfix underscore characters, '_'",\r
140     ERROR_NAMING_CONVENTION_CHECK_PATH_NAME : """Path name does not follow the rules: 1. First character should be upper case 2. Must contain lower case characters 3. No white space characters""",\r
141     ERROR_NAMING_CONVENTION_CHECK_VARIABLE_NAME : """Variable name does not follow the rules: 1. First character should be upper case 2. Must contain lower case characters 3. No white space characters""",\r
142     ERROR_NAMING_CONVENTION_CHECK_FUNCTION_NAME : """Function name does not follow the rules: 1. First character should be upper case 2. Must contain lower case characters 3. No white space characters""",\r
143     ERROR_NAMING_CONVENTION_CHECK_SINGLE_CHARACTER_VARIABLE : "There should be no use of short (single character) variable names",\r
144     \r
145     ERROR_DOXYGEN_CHECK_ALL : "",\r
146     ERROR_DOXYGEN_CHECK_FILE_HEADER : "The file headers should follow Doxygen special documentation blocks in section 2.3.5",\r
147     ERROR_DOXYGEN_CHECK_FUNCTION_HEADER : "The function headers should follow Doxygen special documentation blocks in section 2.3.5",\r
148     ERROR_DOXYGEN_CHECK_COMMENT_DESCRIPTION : """The first line of text in a comment block should be a brief description of the element being documented and the brief description must end with a period.""",\r
149     ERROR_DOXYGEN_CHECK_COMMENT_FORMAT : "For comment line with '///< ... text ...' format, if it is used, it should be after the code section",\r
150     ERROR_DOXYGEN_CHECK_COMMAND : "Only Doxygen commands @bug and @todo are allowed to mark the code",\r
151     \r
152     ERROR_META_DATA_FILE_CHECK_ALL : "",\r
153     ERROR_META_DATA_FILE_CHECK_PATH_NAME : "The file defined in meta-data does not exist",\r
154     ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_1 : "A library instances defined for a given module (or dependent library instance) doesn't match the module's type.", \r
155     ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_2 : "A library instance must specify the Supported Module Types in its INF file",\r
156     ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_DEPENDENT : "A library instance must be defined for all dependent library classes",\r
157     ERROR_META_DATA_FILE_CHECK_LIBRARY_INSTANCE_ORDER : "The library Instances specified by the LibraryClasses sections should be listed in order of dependencies",\r
158     ERROR_META_DATA_FILE_CHECK_LIBRARY_NO_USE : "There should be no unnecessary inclusion of library classes in the INF file",\r
159     ERROR_META_DATA_FILE_CHECK_BINARY_INF_IN_FDF : "An INF file is specified in the FDF file, but not in the DSC file, therefore the INF file must be for a Binary module only",\r
160     ERROR_META_DATA_FILE_CHECK_PCD_DUPLICATE : "Duplicate PCDs found in both FDF and DSC files",\r
161     ERROR_META_DATA_FILE_CHECK_PCD_FLASH : "PCD settings in the FDF file should only be related to flash",\r
162     ERROR_META_DATA_FILE_CHECK_PCD_NO_USE : "There should be no PCDs declared in INF files that are not specified in in either a DSC or FDF file",\r
163     ERROR_META_DATA_FILE_CHECK_DUPLICATE_GUID : "Duplicate GUID found",\r
164     ERROR_META_DATA_FILE_CHECK_DUPLICATE_PROTOCOL : "Duplicate PROTOCOL found",\r
165     ERROR_META_DATA_FILE_CHECK_DUPLICATE_PPI : "Duplicate PPI found",\r
166     \r
167     ERROR_SPELLING_CHECK_ALL : "",\r
168     }\r
169 \r