test(traces): le traceur n'apparie une réponse qu'à la ligne de sa requête (brief 4 T6)
Contre-épreuve T4 : sans le contrôle d'identifiant du traceur, aucun test ne cassait — le SocketScheduler écarte déjà les réponses obsolètes en amont. Ce test unitaire éprouve la seconde garde seule (autre requête, aucune requête, réponse en double). socketscheduler : 34 fonctions, 117 / 0. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
6c44a4e091
commit
10683744d2
@ -133,6 +133,7 @@ private slots:
|
||||
void testTraceWriteFailureChangesNoDecision();
|
||||
void testTokenIsInNoTrace();
|
||||
void testTraceLineSize();
|
||||
void testTracerPairsTheResponseByRequestId();
|
||||
|
||||
private:
|
||||
//! Banc commun ; \p avecOptimiseur faux = rien n'est configuré.
|
||||
@ -1919,5 +1920,29 @@ void TestSocketScheduler::testTraceLineSize()
|
||||
qPrintable(QStringLiteral("%1 o par ligne rule-based").arg(r)));
|
||||
}
|
||||
|
||||
void TestSocketScheduler::testTracerPairsTheResponseByRequestId()
|
||||
{
|
||||
// Le traceur seul : une réponse ne complète QUE la ligne de SA requête. En service, le
|
||||
// SocketScheduler écarte déjà les réponses obsolètes ; cette garde est la seconde.
|
||||
const QString d = m_dossierTraces.path() + "/appariement";
|
||||
QDir().mkpath(d);
|
||||
OptimizerTrace::Reglage r;
|
||||
r.active = true;
|
||||
r.dossier = d;
|
||||
const QDateTime t0 = utcDateTime(QDate(2026, 6, 8), QTime(13, 0, 0));
|
||||
{
|
||||
OptimizerTracer tr(r);
|
||||
tr.noterCycle({{"t", "a"}, {"strategy", "rules"}}, t0, 7);
|
||||
tr.noterReponse(6, {{"result", QVariantMap{{"faux", true}}}}, 1); // une autre requête
|
||||
tr.noterReponse(0, {{"result", QVariantMap{{"faux", true}}}}, 1); // aucune requête
|
||||
tr.noterReponse(7, {{"result", QVariantMap{{"bon", true}}}}, 12);
|
||||
tr.noterReponse(7, {{"result", QVariantMap{{"double", true}}}}, 13); // déjà complétée
|
||||
} // le destructeur vide la file
|
||||
const QList<QVariantMap> l = traces(d, 1);
|
||||
QCOMPARE(l.count(), 1);
|
||||
QCOMPARE(l.first().value("response").toMap(), (QVariantMap{{"result", QVariantMap{{"bon", true}}}}));
|
||||
QCOMPARE(l.first().value("latencyMs").toInt(), 12);
|
||||
}
|
||||
|
||||
QTEST_MAIN(TestSocketScheduler)
|
||||
#include "testsocketscheduler.moc"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user