| 179 | } |
| 180 | |
| 181 | static void testScans() |
| 182 | { |
| 183 | auto standardCheckersCount = ProblemCollector::instance()->availableCheckers().size(); |
| 184 | ProblemCollector::registerProblemChecker(QStringLiteral("Dummy"), |
| 185 | QStringLiteral("Dummy"), |
| 186 | QStringLiteral("Always reports two dummy problems"), |
| 187 | &ProblemReporterTest::dummyScan); |
| 188 | |
| 189 | QCOMPARE(ProblemCollector::instance()->availableCheckers().size(), standardCheckersCount + 1); |
| 190 | |
| 191 | QCOMPARE(ProblemCollector::instance()->problems().size(), 0); |
| 192 | ProblemCollector::instance()->requestScan(); |
| 193 | auto problemsFromScansCount = ProblemCollector::instance()->problems().size(); |
| 194 | ProblemCollector::instance()->requestScan(); // scans should always be reproducible if the program didn't change. |
| 195 | QCOMPARE(ProblemCollector::instance()->problems().size(), problemsFromScansCount); |
| 196 | |
| 197 | auto dummyChecker = std::find_if(ProblemCollector::instance()->availableCheckers().begin(), |
| 198 | ProblemCollector::instance()->availableCheckers().end(), |
| 199 | [](const ProblemCollector::Checker &c) { return c.id == QStringLiteral("Dummy"); }); |
| 200 | dummyChecker->enabled = false; |
| 201 | |
| 202 | ProblemCollector::instance()->requestScan(); // scans should always be reproducible if the program didn't change. |
| 203 | QCOMPARE(ProblemCollector::instance()->problems().size(), problemsFromScansCount - 2); |
| 204 | dummyChecker->enabled = true; |
| 205 | |
| 206 | Problem p1; |
| 207 | p1.problemId = QStringLiteral("9skjlksdjb"); |
| 208 | p1.findingCategory = Problem::Live; |
| 209 | ProblemCollector::addProblem(p1); |
| 210 | Problem p2; |
| 211 | p2.problemId = QStringLiteral("abcdefg"); |
| 212 | p2.findingCategory = Problem::Permanent; |
| 213 | ProblemCollector::addProblem(p2); |
| 214 | |
| 215 | // all problems originating from a scan should be deleted before doing a new scan, but not live- and permanent problems |
| 216 | ProblemCollector::instance()->requestScan(); |
| 217 | QCOMPARE(ProblemCollector::instance()->problems().size(), problemsFromScansCount + 2); |
| 218 | |
| 219 | |
| 220 | ProblemCollector::instance()->clearScans(); |
| 221 | QCOMPARE(ProblemCollector::instance()->problems().size(), 2); |
| 222 | ProblemCollector::removeProblem(QStringLiteral("9skjlksdjb")); |
| 223 | ProblemCollector::removeProblem(QStringLiteral("abcdefg")); |
| 224 | |
| 225 | ProblemCollector::instance()->availableCheckers().erase(dummyChecker); |
| 226 | } |
| 227 | |
| 228 | static void testAvailableScansModel() |
| 229 | { |
nothing calls this directly
no test coverage detected