MCPcopy Create free account
hub / github.com/KDAB/GammaRay / testScans

Method testScans

tests/problemreportertest.cpp:181–226  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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 {

Callers

nothing calls this directly

Calls 5

endMethod · 0.80
clearScansMethod · 0.80
sizeMethod · 0.45
requestScanMethod · 0.45
beginMethod · 0.45

Tested by

no test coverage detected