.pytool/EccCheck: Rename edk2_path as workspace_path
The edk2 path and the workspace path are identical when running Ecc on edk2. When running Ecc on another repository (e.g.: edk2-platforms with edk2 as a submodule of edk2-platforms), these directories are different. Indeed, in the latter configuration, Ecc must run git commands on the tested repository, i.e. the workspace directory, edk2-platforms. Thus, rename edk2_path as workspace_path. Cc: Sean Brogan <sean.brogan@microsoft.com> Cc: Bret Barkelew <Bret.Barkelew@microsoft.com> Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Sami Mujawar <sami.mujawar@arm.com> Signed-off-by: Pierre Gondois <Pierre.Gondois@arm.com> Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
This commit is contained in:
committed by
mergify[bot]
parent
22fe311bd2
commit
a050c599df
@ -61,19 +61,19 @@ class EccCheck(ICiBuildPlugin):
|
|||||||
# - Junit Logger
|
# - Junit Logger
|
||||||
# - output_stream the StringIO output stream from this plugin via logging
|
# - output_stream the StringIO output stream from this plugin via logging
|
||||||
def RunBuildPlugin(self, packagename, Edk2pathObj, pkgconfig, environment, PLM, PLMHelper, tc, output_stream=None):
|
def RunBuildPlugin(self, packagename, Edk2pathObj, pkgconfig, environment, PLM, PLMHelper, tc, output_stream=None):
|
||||||
edk2_path = Edk2pathObj.WorkspacePath
|
workspace_path = Edk2pathObj.WorkspacePath
|
||||||
basetools_path = environment.GetValue("EDK_TOOLS_PATH")
|
basetools_path = environment.GetValue("EDK_TOOLS_PATH")
|
||||||
python_path = os.path.join(basetools_path, "Source", "Python")
|
python_path = os.path.join(basetools_path, "Source", "Python")
|
||||||
env = shell_environment.GetEnvironment()
|
env = shell_environment.GetEnvironment()
|
||||||
env.set_shell_var('PYTHONPATH', python_path)
|
env.set_shell_var('PYTHONPATH', python_path)
|
||||||
env.set_shell_var('WORKSPACE', edk2_path)
|
env.set_shell_var('WORKSPACE', workspace_path)
|
||||||
self.ECC_PASS = True
|
self.ECC_PASS = True
|
||||||
self.ApplyConfig(pkgconfig, edk2_path, basetools_path, packagename)
|
self.ApplyConfig(pkgconfig, workspace_path, basetools_path, packagename)
|
||||||
modify_dir_list = self.GetModifyDir(packagename)
|
modify_dir_list = self.GetModifyDir(packagename)
|
||||||
patch = self.GetDiff(packagename)
|
patch = self.GetDiff(packagename)
|
||||||
ecc_diff_range = self.GetDiffRange(patch, packagename, edk2_path)
|
ecc_diff_range = self.GetDiffRange(patch, packagename, workspace_path)
|
||||||
self.GenerateEccReport(modify_dir_list, ecc_diff_range, edk2_path, basetools_path)
|
self.GenerateEccReport(modify_dir_list, ecc_diff_range, workspace_path, basetools_path)
|
||||||
ecc_log = os.path.join(edk2_path, "Ecc.log")
|
ecc_log = os.path.join(workspace_path, "Ecc.log")
|
||||||
self.RevertCode()
|
self.RevertCode()
|
||||||
if self.ECC_PASS:
|
if self.ECC_PASS:
|
||||||
tc.SetSuccess()
|
tc.SetSuccess()
|
||||||
@ -178,24 +178,24 @@ class EccCheck(ICiBuildPlugin):
|
|||||||
return comment_range
|
return comment_range
|
||||||
|
|
||||||
def GenerateEccReport(self, modify_dir_list: List[str], ecc_diff_range: Dict[str, List[Tuple[int, int]]],
|
def GenerateEccReport(self, modify_dir_list: List[str], ecc_diff_range: Dict[str, List[Tuple[int, int]]],
|
||||||
edk2_path: str, basetools_path: str) -> None:
|
workspace_path: str, basetools_path: str) -> None:
|
||||||
ecc_need = False
|
ecc_need = False
|
||||||
ecc_run = True
|
ecc_run = True
|
||||||
config = os.path.join(basetools_path, "Source", "Python", "Ecc", "config.ini")
|
config = os.path.join(basetools_path, "Source", "Python", "Ecc", "config.ini")
|
||||||
exception = os.path.join(basetools_path, "Source", "Python", "Ecc", "exception.xml")
|
exception = os.path.join(basetools_path, "Source", "Python", "Ecc", "exception.xml")
|
||||||
report = os.path.join(edk2_path, "Ecc.csv")
|
report = os.path.join(workspace_path, "Ecc.csv")
|
||||||
for modify_dir in modify_dir_list:
|
for modify_dir in modify_dir_list:
|
||||||
target = os.path.join(edk2_path, modify_dir)
|
target = os.path.join(workspace_path, modify_dir)
|
||||||
logging.info('Run ECC tool for the commit in %s' % modify_dir)
|
logging.info('Run ECC tool for the commit in %s' % modify_dir)
|
||||||
ecc_need = True
|
ecc_need = True
|
||||||
ecc_params = "-c {0} -e {1} -t {2} -r {3}".format(config, exception, target, report)
|
ecc_params = "-c {0} -e {1} -t {2} -r {3}".format(config, exception, target, report)
|
||||||
return_code = RunCmd("Ecc", ecc_params, workingdir=edk2_path)
|
return_code = RunCmd("Ecc", ecc_params, workingdir=workspace_path)
|
||||||
if return_code != 0:
|
if return_code != 0:
|
||||||
ecc_run = False
|
ecc_run = False
|
||||||
break
|
break
|
||||||
if not ecc_run:
|
if not ecc_run:
|
||||||
logging.error('Fail to run ECC tool')
|
logging.error('Fail to run ECC tool')
|
||||||
self.ParseEccReport(ecc_diff_range, edk2_path)
|
self.ParseEccReport(ecc_diff_range, workspace_path)
|
||||||
|
|
||||||
if not ecc_need:
|
if not ecc_need:
|
||||||
logging.info("Doesn't need run ECC check")
|
logging.info("Doesn't need run ECC check")
|
||||||
@ -204,10 +204,10 @@ class EccCheck(ICiBuildPlugin):
|
|||||||
RunCmd("git", revert_params)
|
RunCmd("git", revert_params)
|
||||||
return
|
return
|
||||||
|
|
||||||
def ParseEccReport(self, ecc_diff_range: Dict[str, List[Tuple[int, int]]], edk2_path: str) -> None:
|
def ParseEccReport(self, ecc_diff_range: Dict[str, List[Tuple[int, int]]], workspace_path: str) -> None:
|
||||||
ecc_log = os.path.join(edk2_path, "Ecc.log")
|
ecc_log = os.path.join(workspace_path, "Ecc.log")
|
||||||
ecc_csv = "Ecc.csv"
|
ecc_csv = "Ecc.csv"
|
||||||
file = os.listdir(edk2_path)
|
file = os.listdir(workspace_path)
|
||||||
row_lines = []
|
row_lines = []
|
||||||
ignore_error_code = self.GetIgnoreErrorCode()
|
ignore_error_code = self.GetIgnoreErrorCode()
|
||||||
if ecc_csv in file:
|
if ecc_csv in file:
|
||||||
@ -236,10 +236,10 @@ class EccCheck(ICiBuildPlugin):
|
|||||||
log.writelines(all_line)
|
log.writelines(all_line)
|
||||||
return
|
return
|
||||||
|
|
||||||
def ApplyConfig(self, pkgconfig: Dict[str, List[str]], edk2_path: str, basetools_path: str, pkg: str) -> None:
|
def ApplyConfig(self, pkgconfig: Dict[str, List[str]], workspace_path: str, basetools_path: str, pkg: str) -> None:
|
||||||
if "IgnoreFiles" in pkgconfig:
|
if "IgnoreFiles" in pkgconfig:
|
||||||
for a in pkgconfig["IgnoreFiles"]:
|
for a in pkgconfig["IgnoreFiles"]:
|
||||||
a = os.path.join(edk2_path, pkg, a)
|
a = os.path.join(workspace_path, pkg, a)
|
||||||
a = a.replace(os.sep, "/")
|
a = a.replace(os.sep, "/")
|
||||||
|
|
||||||
logging.info("Ignoring Files {0}".format(a))
|
logging.info("Ignoring Files {0}".format(a))
|
||||||
|
Reference in New Issue
Block a user