MCPcopy Create free account
hub / github.com/FastLED/FastLED / _run_lpc_ws2812_loopback_tests

Function _run_lpc_ws2812_loopback_tests

ci/autoresearch/phases.py:1694–1733  ·  view source on GitHub ↗

Run the FastLED #3021 Phase-2 SCT-RX WS2812 byte-match bench. Delegates to `ci/autoresearch/test_lpc_ws2812_loopback.py`. The sketch must be built with `-DFASTLED_LPC_RX_SCT_WS2812=1` for the `ws2812SctTest` RPC to be bound — without that flag the RPC is absent from the sketch's `fl

(ctx: RunContext)

Source from the content-addressed store, hash-verified

1692
1693
1694async def _run_lpc_ws2812_loopback_tests(ctx: RunContext) -> int:
1695 """Run the FastLED #3021 Phase-2 SCT-RX WS2812 byte-match bench.
1696
1697 Delegates to `ci/autoresearch/test_lpc_ws2812_loopback.py`. The
1698 sketch must be built with `-DFASTLED_LPC_RX_SCT_WS2812=1` for the
1699 `ws2812SctTest` RPC to be bound — without that flag the RPC is
1700 absent from the sketch's `fl::Remote` registry and the orchestrator
1701 will report `no response` for every test case. This is by design:
1702 the WS2812 driver pulls in `<FastLED.h>` which overflows the
1703 LPC845 64 KB flash budget until #3002 (fl::json soft-FP cleanup)
1704 lands.
1705 """
1706 upload_port = ctx.upload_port
1707 assert upload_port is not None
1708
1709 tx_pin = ctx.args.tx_pin if ctx.args.tx_pin is not None else 10
1710 rx_pin = ctx.args.rx_pin if ctx.args.rx_pin is not None else 11
1711
1712 print()
1713 print("=" * 60)
1714 print("LPC SCT-RX MODE — WS2812 byte-match loopback (#3021 Phase 2)")
1715 print(f" Wiring required: jumper P0_{tx_pin} ↔ P0_{rx_pin} on LPC845-BRK")
1716 print(" Sketch must be built with -DFASTLED_LPC_RX_SCT_WS2812=1")
1717 print("=" * 60)
1718 print()
1719
1720 cmd = [
1721 "uv",
1722 "run",
1723 "python",
1724 "ci/autoresearch/test_lpc_ws2812_loopback.py",
1725 "--port",
1726 upload_port,
1727 "--tx-pin",
1728 str(tx_pin),
1729 "--rx-pin",
1730 str(rx_pin),
1731 ]
1732 result = subprocess.run(cmd)
1733 return 0 if result.returncode == 0 else 1
1734
1735
1736async def _run_coroutine_tests(ctx: RunContext) -> int:

Callers 1

Calls 2

printFunction · 0.50
runMethod · 0.45

Tested by

no test coverage detected