| 152 | } |
| 153 | |
| 154 | void multipleErrors() |
| 155 | { |
| 156 | SarifReport report; |
| 157 | report.addFinding(createErrorMessage("error1", Severity::error, "Error 1", "file1.cpp", 10, 5)); |
| 158 | report.addFinding(createErrorMessage("error2", Severity::warning, "Error 2", "file2.cpp", 20, 10)); |
| 159 | report.addFinding(createErrorMessage("error3", Severity::style, "Error 3", "file3.cpp", 30, 15)); |
| 160 | |
| 161 | std::string sarif = report.serialize("Cppcheck"); |
| 162 | picojson::value json; |
| 163 | ASSERT(parseAndValidateJson(sarif, json)); |
| 164 | |
| 165 | const picojson::object& root = json.get<picojson::object>(); |
| 166 | const picojson::array& runs = root.at("runs").get<picojson::array>(); |
| 167 | const picojson::object& cur_run = runs[0].get<picojson::object>(); |
| 168 | |
| 169 | const picojson::array& results = cur_run.at("results").get<picojson::array>(); |
| 170 | ASSERT_EQUALS(3U, results.size()); |
| 171 | |
| 172 | const picojson::object& tool = cur_run.at("tool").get<picojson::object>(); |
| 173 | const picojson::object& driver = tool.at("driver").get<picojson::object>(); |
| 174 | const picojson::array& rules = driver.at("rules").get<picojson::array>(); |
| 175 | ASSERT_EQUALS(3U, rules.size()); |
| 176 | } |
| 177 | |
| 178 | void errorWithoutLocation() |
| 179 | { |
nothing calls this directly
no test coverage detected