Files
ESP32_Serial_Swiss_Army_Knife/tests/web_httpd_idle/README.md
T

1.7 KiB

Ordinary HTTPS idle cleanup regressions

Run from the repository root:

python3 tests/web_httpd_idle/run.py
python3 tests/web_admin_transport/server_lifecycle.py
python3 tests/web_diagnostics/run.py

Requires a C11 host compiler (CC, default cc) and the installed ESP-IDF 5.5.0 source (IDF_PATH, default ~/.platformio/packages/framework-espidf). No packages are installed; binaries live in a temporary directory. No network, device or firmware operation.

run.py compiles the complete production idle lifecycle module and the production adapter sweep with installed SDK request-completion/body-purge functions. fakes.h/test.c provide deterministic TLS/parser/response/timer/queue/session-deletion doubles. Real local POSIX sockets exercise readability, shutdown, peer EOF and numeric fd reuse.

18 groups cover all six slots, normal five-second polling, never-used post-TLS connections, buffered/pipelined/incomplete input, slow synchronous processing/purge, failed requests, WS/upgrade/async exemptions, fd/TLS/slot/LRU reuse, shutdown retry, queue failure/loss, bounded submission, early callback completion, stop fences, failed stop/restart and stale/nonwrapping generations. The module is tested without linking diagnostics, and source guards enforce independent policy plus composed TLS callback ordering; the diagnostic and server suites exercise their own integration contracts.

These are not real TLS, ESP-IDF scheduler, TCP-over-network or target timing tests. In particular, accepted-but-lost UDP work is tested as a bounded fail-safe condition requiring successful server restart, not as automatic recovery. Full timeout/SDK audit, resource evidence and unperformed hardware checklist: docs/https_idle_cleanup.md.