Тестирование¶
Teleproxy включает полный набор тестов. Подробности см. в TESTING.md в репозитории.
Запуск тестов (Docker)¶
Собирает образ прокси, образ тест-раннера, запускает оба и выполняет проверки подключений. Если переменная TELEPROXY_SECRET не задана, генерируется случайный секрет.
Запуск тестов (локально)¶
pip install -r tests/requirements.txt
export TELEPROXY_HOST=localhost
export TELEPROXY_PORT=443
python3 tests/test_proxy.py
Набор тестов¶
- HTTP-статистика: доступность эндпоинта статистики
- Метрики Prometheus: валидность формата exposition
- Порт MTProto: приём TCP-подключений
- E2E-тесты: подключение реального Telegram-клиента (Telethon) через прокси
- Фаззинг: harness-ы libFuzzer с AddressSanitizer для парсеров протоколов
Фаззинг¶
Требуется Clang:
Seed-корпус в fuzz/corpus/. Фаззеры запускаются автоматически в CI.
Устранение проблем¶
- Таймаут: проверьте сеть — MTProto-прокси могут быть заблокированы некоторыми провайдерами
- Порт занят: тесты по умолчанию используют порты 18443/18888