Skip to content

Digital-only board: skip analog e2e tests, add a digital tier - #37

Open
wardviaene wants to merge 5 commits into
mainfrom
digital-board-e2e
Open

wardviaene wants to merge 5 commits into
mainfrom
digital-board-e2e

Conversation

@wardviaene

Copy link
Copy Markdown
Member

The digital-only BenchPod (no analog front end) reports analog: false (firmware 3.6.0+). Until now every e2e suite would fail its analog tests there instead of skipping them.

  • pytest plugin: @pytest.mark.benchpod_capability("analog") follows BenchPod.can_analog: it skips only on the digital board (firmware without the flag counts as analog). The DAC-limit lift skips a pod without a DAC.
  • SDK: current_out / calibrate on the digital board raise UnsupportedFeatureError(feature="analog") naming the missing front end, instead of asking for newer firmware.
  • e2e: analog tests carry ANALOG or call require_analog (cloud tier); mixed tests are split so the LA halves still run. New test_e2e_digital.py (runs only on a digital pod): status/caps, fast refusals, dac_stop + LA still work. MCP and OpenHTF e2e skip their analog tests the same way; MCP checks the digital-board hint.
  • BENCHPOD_EXPECT_BOARD=analog|digital (make e2e BOARD=…) fails the run on the other board, so an undetected analog section cannot skip half the suite and pass green.

Verified: unit suites green; dry run of the digital tier against a fake digital pod; hardware run on the analog pod (see comment). The digital-pod run waits for the first digital BenchPod.

🤖 Generated with Claude Code

wardviaene and others added 5 commits October 13, 2026 20:49
Skips only on the digital-only board; firmware that does not announce the
flag counts as analog.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
current_out and calibrate checked their capability first and told a digital
board to update its firmware; they now raise UnsupportedFeatureError with
feature="analog".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Analog tests carry benchpod_capability("analog") (ANALOG) or call
require_analog (cloud tier); mixed tests are split so the LA halves still
run. test_e2e_digital.py checks the board's own behavior: analog=false,
no analog caps, fast UnsupportedFeatureError refusals, dac_stop and LA
still work. BENCHPOD_EXPECT_BOARD=analog|digital fails the run on the
wrong board so a missed detection cannot pass green.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… docs

The MCP and OpenHTF analog tests skip on the digital-only board; the MCP
suite gains a check that the analog tools refuse with the digital-board
hint. make e2e BOARD=analog|digital sets BENCHPOD_EXPECT_BOARD. The DAC
limit lift skips a pod without a DAC.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The fake pod gains can_analog; a digital pod is not sent dac_limits.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@wardviaene

Copy link
Copy Markdown
Member Author

Hardware run on the analog pod benchpod-baea06 (published fw 3.9.0, gw 48), with BENCHPOD_EXPECT_BOARD=analog:

  • SDK e2e (make e2e BOARD=analog): 116 passed, 0 failed; MCP e2e 10/0; OpenHTF e2e 2/0
  • hwe2e LAN -run TestHW: 69 passed, 0 failed
  • hwe2e -run TestCloud (prod): 48 passed, 0 failed
  • examples/process-node test_analog_in.py + test_analog_out.py: 15/0

No test skipped as "digital-only board" on the analog pod; only the digital tiers (test_e2e_digital.py, TestHW_DigitalBoard, TestCloud_DigitalBoard) skipped, as intended. Other skips are the usual fixture/opt-in gates. The digital-pod run waits for the first digital BenchPod.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant