From: Gua Guo <gua....@intel.com> Windows command prompt have 8191 character limitation, enhance it to make command too long can be resloved.
Change-Id: I7f1d8d46274f1c0104572d47253d499900effe76 Cc: Michael D Kinney <michael.d.kin...@intel.com> Cc: Sean Brogan <sean.bro...@microsoft.com> Cc: Michael Kubacki <mikub...@linux.microsoft.com> Signed-off-by: Gua Guo <gua....@intel.com> --- .../HostBasedUnitTestRunner.py | 31 ++++++++++++++++--- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/BaseTools/Plugin/HostBasedUnitTestRunner/HostBasedUnitTestRunner.py b/BaseTools/Plugin/HostBasedUnitTestRunner/HostBasedUnitTestRunner.py index d993de9412..05bb6da50a 100644 --- a/BaseTools/Plugin/HostBasedUnitTestRunner/HostBasedUnitTestRunner.py +++ b/BaseTools/Plugin/HostBasedUnitTestRunner/HostBasedUnitTestRunner.py @@ -209,13 +209,25 @@ class HostBasedUnitTestRunner(IUefiBuildPlugin): coverageFile = "" for testFile in testList: ret = RunCmd("OpenCppCoverage", f"--source {workspace} --export_type binary:{testFile}.cov -- {testFile}") - coverageFile += " --input_coverage=" + testFile + ".cov" + if ret != 0: + logging.error("UnitTest Coverage: Failed to collect coverage data.") + return 1 + + coverageFile = f" --input_coverage={testFile}.cov" + if (os.path.isfile(f"{os.path.join(buildOutputBase, 'coverage.cov')}")): + coverageFile += f" --input_coverage={os.path.join(buildOutputBase, 'coverage.cov')}" + ret = RunCmd("OpenCppCoverage", f"--export_type binary:{os.path.join(buildOutputBase, 'coverage.cov')} --working_dir={workspace}Build {coverageFile}") if ret != 0: logging.error("UnitTest Coverage: Failed to collect coverage data.") return 1 # Generate and XML file if requested.by each package - ret = RunCmd("OpenCppCoverage", f"--export_type cobertura:{os.path.join(buildOutputBase, 'coverage.xml')} --working_dir={workspace}Build {coverageFile}") + ret = RunCmd( + "OpenCppCoverage", + f"--export_type cobertura:{os.path.join(buildOutputBase, 'coverage.xml')} " + + f"--working_dir={workspace}Build " + + f"--input_coverage={os.path.join(buildOutputBase, 'coverage.cov')}" + ) if ret != 0: logging.error("UnitTest Coverage: Failed to generate cobertura format xml in single package.") return 1 @@ -224,9 +236,20 @@ class HostBasedUnitTestRunner(IUefiBuildPlugin): testCoverageList = glob.glob(os.path.join(workspace, "Build", "**","*Test*.exe.cov"), recursive=True) coverageFile = "" for testCoverage in testCoverageList: - coverageFile += " --input_coverage=" + testCoverage + coverageFile = f" --input_coverage={testCoverage}" + if (os.path.isfile(f"{workspace}Build/coverage.cov")): + coverageFile += f" --input_coverage={workspace}Build/coverage.cov" + ret = RunCmd("OpenCppCoverage", f"--export_type binary:{workspace}Build/coverage.cov --working_dir={workspace}Build {coverageFile}") + if ret != 0: + logging.error("UnitTest Coverage: Failed to collect coverage data.") + return 1 - ret = RunCmd("OpenCppCoverage", f"--export_type cobertura:{workspace}Build/coverage.xml --working_dir={workspace}Build {coverageFile}") + ret = RunCmd( + "OpenCppCoverage", + f"--export_type cobertura:{workspace}Build/coverage.xml " + + f"--working_dir={workspace}Build " + + f"--input_coverage={workspace}Build/coverage.cov" + ) if ret != 0: logging.error("UnitTest Coverage: Failed to generate cobertura format xml.") return 1 -- 2.39.2.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#104262): https://edk2.groups.io/g/devel/message/104262 Mute This Topic: https://groups.io/mt/98758306/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-