MCPcopy Create free account
hub / github.com/cel-expr/cel-cpp / TearDown

Method TearDown

testing/testrunner/coverage_reporting.cc:33–84  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

31
32namespace cel::test {
33void CoverageReportingEnvironment::TearDown() {
34 CoverageIndex::CoverageReport coverage_report =
35 coverage_index_.GetCoverageReport();
36 testing::Test::RecordProperty("CEL Expression",
37 coverage_report.cel_expression);
38 std::cout << "CEL Expression: " << coverage_report.cel_expression;
39 if (coverage_report.nodes == 0) {
40 testing::Test::RecordProperty("CEL Coverage", "No coverage stats found");
41 std::cout << "CEL Coverage: " << "No coverage stats found";
42 return;
43 }
44
45 // Log Node Coverage results
46 double node_coverage = static_cast<double>(coverage_report.covered_nodes) /
47 static_cast<double>(coverage_report.nodes) * 100.0;
48 std::string node_coverage_string =
49 absl::StrFormat("%.2f%% (%d out of %d nodes covered)", node_coverage,
50 coverage_report.covered_nodes, coverage_report.nodes);
51 testing::Test::RecordProperty("AST Node Coverage", node_coverage_string);
52 std::cout << "AST Node Coverage: " << node_coverage_string;
53 if (!coverage_report.unencountered_nodes.empty()) {
54 testing::Test::RecordProperty(
55 "Interesting Unencountered Nodes",
56 absl::StrJoin(coverage_report.unencountered_nodes, "\n"));
57 std::cout << "Interesting Unencountered Nodes: "
58 << absl::StrJoin(coverage_report.unencountered_nodes, "\n");
59 }
60
61 // Log Branch Coverage results
62 double branch_coverage = 0.0;
63 if (coverage_report.branches > 0) {
64 branch_coverage =
65 static_cast<double>(coverage_report.covered_boolean_outcomes) /
66 static_cast<double>(coverage_report.branches) * 100.0;
67 }
68 std::string branch_coverage_string = absl::StrFormat(
69 "%.2f%% (%d out of %d branch outcomes covered)", branch_coverage,
70 coverage_report.covered_boolean_outcomes, coverage_report.branches);
71 testing::Test::RecordProperty("AST Branch Coverage", branch_coverage_string);
72 std::cout << "AST Branch Coverage: " << branch_coverage_string;
73 if (!coverage_report.unencountered_branches.empty()) {
74 testing::Test::RecordProperty(
75 "Interesting Unencountered Branch Paths",
76 absl::StrJoin(coverage_report.unencountered_branches, "\n"));
77 std::cout << "Interesting Unencountered Branch Paths: "
78 << absl::StrJoin(coverage_report.unencountered_branches,
79 "\n");
80 }
81 if (!coverage_report.dot_graph.empty()) {
82 WriteDotGraphToArtifact(coverage_report.dot_graph);
83 }
84}
85
86void CoverageReportingEnvironment::WriteDotGraphToArtifact(
87 absl::string_view dot_graph) {

Callers 1

~TestRunnerMethod · 0.45

Calls 2

GetCoverageReportMethod · 0.80
emptyMethod · 0.45

Tested by

no test coverage detected