Skip to content

Test rig fixes - #1704

Merged
mattiaswal merged 6 commits into
mainfrom
test-rig-fixes
Oct 14, 2026
Merged

mattiaswal merged 6 commits into
mainfrom
test-rig-fixes

Conversation

@mattiaswal

@mattiaswal mattiaswal commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Description

Fallout from running the full suite on the BPi-R3 test system.

  • New igmp_basic_3duts: the igmp_basic check spread over three DUTs in
    a chain, so each needs only one data link and one mgmt link and it
    maps onto rigs where DUTs have a single host-facing port.
  • ospf_multiarea: one step per neighbor adjacency. The single step
    waiting for all five could sit for 17 minutes and then fail without
    saying which pair never reached full.
  • dhcp/server_boot: the only failure in the whole suite on the BPi-R3
    rig, "RTNETLINK answers: Resource temporarily unavailable" from the
    host MAC change. On a passthru macvlan the change is forwarded to
    the parent interface, and the kernel returned EAGAIN for it. The
    macvlan keeps its old MAC when that fails, and unchecked the step
    failed later on the lease. The change now runs with check=True
    under until(), so it is retried and a persistent failure stops the
    test at the MAC change.
  • Drop wifi_station_from_scan, not needed.
  • statd: forward rauc's last-error into /system-state/software/installer.
  • system/upgrade: fail the wait step with the installer error instead of passing it and tripping on the boot order later.
  • infamy: Env.reattach() re-attaches at the address a DUT was first found on. On the BPi-R3 rig the factory config bridges lan1-lan4, so after factory_config rebooted one box the ff02::1 probe on its mgmt port was answered by another DUT, which then got verified and rebooted instead.

Checklist

Tick relevant boxes, this PR is-a or has-a:

  • Bugfix
    • Regression tests
    • ChangeLog updates (for next release)
  • Feature
    • YANG model change => revision updated?
    • Regression tests added?
    • ChangeLog updates (for next release)
    • Documentation added?
  • Test changes
    • Checked in changed Readme.adoc (make test-spec)
    • Added new test to group Readme.adoc and yaml file
  • Code style update (formatting, renaming)
  • Refactoring (please detail in commit messages)
  • Build related changes
  • Documentation content changes
    • ChangeLog updated (for major changes)
  • Other (please describe):

@mattiaswal
mattiaswal requested a review from wkz October 14, 2026 06:18
@mattiaswal
mattiaswal force-pushed the test-rig-fixes branch 5 times, most recently from e148319 to 0f4179c Compare October 14, 2026 06:31
Same check as igmp_basic, but each DUT needs only one host data link
and one mgmt link, so it maps onto rigs where DUTs have a single
host-facing port.  The receiver sits at the far end so the membership
report has to cross two switches before the middle DUT prunes its own
host port.

Signed-off-by: Mattias Walström <[email protected]>
A single step waiting for five adjacencies could sit for 17 minutes and
then fail without saying which pair never reached full.

Signed-off-by: Mattias Walström <[email protected]>
Seen on the BPi-R3 test system: the full suite failed only here, with
"RTNETLINK answers: Resource temporarily unavailable" from the MAC
change.  On a passthru macvlan the change is forwarded to the parent
interface, and the kernel returned EAGAIN for it.  The macvlan keeps
its old MAC when that fails, and unchecked the step failed later on the
lease.  With check=True the command raises, and until() retries it.

Signed-off-by: Mattias Walström <[email protected]>
Not needed, the case it covers is not a big risk.

Signed-off-by: Mattias Walström <[email protected]>
rauc-installation-status already emits it, statd dropped it on the way
into /system-state/software/installer.

Signed-off-by: Mattias Walström <[email protected]>
Seen on the BPi-R3 rig: the installer went idle with "Installing failed."
and the test still passed the wait step, only to trip on the boot order.

Signed-off-by: Mattias Walström <[email protected]>

@wkz wkz left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

Comment on lines +71 to +81
_, d1data = env.ltop.xlate("dut1", "data")
_, d1link = env.ltop.xlate("dut1", "link")
_, d2data = env.ltop.xlate("dut2", "data")
_, d2west = env.ltop.xlate("dut2", "west")
_, d2east = env.ltop.xlate("dut2", "east")
_, d3data = env.ltop.xlate("dut3", "data")
_, d3link = env.ltop.xlate("dut3", "link")

_, hsend = env.ltop.xlate("host", "data1")
_, hnojoin = env.ltop.xlate("host", "data2")
_, hreceive = env.ltop.xlate("host", "data3")

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

FYI: We do not have to this anymore, since e4535aa, you can just subscript a device to translate logical port names to physical ones:

dut1["data"]

I created #1705 to be done with this once and for all.

@mattiaswal
mattiaswal merged commit 6eb2e07 into main Oct 14, 2026
8 of 9 checks passed
@mattiaswal
mattiaswal deleted the test-rig-fixes branch October 14, 2026 09:55
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.

2 participants