2.1 KiB
2.1 KiB
test_protocol
Модуль под тестом
firmware/test/src/protocol.c — сериализация JSON-событий протокола
(session_start, test_begin, test_result, summary, confirm_request,
pong, error).
Категория
B — зависит от cli_send() и bsp_tick_get_ms(), подменяемых через fff.
Моки
cli_send— fff void-фейк; итоговая строка захватывается черезcustom_fake(capture_cli_send) в статический буфер, т.к. аргумент — указатель на стековый буферprotocol_send_*(), живой только до возврата.bsp_tick_get_ms— fff value-фейк, управляет значениемuptime_msвsession_start.bsp_delay— fff void-фейк-заглушка (не используется в проверках).
Что проверяется
Точный JSON-текст, передаваемый в cli_send(), для каждого типа сообщения:
session_start (нулевой и ненулевой uptime, версия прошивки), test_begin
(critical: true/false), test_result (pass, fail с деталями, skip),
summary (общий результат pass/fail), confirm_request (кастомный таймаут
и подстановка таймаута по умолчанию при timeout_ms == 0), pong, error
(разные коды ошибок).
Гарантии
- Формат JSON точно соответствует протоколу — сравнивается побайтово с эталонной строкой, а не только наличием отдельных полей.
- Каждый
protocol_send_*()вызываетcli_send()ровно один раз. confirm_requestсtimeout_ms == 0всегда получаетPROTOCOL_CONFIRM_TIMEOUT_MSвместо нуля.
Запуск
ctest --preset host-debug-test -R test_protocol -V