testList = glob.glob(os.path.join(buildOutputBase, "**","*Test*.exe"), recursive=True)\r
workspace = thebuilder.env.GetValue("WORKSPACE")\r
workspace = (workspace + os.sep) if workspace[-1] != os.sep else workspace\r
+ workspaceBuild = os.path.join(workspace, 'Build')\r
# Generate coverage file\r
coverageFile = ""\r
for testFile in testList:\r
ret = RunCmd("OpenCppCoverage", f"--source {workspace} --export_type binary:{testFile}.cov -- {testFile}")\r
- coverageFile += " --input_coverage=" + testFile + ".cov"\r
+ if ret != 0:\r
+ logging.error("UnitTest Coverage: Failed to collect coverage data.")\r
+ return 1\r
+\r
+ coverageFile = f" --input_coverage={testFile}.cov"\r
+ totalCoverageFile = os.path.join(buildOutputBase, 'coverage.cov')\r
+ if os.path.isfile(totalCoverageFile):\r
+ coverageFile += f" --input_coverage={totalCoverageFile}"\r
+ ret = RunCmd(\r
+ "OpenCppCoverage",\r
+ f"--export_type binary:{totalCoverageFile} " +\r
+ f"--working_dir={workspaceBuild} " +\r
+ f"{coverageFile}"\r
+ )\r
if ret != 0:\r
logging.error("UnitTest Coverage: Failed to collect coverage data.")\r
return 1\r
\r
# Generate and XML file if requested.by each package\r
- ret = RunCmd("OpenCppCoverage", f"--export_type cobertura:{os.path.join(buildOutputBase, 'coverage.xml')} --working_dir={workspace}Build {coverageFile}")\r
+ ret = RunCmd(\r
+ "OpenCppCoverage",\r
+ f"--export_type cobertura:{os.path.join(buildOutputBase, 'coverage.xml')} " +\r
+ f"--working_dir={workspaceBuild} " +\r
+ f"--input_coverage={totalCoverageFile} "\r
+ )\r
if ret != 0:\r
logging.error("UnitTest Coverage: Failed to generate cobertura format xml in single package.")\r
return 1\r
\r
# Generate total report XML file for all package\r
- testCoverageList = glob.glob(os.path.join(workspace, "Build", "**","*Test*.exe.cov"), recursive=True)\r
+ testCoverageList = glob.glob(os.path.join(workspace, "Build", "**", "*Test*.exe.cov"), recursive=True)\r
coverageFile = ""\r
+ totalCoverageFile = os.path.join(workspaceBuild, 'coverage.cov')\r
for testCoverage in testCoverageList:\r
- coverageFile += " --input_coverage=" + testCoverage\r
+ coverageFile = f" --input_coverage={testCoverage}"\r
+ if os.path.isfile(totalCoverageFile):\r
+ coverageFile += f" --input_coverage={totalCoverageFile}"\r
+ ret = RunCmd(\r
+ "OpenCppCoverage",\r
+ f"--export_type binary:{totalCoverageFile} " +\r
+ f"--working_dir={workspaceBuild} " +\r
+ f"{coverageFile}"\r
+ )\r
+ if ret != 0:\r
+ logging.error("UnitTest Coverage: Failed to collect coverage data.")\r
+ return 1\r
\r
- ret = RunCmd("OpenCppCoverage", f"--export_type cobertura:{workspace}Build/coverage.xml --working_dir={workspace}Build {coverageFile}")\r
+ ret = RunCmd(\r
+ "OpenCppCoverage",\r
+ f"--export_type cobertura:{os.path.join(workspaceBuild, 'coverage.xml')} " +\r
+ f"--working_dir={workspaceBuild} " +\r
+ f"--input_coverage={totalCoverageFile}"\r
+ )\r
if ret != 0:\r
logging.error("UnitTest Coverage: Failed to generate cobertura format xml.")\r
return 1\r