-------------------------------------------------------------------------
| 129 | |
| 130 | //------------------------------------------------------------------------- |
| 131 | void FillCoverageTree( |
| 132 | property_tree::wptree& root, |
| 133 | const Plugin::CoverageData& coverageData) |
| 134 | { |
| 135 | CppCoverage::CoverageRateComputer coverageRateComputer(coverageData); |
| 136 | auto& coverageTree = AddChild(root, L"coverage"); |
| 137 | const auto& coverageRate = coverageRateComputer.GetCoverageRate(); |
| 138 | SetCoverage(coverageTree, coverageRate); |
| 139 | SetCoverageAttributes(coverageTree, coverageRate); |
| 140 | |
| 141 | WriteSourceRoots(coverageData, coverageTree); |
| 142 | |
| 143 | property_tree::wptree& packagesTree = AddChild(coverageTree, L"packages"); |
| 144 | |
| 145 | for (const auto& module : coverageData.GetModules()) |
| 146 | { |
| 147 | // Do not create package if no files exists -> Coverage will not be visible by module |
| 148 | if (!module->GetFiles().empty()) |
| 149 | { |
| 150 | property_tree::wptree& packageTree = AddChild(packagesTree, L"package"); |
| 151 | property_tree::wptree& classesTree = AddChild(packageTree, L"classes"); |
| 152 | const auto& coverageRate = coverageRateComputer.GetCoverageRate(*module); |
| 153 | |
| 154 | packageTree.put(L"<xmlattr>.name", ToUft8WString(module->GetPath())); |
| 155 | SetCoverage(packageTree, coverageRate); |
| 156 | |
| 157 | for (const auto& file : module->GetFiles()) |
| 158 | { |
| 159 | property_tree::wptree& fileTree = AddChild(classesTree, L"class"); |
| 160 | FillFileTree(coverageRateComputer, fileTree, *file); |
| 161 | } |
| 162 | } |
| 163 | } |
| 164 | } |
| 165 | } |
| 166 | |
| 167 | //------------------------------------------------------------------------- |
no test coverage detected