test: reproducible: Log software versions

Make sure that we keep a record of the versions and boot source used
by all devices under test when running the full suite - in case we
ever suspect that there is a mismatch between the intended test image
and the actual one.

Since this test now needs to communicate with the devices, make sure
that we run the wait test first.
This commit is contained in:
Tobias Waldekranz
2024-12-02 12:42:28 +01:00
parent 6d18ba4c39
commit 784b391467
2 changed files with 24 additions and 1 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
---
- case: meta/reproducible.py
- case: meta/wait.py
- case: meta/reproducible.py
- name: Misc tests
suite: misc/misc.yaml
+23
View File
@@ -13,4 +13,27 @@ with infamy.Test() as test:
else:
print(f"Specify PYTHONHASHSEED={seed} to reproduce this test environment")
with test.step("Discover topology and attach to available DUTs"):
env = infamy.Env(False)
ctrl = env.ptop.get_ctrl()
duts = {}
for ix in env.ptop.get_infixen():
cport, ixport = env.ptop.get_mgmt_link(ctrl, ix)
print(f"Attaching to {ix}:{ixport} via {ctrl}:{cport}")
duts[ix] = env.attach(ix, ixport)
with test.step("Log running software versions"):
for name, tgt in duts.items():
sys = tgt.get_data("/ietf-system:system-state")
sw = sys["system-state"]["software"]
plt = sys["system-state"]["platform"]
print(f"{name}:")
for k,v in plt.items():
print(f" {k:<16s} {v}")
for k in ("compatible", "booted"):
print(f" {k:<16s} {sw[k]}")
test.succeed()