| 118 | } |
| 119 | |
| 120 | void singleError() |
| 121 | { |
| 122 | SarifReport report; |
| 123 | report.addFinding(createErrorMessage("nullPointer", Severity::error, "Null pointer dereference")); |
| 124 | |
| 125 | std::string sarif = report.serialize("Cppcheck"); |
| 126 | picojson::value json; |
| 127 | ASSERT(parseAndValidateJson(sarif, json)); |
| 128 | |
| 129 | const picojson::object& root = json.get<picojson::object>(); |
| 130 | const picojson::array& runs = root.at("runs").get<picojson::array>(); |
| 131 | const picojson::object& cur_run = runs[0].get<picojson::object>(); |
| 132 | |
| 133 | // Check results |
| 134 | const picojson::array& results = cur_run.at("results").get<picojson::array>(); |
| 135 | ASSERT_EQUALS(1U, results.size()); |
| 136 | |
| 137 | const picojson::object& result = results[0].get<picojson::object>(); |
| 138 | ASSERT_EQUALS("nullPointer", result.at("ruleId").get<std::string>()); |
| 139 | ASSERT_EQUALS("error", result.at("level").get<std::string>()); |
| 140 | |
| 141 | const picojson::object& message = result.at("message").get<picojson::object>(); |
| 142 | ASSERT_EQUALS("Null pointer dereference", message.at("text").get<std::string>()); |
| 143 | |
| 144 | // Check rules |
| 145 | const picojson::object& tool = cur_run.at("tool").get<picojson::object>(); |
| 146 | const picojson::object& driver = tool.at("driver").get<picojson::object>(); |
| 147 | const picojson::array& rules = driver.at("rules").get<picojson::array>(); |
| 148 | ASSERT_EQUALS(1U, rules.size()); |
| 149 | |
| 150 | const picojson::object& rule = rules[0].get<picojson::object>(); |
| 151 | ASSERT_EQUALS("nullPointer", rule.at("id").get<std::string>()); |
| 152 | } |
| 153 | |
| 154 | void multipleErrors() |
| 155 | { |
nothing calls this directly
no test coverage detected