EXSWHTEC-223 - Update Coverage tool (#339)

- Apply clang-format on Coverage tool and add blue color for deprecated Modules
- Change color from blue to gray for deprecated modules
- Adjust the color of green
Этот коммит содержится в:
milos-mozetic
2023-07-11 10:40:40 +02:00
коммит произвёл GitHub
родитель bf50c2d2d8
Коммит 0c7fa43b5e
12 изменённых файлов: 1335 добавлений и 261 удалений
+183 -78
Просмотреть файл
@@ -22,38 +22,43 @@ THE SOFTWARE.
#include "reportGenerators.h"
BasicAPIStats::BasicAPIStats(std::vector<HipAPIGroup>& hip_api_groups):
number_of_called_apis{0}, number_of_not_called_apis{0},
number_of_deprecated_apis{0}, total_number_of_api_calls{0},
total_number_of_test_cases{0}
{
for (auto const& hip_api_group: hip_api_groups) {
BasicAPIStats::BasicAPIStats(std::vector<HipAPIGroup>& hip_api_groups)
: number_of_called_apis{0},
number_of_not_called_apis{0},
number_of_deprecated_apis{0},
total_number_of_api_calls{0},
total_number_of_test_cases{0} {
for (auto const& hip_api_group : hip_api_groups) {
number_of_called_apis += hip_api_group.getNumberOfCalledAPIs();
number_of_not_called_apis += hip_api_group.getNumberOfNotCalledAPIs();
number_of_deprecated_apis += hip_api_group.getNumberOfDeprecatedAPIs();
total_number_of_api_calls += hip_api_group.getTotalNumberOfCalls();
total_number_of_test_cases += hip_api_group.getTotalNumberOfTestCases();
}
total_number_of_apis = number_of_called_apis + number_of_not_called_apis + number_of_deprecated_apis;
tests_coverage_percentage = 100.f * number_of_called_apis / (number_of_called_apis + number_of_not_called_apis);
total_number_of_apis =
number_of_called_apis + number_of_not_called_apis + number_of_deprecated_apis;
tests_coverage_percentage =
100.f * number_of_called_apis / (number_of_called_apis + number_of_not_called_apis);
}
float BasicAPIStats::getLowCoverageLimit() const {
return 40.f;
}
float BasicAPIStats::getLowCoverageLimit() const { return 40.f; }
float BasicAPIStats::getMediumCoverageLimit() const {
return 80.f;
}
float BasicAPIStats::getMediumCoverageLimit() const { return 80.f; }
void generateXMLReportFiles(std::vector<HipAPI>& hip_apis, std::vector<HipAPIGroup>& hip_api_groups) {
void generateXMLReportFiles(std::vector<HipAPI>& hip_apis,
std::vector<HipAPIGroup>& hip_api_groups) {
BasicAPIStats basic_stats{hip_api_groups};
std::cout << "Total number of HIP API calls: " << basic_stats.total_number_of_api_calls << std::endl;
std::cout << "Number of the HIP APIs that are called at least once: " << basic_stats.number_of_called_apis << std::endl;
std::cout << "Number of the HIP APIs that are not called at all: " << basic_stats.number_of_not_called_apis << std::endl;
std::cout << "Number of the HIP APIs that are marked as deprecated: " << basic_stats.number_of_deprecated_apis << std::endl;
std::cout << "Test coverage by implemented tests, for the HIP APIs that are not marked as deprecated: ";
std::cout << "Total number of HIP API calls: " << basic_stats.total_number_of_api_calls
<< std::endl;
std::cout << "Number of the HIP APIs that are called at least once: "
<< basic_stats.number_of_called_apis << std::endl;
std::cout << "Number of the HIP APIs that are not called at all: "
<< basic_stats.number_of_not_called_apis << std::endl;
std::cout << "Number of the HIP APIs that are marked as deprecated: "
<< basic_stats.number_of_deprecated_apis << std::endl;
std::cout
<< "Test coverage by implemented tests, for the HIP APIs that are not marked as deprecated: ";
std::cout << basic_stats.tests_coverage_percentage << "%" << std::endl;
/*
@@ -71,36 +76,51 @@ void generateXMLReportFiles(std::vector<HipAPI>& hip_apis, std::vector<HipAPIGro
coverage_report << "<COVERAGE-RESULTS>\n";
coverage_report << "\t<TOTAL-NUMBER-OF-APIs>\n\t\t<DESCRIPTION>Total number of detected HIP APIs.</DESCRIPTION>";
coverage_report << "\n\t\t<NUMBER>" << hip_apis.size() << "</NUMBER>\n\t</TOTAL-NUMBER-OF-APIs>\n";
coverage_report << "\t<TOTAL-NUMBER-OF-APIs>\n\t\t<DESCRIPTION>Total number of detected HIP "
"APIs.</DESCRIPTION>";
coverage_report << "\n\t\t<NUMBER>" << hip_apis.size()
<< "</NUMBER>\n\t</TOTAL-NUMBER-OF-APIs>\n";
coverage_report << "\t<TOTAL-NUMBER-OF-API-CALLS>\n\t\t<DESCRIPTION>Total number of HIP API calls within test source files.</DESCRIPTION>";
coverage_report << "\n\t\t<NUMBER>" << basic_stats.total_number_of_api_calls << "</NUMBER>\n\t</TOTAL-NUMBER-OF-API-CALLS>\n";
coverage_report << "\t<TOTAL-NUMBER-OF-API-CALLS>\n\t\t<DESCRIPTION>Total number of HIP API "
"calls within test source files.</DESCRIPTION>";
coverage_report << "\n\t\t<NUMBER>" << basic_stats.total_number_of_api_calls
<< "</NUMBER>\n\t</TOTAL-NUMBER-OF-API-CALLS>\n";
coverage_report << "\t<CALLED-APIs>\n\t\t<DESCRIPTION>Number of the HIP APIs that are called at least once.</DESCRIPTION>";
coverage_report << "\n\t\t<NUMBER>" << basic_stats.number_of_called_apis << "</NUMBER>\n\t</CALLED-APIs>\n";
coverage_report << "\t<CALLED-APIs>\n\t\t<DESCRIPTION>Number of the HIP APIs that are called at "
"least once.</DESCRIPTION>";
coverage_report << "\n\t\t<NUMBER>" << basic_stats.number_of_called_apis
<< "</NUMBER>\n\t</CALLED-APIs>\n";
coverage_report << "\t<NOT-CALLED-APIs>\n\t\t<DESCRIPTION>Number of the HIP APIs that are not called at all.</DESCRIPTION>";
coverage_report << "\n\t\t<NUMBER>" << basic_stats.number_of_not_called_apis << "</NUMBER>\n\t</NOT-CALLED-APIs>\n";
coverage_report << "\t<NOT-CALLED-APIs>\n\t\t<DESCRIPTION>Number of the HIP APIs that are not "
"called at all.</DESCRIPTION>";
coverage_report << "\n\t\t<NUMBER>" << basic_stats.number_of_not_called_apis
<< "</NUMBER>\n\t</NOT-CALLED-APIs>\n";
coverage_report << "\t<DEPRECATED-APIs>\n\t\t<DESCRIPTION>Number of the HIP APIs that are marked as deprecated.</DESCRIPTION>";
coverage_report << "\n\t\t<NUMBER>" << basic_stats.number_of_deprecated_apis << "</NUMBER>\n\t</DEPRECATED-APIs>\n";
coverage_report << "\t<DEPRECATED-APIs>\n\t\t<DESCRIPTION>Number of the HIP APIs that are marked "
"as deprecated.</DESCRIPTION>";
coverage_report << "\n\t\t<NUMBER>" << basic_stats.number_of_deprecated_apis
<< "</NUMBER>\n\t</DEPRECATED-APIs>\n";
coverage_report << "\t<COVERAGE-PERCENTAGE>\n\t\t<DESCRIPTION>Test coverage by implemented tests for the HIP APIs that are not marked as deprecated.</DESCRIPTION>";
coverage_report << "\n\t\t<VALUE>" << basic_stats.tests_coverage_percentage << "%</VALUE>\n\t</COVERAGE-PERCENTAGE>";
coverage_report << "\t<COVERAGE-PERCENTAGE>\n\t\t<DESCRIPTION>Test coverage by implemented tests "
"for the HIP APIs that are not marked as deprecated.</DESCRIPTION>";
coverage_report << "\n\t\t<VALUE>" << basic_stats.tests_coverage_percentage
<< "%</VALUE>\n\t</COVERAGE-PERCENTAGE>";
coverage_report << "\n</COVERAGE-RESULTS>";
for (auto const& hip_api_group: hip_api_groups) {
coverage_report << hip_api_group.getBasicStatsHTML();
for (auto const& hip_api_group : hip_api_groups) {
coverage_report << hip_api_group.getBasicStatsHTML();
}
coverage_report.close();
std::cout << "Generated XML report file " << findAbsolutePathOfFile(report_file_name) << std::endl;
std::cout << "Generated XML report file " << findAbsolutePathOfFile(report_file_name)
<< std::endl;
}
void generateHTMLReportFiles(std::vector<HipAPI>& hip_apis, std::vector<HipAPIGroup>& hip_api_groups,
std::string tests_root_directory, std::string hipApiHeaderFile, std::string hip_rtc_header_file) {
void generateHTMLReportFiles(std::vector<HipAPI>& hip_apis,
std::vector<HipAPIGroup>& hip_api_groups,
std::string tests_root_directory, std::string hipApiHeaderFile,
std::string hip_rtc_header_file) {
BasicAPIStats basic_stats{hip_api_groups};
std::fstream coverage_report;
@@ -130,17 +150,26 @@ void generateHTMLReportFiles(std::vector<HipAPI>& hip_apis, std::vector<HipAPIGr
source, as it is much more clear.
*/
coverage_report << "<html lang=\"en\">";
coverage_report << "<head>" << one_tab << "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">";
coverage_report << "<head>" << one_tab
<< "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">";
coverage_report << one_tab << "<title>HIP API Coverage report</title>";
coverage_report << one_tab << "<link rel=\"stylesheet\" type=\"text/css\" href=\"resources/coverage.css\">" << one_tab << "</head>";
coverage_report << one_tab << "<body>" << one_tab << "<table width=\"100%\" border=0 cellspacing=0 cellpadding=0>";
coverage_report << one_tab
<< "<link rel=\"stylesheet\" type=\"text/css\" href=\"resources/coverage.css\">"
<< one_tab << "</head>";
coverage_report << one_tab << "<body>" << one_tab
<< "<table width=\"100%\" border=0 cellspacing=0 cellpadding=0>";
coverage_report << two_tabs << "<tr><td class=\"title\">HIP API Coverage report</td></tr>";
coverage_report << two_tabs << "<tr><td class=\"ruler\"><img src=\"resources/glass.png\" width=3 height=3></td></tr>\n";
coverage_report << two_tabs << "<tr>" << three_tabs << "<td width=\"100%\">" << four_tabs << "<table cellpading=1 border=0 width=\"100%\"";
coverage_report
<< two_tabs
<< "<tr><td class=\"ruler\"><img src=\"resources/glass.png\" width=3 height=3></td></tr>\n";
coverage_report << two_tabs << "<tr>" << three_tabs << "<td width=\"100%\">" << four_tabs
<< "<table cellpading=1 border=0 width=\"100%\"";
coverage_report << five_tabs << "<tr>";
coverage_report << six_tabs << "<td width=\"20%\" class=\"headerItem\">Catch2 tests location:</td>";
coverage_report << six_tabs << "<td width=\"30%\" class=\"headerValue\">" << tests_root_directory << "</td>";
coverage_report << six_tabs
<< "<td width=\"20%\" class=\"headerItem\">Catch2 tests location:</td>";
coverage_report << six_tabs << "<td width=\"30%\" class=\"headerValue\">" << tests_root_directory
<< "</td>";
coverage_report << six_tabs << "<td width=\"20%\"></td>";
coverage_report << six_tabs << "<td width=\"10%\" class=\"headerCovTableHead\">Value</td>";
coverage_report << six_tabs << "<td width=\"20%\"></td>";
@@ -150,15 +179,18 @@ void generateHTMLReportFiles(std::vector<HipAPI>& hip_apis, std::vector<HipAPIGr
coverage_report << six_tabs << "<td class=\"headerItem\">Source files included:</td>";
coverage_report << six_tabs << "<td class=\"headerValue\">" << hipApiHeaderFile << "</td>";
coverage_report << six_tabs << "<td class=\"headerItem\">Total number of detected HIP APIs:</td>";
coverage_report << six_tabs << "<td class=\"headerCovTableEntry\">" << basic_stats.total_number_of_apis << "</td>";
coverage_report << six_tabs << "<td class=\"headerCovTableEntry\">"
<< basic_stats.total_number_of_apis << "</td>";
coverage_report << six_tabs << "<td></td>";
coverage_report << five_tabs << "</tr>";
coverage_report << five_tabs << "<tr>";
coverage_report << six_tabs << "<td></td>";
coverage_report << six_tabs << "<td class=\"headerValue\">" << hip_rtc_header_file << "</td>";
coverage_report << six_tabs << "<td class=\"headerItem\">HIP API calls within test source files:</td>";
coverage_report << six_tabs << "<td class=\"headerCovTableEntry\">" << basic_stats.total_number_of_api_calls << "</td>";
coverage_report << six_tabs
<< "<td class=\"headerItem\">HIP API calls within test source files:</td>";
coverage_report << six_tabs << "<td class=\"headerCovTableEntry\">"
<< basic_stats.total_number_of_api_calls << "</td>";
coverage_report << six_tabs << "<td></td>";
coverage_report << five_tabs << "</tr>";
@@ -166,31 +198,38 @@ void generateHTMLReportFiles(std::vector<HipAPI>& hip_apis, std::vector<HipAPIGr
coverage_report << six_tabs << "<td></td>";
coverage_report << six_tabs << "<td></td>";
coverage_report << six_tabs << "<td class=\"headerItem\">Total number of test cases:</td>";
coverage_report << six_tabs << "<td class=\"headerCovTableEntry\">" << basic_stats.total_number_of_test_cases << "</td>";
coverage_report << six_tabs << "<td class=\"headerCovTableEntry\">"
<< basic_stats.total_number_of_test_cases << "</td>";
coverage_report << six_tabs << "<td></td>";
coverage_report << five_tabs << "</tr>";
coverage_report << five_tabs << "<tr>";
coverage_report << six_tabs << "<td></td>";
coverage_report << six_tabs << "<td></td>";
coverage_report << six_tabs << "<td class=\"headerItem\">HIP APIs that are called at least once:</td>";
coverage_report << six_tabs << "<td class=\"headerCovTableEntry\">" << basic_stats.number_of_called_apis << "</td>";
coverage_report << six_tabs
<< "<td class=\"headerItem\">HIP APIs that are called at least once:</td>";
coverage_report << six_tabs << "<td class=\"headerCovTableEntry\">"
<< basic_stats.number_of_called_apis << "</td>";
coverage_report << six_tabs << "<td></td>";
coverage_report << five_tabs << "</tr>";
coverage_report << five_tabs << "<tr>";
coverage_report << six_tabs << "<td></td>";
coverage_report << six_tabs << "<td></td>";
coverage_report << six_tabs << "<td class=\"headerItem\">HIP APIs that are not called at all:</td>";
coverage_report << six_tabs << "<td class=\"headerCovTableEntry\">" << basic_stats.number_of_not_called_apis << "</td>";
coverage_report << six_tabs
<< "<td class=\"headerItem\">HIP APIs that are not called at all:</td>";
coverage_report << six_tabs << "<td class=\"headerCovTableEntry\">"
<< basic_stats.number_of_not_called_apis << "</td>";
coverage_report << six_tabs << "<td></td>";
coverage_report << five_tabs << "</tr>";
coverage_report << five_tabs << "<tr>";
coverage_report << six_tabs << "<td></td>";
coverage_report << six_tabs << "<td></td>";
coverage_report << six_tabs << "<td class=\"headerItem\">HIP APIs that are marked as deprecated:</td>";
coverage_report << six_tabs << "<td class=\"headerCovTableEntry\">" << basic_stats.number_of_deprecated_apis << "</td>";
coverage_report << six_tabs
<< "<td class=\"headerItem\">HIP APIs that are marked as deprecated:</td>";
coverage_report << six_tabs << "<td class=\"headerCovTableEntry\">"
<< basic_stats.number_of_deprecated_apis << "</td>";
coverage_report << six_tabs << "<td></td>";
coverage_report << five_tabs << "</tr>";
@@ -198,29 +237,32 @@ void generateHTMLReportFiles(std::vector<HipAPI>& hip_apis, std::vector<HipAPIGr
std::string font_class;
if (basic_stats.tests_coverage_percentage < basic_stats.getLowCoverageLimit()) {
font_class = "headerCovTableEntryLo";
}
else if (basic_stats.tests_coverage_percentage < basic_stats.getMediumCoverageLimit()) {
} else if (basic_stats.tests_coverage_percentage < basic_stats.getMediumCoverageLimit()) {
font_class = "headerCovTableEntryMed";
}
else {
} else {
font_class = "headerCovTableEntryHi";
}
coverage_report << five_tabs << "<tr>";
coverage_report << six_tabs << "<td></td>";
coverage_report << six_tabs << "<td></td>";
coverage_report << six_tabs << "<td class=\"headerItem\">Test coverage by implemented tests for the HIP APIs:</td>";
coverage_report << six_tabs << "<td class=\""<< font_class << "\">" <<
std::fixed << std::setprecision(2) << basic_stats.tests_coverage_percentage << "%</td>";
coverage_report
<< six_tabs
<< "<td class=\"headerItem\">Test coverage by implemented tests for the HIP APIs:</td>";
coverage_report << six_tabs << "<td class=\"" << font_class << "\">" << std::fixed
<< std::setprecision(2) << basic_stats.tests_coverage_percentage << "%</td>";
coverage_report << six_tabs << "<td></td>";
coverage_report << five_tabs << "</tr>";
coverage_report << five_tabs << "<tr><td><img src=\"resources/glass.png\" width=3 height=3></td></tr>";
coverage_report << five_tabs
<< "<tr><td><img src=\"resources/glass.png\" width=3 height=3></td></tr>";
coverage_report << four_tabs << "</table>";
coverage_report << three_tabs << "</td>";
coverage_report << two_tabs << "</tr>";
coverage_report << two_tabs << "<tr><td class=\"ruler\"><img src=\"resources/glass.png\" width=3 height=3></td></tr>\n";
coverage_report
<< two_tabs
<< "<tr><td class=\"ruler\"><img src=\"resources/glass.png\" width=3 height=3></td></tr>\n";
coverage_report << one_tab << "</table>";
// Add info about HIP API Groups.
@@ -254,11 +296,17 @@ void generateHTMLReportFiles(std::vector<HipAPI>& hip_apis, std::vector<HipAPIGr
Create an HTML page for each API Group for more detailed information, as they are
used as hyperlinks from the main HTML page.
*/
for (auto const& hip_api_group: hip_api_groups) {
for (auto const& hip_api_group : hip_api_groups) {
if (hip_api_group.getTotalNumberOfAPIs() == 0) {
std::cout << "[SKIP_FROM_COV] Couldn't detect any valid HIP API within module "
<< hip_api_group.getName() << " hence skipping its HTML generation" << std::endl;
continue;
}
coverage_report << hip_api_group.getBasicStatsHTML();
std::fstream coverage_module_report;
std::string report_module_file_name{test_modules_directory + "/" + hip_api_group.getName() + ".html"};
std::string report_module_file_name{test_modules_directory + "/" + hip_api_group.getName() +
".html"};
coverage_module_report.open(report_module_file_name, std::ios::out);
coverage_module_report << hip_api_group.createHTMLReport();
coverage_module_report.close();
@@ -266,14 +314,20 @@ void generateHTMLReportFiles(std::vector<HipAPI>& hip_apis, std::vector<HipAPIGr
coverage_report << two_tabs << "<tr>";
coverage_report << three_tabs << "<td></td>";
coverage_report << three_tabs << "<td class=\"headerCovTableEntry\">" << basic_stats.total_number_of_apis << "</td>";
coverage_report << three_tabs << "<td class=\"headerCovTableEntry\">" << basic_stats.total_number_of_api_calls << "</td>";
coverage_report << three_tabs << "<td class=\"headerCovTableEntry\">" << basic_stats.total_number_of_test_cases << "</td>";
coverage_report << three_tabs << "<td class=\"headerCovTableEntry\">" << basic_stats.number_of_called_apis << "</td>";
coverage_report << three_tabs << "<td class=\"headerCovTableEntry\">" << basic_stats.number_of_not_called_apis << "</td>";
coverage_report << three_tabs << "<td class=\"headerCovTableEntry\">" << basic_stats.number_of_deprecated_apis << "</td>";
coverage_report << three_tabs << "<td class=\"headerCovTableEntry\">" <<
std::fixed << std::setprecision(2) << basic_stats.tests_coverage_percentage << "%</td>";
coverage_report << three_tabs << "<td class=\"headerCovTableEntry\">"
<< basic_stats.total_number_of_apis << "</td>";
coverage_report << three_tabs << "<td class=\"headerCovTableEntry\">"
<< basic_stats.total_number_of_api_calls << "</td>";
coverage_report << three_tabs << "<td class=\"headerCovTableEntry\">"
<< basic_stats.total_number_of_test_cases << "</td>";
coverage_report << three_tabs << "<td class=\"headerCovTableEntry\">"
<< basic_stats.number_of_called_apis << "</td>";
coverage_report << three_tabs << "<td class=\"headerCovTableEntry\">"
<< basic_stats.number_of_not_called_apis << "</td>";
coverage_report << three_tabs << "<td class=\"headerCovTableEntry\">"
<< basic_stats.number_of_deprecated_apis << "</td>";
coverage_report << three_tabs << "<td class=\"headerCovTableEntry\">" << std::fixed
<< std::setprecision(2) << basic_stats.tests_coverage_percentage << "%</td>";
coverage_report << three_tabs << "<td></td>";
coverage_report << two_tabs << "</tr>";
@@ -282,7 +336,57 @@ void generateHTMLReportFiles(std::vector<HipAPI>& hip_apis, std::vector<HipAPIGr
coverage_report << one_tab << "<br>";
coverage_report << one_tab << "<table width=\"100%\" border=0 cellspacing=0 cellpadding=0>";
coverage_report << two_tabs << "<tr><td class=\"ruler\"><img src=\"resources/glass.png\" width=3 height=3></td></tr>";
coverage_report
<< two_tabs
<< "<tr><td class=\"ruler\"><img src=\"resources/glass.png\" width=3 height=3></td></tr>";
coverage_report << one_tab << "</table>";
coverage_report << one_tab << "<br>";
coverage_report << one_tab << "<center>";
coverage_report << one_tab << "<table width=\"30%\" cellpadding=1 cellspacing=1 border=0>";
coverage_report << two_tabs << "<tr>";
coverage_report << three_tabs << "<td width=\"3%\"></td>";
coverage_report << three_tabs << "<td width=\"97%\"></td>";
coverage_report << two_tabs << "</tr>";
coverage_report << two_tabs << "<tr>";
coverage_report << three_tabs << "<td class=\"tableHead\" colspan=2>Color legend</td>";
coverage_report << two_tabs << "</tr>";
coverage_report << two_tabs << "<tr>";
coverage_report << three_tabs << "<td class=\"coverDeprecated\"></td>";
coverage_report << three_tabs << "<td class=\"coverFile\">Module is deprecated</td>";
coverage_report << two_tabs << "</tr>";
coverage_report << two_tabs << "<tr>";
coverage_report << three_tabs << "<td class=\"coverNumLo\"></td>";
coverage_report
<< three_tabs
<< "<td class=\"coverFile\">Percentage of called APIs within a module is less than 40%</td>";
coverage_report << two_tabs << "</tr>";
coverage_report << two_tabs << "<tr>";
coverage_report << three_tabs << "<td class=\"coverNumMed\"></td>";
coverage_report << three_tabs
<< "<td class=\"coverFile\">Percentage of called APIs within a module is between "
"40% and 80%</td>";
coverage_report << two_tabs << "</tr>";
coverage_report << two_tabs << "<tr>";
coverage_report << three_tabs << "<td class=\"coverNumHi\"></td>";
coverage_report << three_tabs
<< "<td class=\"coverFile\">Percentage of called APIs within a module is larger "
"than 80%</td>";
coverage_report << two_tabs << "</tr>";
coverage_report << one_tab << "</table>";
coverage_report << one_tab << "</center>";
coverage_report << one_tab << "<br>";
coverage_report << one_tab << "<table width=\"100%\" border=0 cellspacing=0 cellpadding=0>";
coverage_report
<< two_tabs
<< "<tr><td class=\"ruler\"><img src=\"resources/glass.png\" width=3 height=3></td></tr>";
time_t now{time(nullptr)};
std::string date{asctime(gmtime(&now))};
@@ -295,7 +399,7 @@ void generateHTMLReportFiles(std::vector<HipAPI>& hip_apis, std::vector<HipAPIGr
coverage_report.close();
// Create HTML report for each API, as they are used as hyperlinks from Groups HTML.
for (auto const& hip_api: hip_apis) {
for (auto const& hip_api : hip_apis) {
std::fstream coverage_api_report;
std::string report_api_file_name{test_apis_directory + "/" + hip_api.getName() + ".html"};
coverage_api_report.open(report_api_file_name, std::ios::out);
@@ -303,5 +407,6 @@ void generateHTMLReportFiles(std::vector<HipAPI>& hip_apis, std::vector<HipAPIGr
coverage_api_report.close();
}
std::cout << "Generated HTML report file " << findAbsolutePathOfFile(report_file_name) << std::endl;
std::cout << "Generated HTML report file " << findAbsolutePathOfFile(report_file_name)
<< std::endl;
}