Skip to content

Development and Testing

Roman Kuraev edited this page Jul 10, 2026 · 2 revisions

Development and Testing

Host tests

Firmware-independent modules are compiled directly with the host C compiler:

make -C tests/host

The suites cover dropped-frame accounting, timezone handling, request parsing, status output, RWFS, wall time, score calculation, OTA helpers, MQTT packets, and the BLE protocol.

Web UI checks

cd webui
npm test
npm run build

The production build packs dist into webui/webui.rwfs. The top-level firmware build performs the same step automatically.

Live-device smoke test

REWAIR_IP=<device-ip> scripts/api_smoke.zsh

The smoke suite checks the status, scan, saved networks, MQTT response shape, POST validation, SSE, split-packet request handling, and embedded UI assets.

The split-packet POST check can intermittently time out during back-to-back full-suite runs while dead SSE subscriber sockets are being reaped. If it is the only failure, rerun scripts/check_post_body.py alone before treating it as a regression.

Release packaging

Version tags trigger release CI. The tag must match wiced/apps/rewair/local_bridge/rewair_version.h exactly. To reproduce the bundle locally after a firmware build:

scripts/package_release.zsh

The package includes bootloader/application images, external WLAN assets, checksums, and manifest.json. Packaging also confirms that the expected version string is present in the application binary.

Current bench work

The authoritative list of verified features, open problems, and diagnostic procedures is maintained in Project Status.

Clone this wiki locally