1. In same include file checkpoint, remove "\" of the beginning of file path
authorhchen30 <hchen30@c2973edb-eda0-4c78-bc6a-9341b269661f>
Wed, 24 Feb 2010 07:47:57 +0000 (07:47 +0000)
committerhchen30 <hchen30@c2973edb-eda0-4c78-bc6a-9341b269661f>
Wed, 24 Feb 2010 07:47:57 +0000 (07:47 +0000)
2. In duplicate pcd checkpoint, now it is set to only check FDF/DSC files with the same filename. The duplicate PCD in A.dsc and B.fdf will not be considered as a failure.
3. In name convention checkpoint, fix a bug of unnecessary work path going through.

git-svn-id: https://edk2-buildtools.svn.sourceforge.net/svnroot/edk2-buildtools/trunk/BaseTools@1893 c2973edb-eda0-4c78-bc6a-9341b269661f

Source/Python/Ecc/Check.py

index 59a2af3..a8ec638 100644 (file)
@@ -299,6 +299,8 @@ class Check(object):
                 if len(RecordDict[Key]) > 1:\r
                     for Item in RecordDict[Key]:\r
                         Path = Item[1].replace(EccGlobalData.gWorkspace, '')\r
                 if len(RecordDict[Key]) > 1:\r
                     for Item in RecordDict[Key]:\r
                         Path = Item[1].replace(EccGlobalData.gWorkspace, '')\r
+                        if Path.startswith('\\') or Path.startswith('/'):\r
+                            Path = Path[1:]\r
                         if not EccGlobalData.gException.IsException(ERROR_INCLUDE_FILE_CHECK_NAME, Path):\r
                             EccGlobalData.gDb.TblReport.Insert(ERROR_INCLUDE_FILE_CHECK_NAME, OtherMsg = "The file name for [%s] is duplicate" % Path, BelongsToTable = 'File', BelongsToItem = Item[0])\r
 \r
                         if not EccGlobalData.gException.IsException(ERROR_INCLUDE_FILE_CHECK_NAME, Path):\r
                             EccGlobalData.gDb.TblReport.Insert(ERROR_INCLUDE_FILE_CHECK_NAME, OtherMsg = "The file name for [%s] is duplicate" % Path, BelongsToTable = 'File', BelongsToItem = Item[0])\r
 \r
@@ -529,7 +531,7 @@ class Check(object):
         if EccGlobalData.gConfig.MetaDataFileCheckPcdDuplicate == '1' or EccGlobalData.gConfig.MetaDataFileCheckAll == '1' or EccGlobalData.gConfig.CheckAll == '1':\r
             EdkLogger.quiet("Checking for duplicate PCDs defined in both DSC and FDF files ...")\r
             SqlCommand = """\r
         if EccGlobalData.gConfig.MetaDataFileCheckPcdDuplicate == '1' or EccGlobalData.gConfig.MetaDataFileCheckAll == '1' or EccGlobalData.gConfig.CheckAll == '1':\r
             EdkLogger.quiet("Checking for duplicate PCDs defined in both DSC and FDF files ...")\r
             SqlCommand = """\r
-                         select A.ID, A.Value2, B.ID, B.Value2 from Dsc as A, Fdf as B\r
+                         select A.ID, A.Value2, A.BelongsToFile, B.ID, B.Value2, B.BelongsToFile from Dsc as A, Fdf as B\r
                          where A.Model >= %s and A.Model < %s\r
                          and B.Model >= %s and B.Model < %s\r
                          and A.Value2 = B.Value2\r
                          where A.Model >= %s and A.Model < %s\r
                          and B.Model >= %s and B.Model < %s\r
                          and A.Value2 = B.Value2\r
@@ -539,10 +541,17 @@ class Check(object):
                          """% (MODEL_PCD, MODEL_META_DATA_HEADER, MODEL_PCD, MODEL_META_DATA_HEADER)\r
             RecordSet = EccGlobalData.gDb.TblDsc.Exec(SqlCommand)\r
             for Record in RecordSet:\r
                          """% (MODEL_PCD, MODEL_META_DATA_HEADER, MODEL_PCD, MODEL_META_DATA_HEADER)\r
             RecordSet = EccGlobalData.gDb.TblDsc.Exec(SqlCommand)\r
             for Record in RecordSet:\r
+                SqlCommand1 = """select Name from File where ID = %s""" %Record[2]\r
+                SqlCommand2 = """select Name from File where ID = %s""" %Record[5]\r
+                DscFileName = os.path.splitext(EccGlobalData.gDb.TblDsc.Exec(SqlCommand1)[0][0])[0]\r
+                FdfFileName = os.path.splitext(EccGlobalData.gDb.TblDsc.Exec(SqlCommand2)[0][0])[0]\r
+                print DscFileName, 111, FdfFileName\r
+                if DscFileName != FdfFileName:\r
+                    continue\r
                 if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_PCD_DUPLICATE, Record[1]):\r
                     EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_PCD_DUPLICATE, OtherMsg = "The PCD [%s] is defined in both FDF file and DSC file" % (Record[1]), BelongsToTable = 'Dsc', BelongsToItem = Record[0])\r
                 if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_PCD_DUPLICATE, Record[3]):\r
                 if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_PCD_DUPLICATE, Record[1]):\r
                     EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_PCD_DUPLICATE, OtherMsg = "The PCD [%s] is defined in both FDF file and DSC file" % (Record[1]), BelongsToTable = 'Dsc', BelongsToItem = Record[0])\r
                 if not EccGlobalData.gException.IsException(ERROR_META_DATA_FILE_CHECK_PCD_DUPLICATE, Record[3]):\r
-                    EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_PCD_DUPLICATE, OtherMsg = "The PCD [%s] is defined in both FDF file and DSC file" % (Record[3]), BelongsToTable = 'Fdf', BelongsToItem = Record[2])\r
+                    EccGlobalData.gDb.TblReport.Insert(ERROR_META_DATA_FILE_CHECK_PCD_DUPLICATE, OtherMsg = "The PCD [%s] is defined in both FDF file and DSC file" % (Record[4]), BelongsToTable = 'Fdf', BelongsToItem = Record[3])\r
 \r
             EdkLogger.quiet("Checking for duplicate PCDs defined in DEC files ...")\r
             SqlCommand = """\r
 \r
             EdkLogger.quiet("Checking for duplicate PCDs defined in DEC files ...")\r
             SqlCommand = """\r
@@ -728,20 +737,26 @@ class Check(object):
 \r
     # Naming Convention Check\r
     def NamingConventionCheck(self):\r
 \r
     # Naming Convention Check\r
     def NamingConventionCheck(self):\r
-\r
-        for Dirpath, Dirnames, Filenames in self.WalkTree():\r
-            for F in Filenames:\r
-                if os.path.splitext(F)[1] in ('.h', '.c'):\r
-                    FullName = os.path.join(Dirpath, F)\r
-                    Id = c.GetTableID(FullName)\r
-                    if Id < 0:\r
-                        continue\r
-                    FileTable = 'Identifier' + str(Id)\r
-                    self.NamingConventionCheckDefineStatement(FileTable)\r
-                    self.NamingConventionCheckTypedefStatement(FileTable)\r
-                    self.NamingConventionCheckIfndefStatement(FileTable)\r
-                    self.NamingConventionCheckVariableName(FileTable)\r
-                    self.NamingConventionCheckSingleCharacterVariable(FileTable)\r
+        if EccGlobalData.gConfig.NamingConventionCheckDefineStatement == '1' \\r
+        or EccGlobalData.gConfig.NamingConventionCheckTypedefStatement == '1' \\r
+        or EccGlobalData.gConfig.NamingConventionCheckIfndefStatement == '1' \\r
+        or EccGlobalData.gConfig.NamingConventionCheckVariableName == '1' \\r
+        or EccGlobalData.gConfig.NamingConventionCheckSingleCharacterVariable == '1' \\r
+        or EccGlobalData.gConfig.NamingConventionCheckAll == '1'\\r
+        or EccGlobalData.gConfig.CheckAll == '1':\r
+            for Dirpath, Dirnames, Filenames in self.WalkTree():\r
+                for F in Filenames:\r
+                    if os.path.splitext(F)[1] in ('.h', '.c'):\r
+                        FullName = os.path.join(Dirpath, F)\r
+                        Id = c.GetTableID(FullName)\r
+                        if Id < 0:\r
+                            continue\r
+                        FileTable = 'Identifier' + str(Id)\r
+                        self.NamingConventionCheckDefineStatement(FileTable)\r
+                        self.NamingConventionCheckTypedefStatement(FileTable)\r
+                        self.NamingConventionCheckIfndefStatement(FileTable)\r
+                        self.NamingConventionCheckVariableName(FileTable)\r
+                        self.NamingConventionCheckSingleCharacterVariable(FileTable)\r
 \r
         self.NamingConventionCheckPathName()\r
         self.NamingConventionCheckFunctionName()\r
 \r
         self.NamingConventionCheckPathName()\r
         self.NamingConventionCheckFunctionName()\r