public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [Patch] BaseTools: Add DefaultStore section format Check
@ 2018-01-22  5:47 Yonghong Zhu
  2018-01-23  2:01 ` Gao, Liming
  0 siblings, 1 reply; 2+ messages in thread
From: Yonghong Zhu @ 2018-01-22  5:47 UTC (permalink / raw)
  To: edk2-devel

This patch add DefaultStore section format Check and it use same logic
with SKUID section.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
---
 BaseTools/Source/Python/Workspace/DscBuildData.py   | 8 ++++++++
 BaseTools/Source/Python/Workspace/MetaFileParser.py | 2 +-
 2 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/Source/Python/Workspace/DscBuildData.py
index 752fe05..16fe608 100644
--- a/BaseTools/Source/Python/Workspace/DscBuildData.py
+++ b/BaseTools/Source/Python/Workspace/DscBuildData.py
@@ -606,10 +606,18 @@ class DscBuildData(PlatformBuildClassObject):
                     EdkLogger.error('build', FORMAT_INVALID, 'No DefaultStores ID number',
                                     File=self.MetaFile, Line=Record[-1])
                 if Record[1] in [None, '']:
                     EdkLogger.error('build', FORMAT_INVALID, 'No DefaultStores ID name',
                                     File=self.MetaFile, Line=Record[-1])
+                Pattern = re.compile('^[1-9]\d*|0$')
+                HexPattern = re.compile(r'0[xX][0-9a-fA-F]+$')
+                if Pattern.match(Record[0]) == None and HexPattern.match(Record[0]) == None:
+                    EdkLogger.error('build', FORMAT_INVALID, "The format of the DefaultStores ID number is invalid. It only support Integer and HexNumber",
+                                    File=self.MetaFile, Line=Record[-1])
+                if not IsValidWord(Record[1]):
+                    EdkLogger.error('build', FORMAT_INVALID, "The format of the DefaultStores ID name is invalid. The correct format is '(a-zA-Z0-9_)(a-zA-Z0-9_-.)*'",
+                                    File=self.MetaFile, Line=Record[-1])
                 self.DefaultStores[Record[1].upper()] = (self.ToInt(Record[0]),Record[1].upper())
             if TAB_DEFAULT_STORES_DEFAULT not in self.DefaultStores:
                 self.DefaultStores[TAB_DEFAULT_STORES_DEFAULT] = (0,TAB_DEFAULT_STORES_DEFAULT)
             GlobalData.gDefaultStores = self.DefaultStores.keys()
             if GlobalData.gDefaultStores:
diff --git a/BaseTools/Source/Python/Workspace/MetaFileParser.py b/BaseTools/Source/Python/Workspace/MetaFileParser.py
index e236732..202093a 100644
--- a/BaseTools/Source/Python/Workspace/MetaFileParser.py
+++ b/BaseTools/Source/Python/Workspace/MetaFileParser.py
@@ -1103,11 +1103,11 @@ class DscParser(MetaFileParser):
         self._ValueList[0:len(TokenList)] = TokenList
     @ParseMacro
     def _DefaultStoresParser(self):
         TokenList = GetSplitValueList(self._CurrentLine, TAB_VALUE_SPLIT)
         if len(TokenList) != 2:
-            EdkLogger.error('Parser', FORMAT_INVALID, "Correct format is '<Integer>|<UiName>'",
+            EdkLogger.error('Parser', FORMAT_INVALID, "Correct format is '<Number>|<UiName>'",
                             ExtraData=self._CurrentLine, File=self.MetaFile, Line=self._LineIndex + 1)
         self._ValueList[0:len(TokenList)] = TokenList
 
     ## Parse Edk style of library modules
     @ParseMacro
-- 
2.6.1.windows.1



^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [Patch] BaseTools: Add DefaultStore section format Check
  2018-01-22  5:47 [Patch] BaseTools: Add DefaultStore section format Check Yonghong Zhu
@ 2018-01-23  2:01 ` Gao, Liming
  0 siblings, 0 replies; 2+ messages in thread
From: Gao, Liming @ 2018-01-23  2:01 UTC (permalink / raw)
  To: Zhu, Yonghong, edk2-devel@lists.01.org

Reviewed-by: Liming Gao <liming.gao@intel.com>

> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Yonghong Zhu
> Sent: Monday, January 22, 2018 1:48 PM
> To: edk2-devel@lists.01.org
> Subject: [edk2] [Patch] BaseTools: Add DefaultStore section format Check
> 
> This patch add DefaultStore section format Check and it use same logic
> with SKUID section.
> 
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Yonghong Zhu <yonghong.zhu@intel.com>
> ---
>  BaseTools/Source/Python/Workspace/DscBuildData.py   | 8 ++++++++
>  BaseTools/Source/Python/Workspace/MetaFileParser.py | 2 +-
>  2 files changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/BaseTools/Source/Python/Workspace/DscBuildData.py b/BaseTools/Source/Python/Workspace/DscBuildData.py
> index 752fe05..16fe608 100644
> --- a/BaseTools/Source/Python/Workspace/DscBuildData.py
> +++ b/BaseTools/Source/Python/Workspace/DscBuildData.py
> @@ -606,10 +606,18 @@ class DscBuildData(PlatformBuildClassObject):
>                      EdkLogger.error('build', FORMAT_INVALID, 'No DefaultStores ID number',
>                                      File=self.MetaFile, Line=Record[-1])
>                  if Record[1] in [None, '']:
>                      EdkLogger.error('build', FORMAT_INVALID, 'No DefaultStores ID name',
>                                      File=self.MetaFile, Line=Record[-1])
> +                Pattern = re.compile('^[1-9]\d*|0$')
> +                HexPattern = re.compile(r'0[xX][0-9a-fA-F]+$')
> +                if Pattern.match(Record[0]) == None and HexPattern.match(Record[0]) == None:
> +                    EdkLogger.error('build', FORMAT_INVALID, "The format of the DefaultStores ID number is invalid. It only
> support Integer and HexNumber",
> +                                    File=self.MetaFile, Line=Record[-1])
> +                if not IsValidWord(Record[1]):
> +                    EdkLogger.error('build', FORMAT_INVALID, "The format of the DefaultStores ID name is invalid. The correct
> format is '(a-zA-Z0-9_)(a-zA-Z0-9_-.)*'",
> +                                    File=self.MetaFile, Line=Record[-1])
>                  self.DefaultStores[Record[1].upper()] = (self.ToInt(Record[0]),Record[1].upper())
>              if TAB_DEFAULT_STORES_DEFAULT not in self.DefaultStores:
>                  self.DefaultStores[TAB_DEFAULT_STORES_DEFAULT] = (0,TAB_DEFAULT_STORES_DEFAULT)
>              GlobalData.gDefaultStores = self.DefaultStores.keys()
>              if GlobalData.gDefaultStores:
> diff --git a/BaseTools/Source/Python/Workspace/MetaFileParser.py b/BaseTools/Source/Python/Workspace/MetaFileParser.py
> index e236732..202093a 100644
> --- a/BaseTools/Source/Python/Workspace/MetaFileParser.py
> +++ b/BaseTools/Source/Python/Workspace/MetaFileParser.py
> @@ -1103,11 +1103,11 @@ class DscParser(MetaFileParser):
>          self._ValueList[0:len(TokenList)] = TokenList
>      @ParseMacro
>      def _DefaultStoresParser(self):
>          TokenList = GetSplitValueList(self._CurrentLine, TAB_VALUE_SPLIT)
>          if len(TokenList) != 2:
> -            EdkLogger.error('Parser', FORMAT_INVALID, "Correct format is '<Integer>|<UiName>'",
> +            EdkLogger.error('Parser', FORMAT_INVALID, "Correct format is '<Number>|<UiName>'",
>                              ExtraData=self._CurrentLine, File=self.MetaFile, Line=self._LineIndex + 1)
>          self._ValueList[0:len(TokenList)] = TokenList
> 
>      ## Parse Edk style of library modules
>      @ParseMacro
> --
> 2.6.1.windows.1
> 
> _______________________________________________
> edk2-devel mailing list
> edk2-devel@lists.01.org
> https://lists.01.org/mailman/listinfo/edk2-devel


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2018-01-23  1:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-22  5:47 [Patch] BaseTools: Add DefaultStore section format Check Yonghong Zhu
2018-01-23  2:01 ` Gao, Liming

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox