The WebSocket echo server test connects immediately after seeing
'Starting server on port:' in the device log, but the /ws URI handler
is registered asynchronously after the server starts, taking 40-660ms
depending on config and CI load.
This causes WebSocket handshake to return 404 Not Found because the
URI handler is not registered yet when the client connects.
Wait for 'Returned from app_main()' before connecting, which
guarantees all URI handlers are registered. Add connection retry
with WebSocketBadStatusException handling to WsClient.
(cherry picked from commit 7a50e3ab04)
Replace howsmyssl.com with letsencrypt.org in the https_x509_bundle
example. howsmyssl.com is a third-party server that is frequently
unreachable from CI, causing flaky test failures. letsencrypt.org
chains to the same ISRG Root X1 CA, so the custom certificate bundle
validation coverage is identical.
(cherry picked from commit d6596eff3a)
The otatool pytest closes the serial port and then immediately launches
otatool_example.py as a subprocess that re-opens the same port via
esptool. This fails intermittently because pytest-embedded's
QueueFeederThread may still hold the FD when close() returns, and the
OS has not fully released the serial port by the time the subprocess
tries to open it.
Add a delay after serial close and a 3-attempt retry loop around the
subprocess to handle transient serial port contention.
(cherry picked from commit 926d5ee6ad)
- Fix callback function usage and parameter errors
- Fix spelling: BROCASTER to BROADCASTER in examples
- Update examples to match API changes
(cherry picked from commit 8f4dd7824e)
Co-authored-by: zhiweijian <zhiweijian@espressif.com>
SSL test relies on the device receiving a control message during the test, which was being sent
with QoS=0. Send the control message with QoS=1 to avoid failures due to poor network connection.
- Remove unused headers from examples
- Improve periodic adv/sync example functionality and readability
- Use ble_hs_id_infer_auto() instead of hardcoded BLE_OWN_ADDR_PUBLIC/RANDOM
- Add ble_hs_util_ensure_addr() calls in on_sync for proper address setup
- Use correct ext adv instance (0 instead of 1) in phy_prph, l2cap_coc, multi_conn
- Fix struct name: ble_gap_periodic_adv_enable_params -> ble_gap_periodic_adv_start_params
- Add CONFIG_BT_NIMBLE_GAP_SERVICE guards around ble_svc_gap_device_name_set
- Fix unsafe AD data parsing with bounds checks in central examples
- Fix UUID matching bugs (off-by-one loop condition and byte order) in
phy_cent, htp_cent, and proximity_sensor_cent
- Fix ble_multi_conn_cent address type to use dynamic inference
- Remove contradictory sm_sc=0 after sm_sc=1 in ble_multi_adv
- Add CONFIG_BT_NIMBLE_EXT_ADV=y to ble_multi_adv sdkconfig defaults
- Check return values for ble_gap_set_host_feat, nimble_port_init
- Update tutorials and READMEs to match code changes