40 lines
1.8 KiB
C
40 lines
1.8 KiB
C
#pragma once
|
||
|
||
// Помощники для тестов сетевых сервисов.
|
||
|
||
#include "fakeinternet.h"
|
||
|
||
#include <QString>
|
||
#include <QtTest/QTest>
|
||
|
||
// В initTestCase(): поднять FakeInternet или пропустить весь тест-класс.
|
||
// С BILAUNCHER_REQUIRE_FAKE_INTERNET=1 (так в CI на Linux) недоступность —
|
||
// ошибка, а не пропуск: иначе сломанный перехват тихо выключил бы все сетевые тесты.
|
||
#define BILAUNCHER_START_FAKE_INTERNET(net) \
|
||
do { \
|
||
QString startError_; \
|
||
if (!(net).start(&startError_)) { \
|
||
const QString message_ = QStringLiteral("FakeInternet недоступен: ") + startError_; \
|
||
if (qEnvironmentVariableIntValue("BILAUNCHER_REQUIRE_FAKE_INTERNET")) \
|
||
QFAIL(qPrintable(message_)); \
|
||
QSKIP(qPrintable(message_)); \
|
||
} \
|
||
} while (false)
|
||
|
||
// Результат колбэка вида (bool ok, QString warning).
|
||
struct CallResult
|
||
{
|
||
int calls = 0;
|
||
bool ok = false;
|
||
QString warning;
|
||
|
||
auto callback()
|
||
{
|
||
return [this](bool okValue, const QString &warningValue) {
|
||
++calls;
|
||
ok = okValue;
|
||
warning = warningValue;
|
||
};
|
||
}
|
||
};
|