Standardise to DUT in integration tests#3536
Conversation
|
Please note I am still yet to run all tests to confirm I have not broken anything. |
d67f06d to
55ee68e
Compare
|
Nice project, thank you! Please tell me when you're done, and I'll run FRR integration tests. |
There was a problem hiding this comment.
Pull request overview
This PR standardizes “device under test” naming across integration topologies by renaming key nodes/groups/links to dut (and variants like dut_s1, dut_a, dut_c1) to make it easier to identify DUT roles consistently in test definitions.
Changes:
- Renamed DUT nodes across many integration YAML topologies (VXLAN, VLAN, LAG/MLAG, EVPN, EIGRP, DHCP, initial scenarios).
- Updated link endpoints and validation plugin references to match the new DUT node names.
- Added a new VLAN integration plugin (
31-dut_s2-native.py) to adjust native VLAN handling for a renamed probe/DUT scenario.
Reviewed changes
Copilot reviewed 44 out of 45 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| tests/integration/vxlan/02-vxlan-bridging-multinode.yml | Rename DUT switches to dut_s1/dut_s2 and update VLAN links and OSPF validation references |
| tests/integration/vlan/70-vlan-1-trunk.yml | Rename DUT switch from s1 to dut and update VLAN/link references |
| tests/integration/vlan/63-vlan-mixed-native.yml | Rename DUT switch from s1 to dut and update VLAN/link and OSPF validation references |
| tests/integration/vlan/62-vlan-mixed-trunk.yml | Rename DUT switch from s1 to dut and update VLAN/link and OSPF validation references |
| tests/integration/vlan/61-vlan-routed-native.yml | Rename router-on-stick node from ros to dut and update validation references |
| tests/integration/vlan/52-vlan-vrf-lite.yml | Rename DUT routers to dut_a/dut_b and update VLAN/link and validation references |
| tests/integration/vlan/51-vlan-routed-trunk.yml | Rename router-on-stick node from ros to dut and update validation references |
| tests/integration/vlan/42-vlan-irb-native.yml | Rename DUT switch from s1 to dut and update VLAN/link and validation references |
| tests/integration/vlan/41-vlan-bridge-native.yml | Rename DUT switch from s1 to dut and update VLAN/link references |
| tests/integration/vlan/33-vlan-irb-trunk.yml | Rename DUT switch from s1 to dut and update VLAN/link and validation references |
| tests/integration/vlan/32-vlan-bridge-trunk-router.yml | Rename DUT switches to dut_s1/dut_s2 and update VLAN/link references |
| tests/integration/vlan/31-vlan-bridge-trunk.yml | Rename DUT switches to dut_s1/dut_s2, update probe membership, and update VLAN/link references |
| tests/integration/vlan/31-dut_s2-native.py | New integration plugin to modify trunk/native VLAN behavior for the renamed DUT/probe setup |
| tests/integration/vlan/23-vlan-mixed-multiple.yml | Rename DUT switch from s1 to dut and update VLAN/link references |
| tests/integration/vlan/22-vlan-irb-multiple.yml | Rename DUT switch from s1 to dut and update VLAN/link references |
| tests/integration/vlan/21-vlan-irb-single.yml | Rename DUT switch from s1 to dut and update IDs, links, and validation references |
| tests/integration/vlan/02-vlan-bridge-multiple.yml | Rename DUT switch from s1 to dut and update VLAN/link references |
| tests/integration/vlan/01-vlan-bridge-single.yml | Rename DUT switch from s1 to dut and update VLAN/link references |
| tests/integration/lag/x-12-mlag-dual-cross.yml | Rename MLAG DUT switches to dut_s1/dut_s2 and update LAG member links |
| tests/integration/lag/11-mlag-anycast.yml | Rename MLAG DUT switches to dut_s1/dut_s2 and update LAG member links |
| tests/integration/lag/10-mlag.yml | Rename MLAG DUT switches to dut_s1/dut_s2 and update LAG member links |
| tests/integration/initial/07-router.yml | Rename single router node from r to dut and update links |
| tests/integration/initial/03-unnumbered.yml | Rename router node from r to dut and update links |
| tests/integration/initial/02-loopback.yml | Rename router node from r to dut and update routing static next-hop and links |
| tests/integration/initial/01-interfaces.yml | Rename router node from r to dut and update routing static next-hop and links |
| tests/integration/evpn/x-03-vxlan-symmetric-irb-same-vendor.yml | Rename EVPN/VXLAN DUT switches to dut_s1/dut_s2 and update validation references |
| tests/integration/evpn/41-vxlan-ipv6-bridging.yml | Rename EVPN/VXLAN DUT switches to dut_s1/dut_s2 and update links and validation references |
| tests/integration/evpn/20-vxlan-irb-ospf.yml | Rename EVPN/VXLAN DUT switches to dut_s1/dut_s2 and update VLAN links and nodes list |
| tests/integration/evpn/15-vxlan-ebgp-unnumbered.yml | Rename DUT nodes to dut_l1/dut_spine and update EBGP validation references |
| tests/integration/evpn/14-vxlan-ebgp-ebgp.yml | Rename DUT nodes to dut_l1/dut_spine and update multihop sessions and validation references |
| tests/integration/evpn/12-vxlan-ibgp-ebgp.yml | Rename DUT nodes to dut_l1/dut_spine and update links and validation references |
| tests/integration/evpn/04-vxlan-central-routing.yml | Rename DUT leaf/spine nodes to dut_l1/dut_l2/dut_spine and update validation references |
| tests/integration/evpn.multihoming/02-esi-lag-auto-id.yml | Rename DUT switches to dut_s1/dut_s2 and update ESI-LAG links |
| tests/integration/evpn.multihoming/01-esi-lag.yml | Rename DUT switches to dut_s1/dut_s2 and update ESI-LAG links |
| tests/integration/eigrp/02-eigrp-ipv6.yml | Rename one router DUT from r1 to dut and update links/message |
| tests/integration/eigrp/01-eigrp-ipv4.yml | Rename one router DUT from r1 to dut and update links/message |
| tests/integration/dhcp/32-ipv6-client-ospf.yml | Rename DHCP client DUT nodes to dut_c1/dut_c2 and update link endpoints |
| tests/integration/dhcp/31-ipv4-client-ospf.yml | Rename DHCP client DUT nodes to dut_c1/dut_c2 and update link endpoints |
| tests/integration/dhcp/21-ipv4-relay-vrf-global.yml | Rename DHCP relay DUT node from relay to dut and update links |
| tests/integration/dhcp/12-ipv6-relay.yml | Rename DHCP relay DUT node from relay to dut and update links |
| tests/integration/dhcp/11-ipv4-relay.yml | Rename DHCP relay DUT node from relay to dut and update links |
| tests/integration/dhcp/04-ipv6-server.yml | Rename DHCP server DUT node from server to dut and update link endpoints |
| tests/integration/dhcp/03-ipv4-server.yml | Rename DHCP server DUT node from server to dut and update link endpoints |
| tests/integration/dhcp/02-ipv6-client.yml | Rename DHCP client DUT nodes to dut_c1/dut_c2 and update node/link endpoints |
| tests/integration/dhcp/01-ipv4-client.yml | Rename DHCP client DUT nodes to dut_c1/dut_c2 and update node/link endpoints |
|
@ipspace is there a way to run these 6 integration tests locally ? |
I have an empty directory with symlinks to various integration test directories. Running a single integration test is thus as easy as: Obviously, you can also use To run a series of tests for a platform, see https://netlab.tools/dev/integration-tests/#running-an-integration-test-suite |
|
yep , i'm aware of that.. I have made use of the |
bfdd27b to
0b705d4
Compare
|
I have run all the following tests with FRR as the DUT. (py3-snuff) netlab@netlab:~/snuffy-netlab/tests/integration$ ./device-module-test initial (py3-snuff) netlab@netlab:~/snuffy-netlab/tests/integration$ ./device-module-test vlan (py3-snuff) netlab@netlab:~/snuffy-netlab/tests/integration$ ./device-module-test vxlan (py3-snuff) netlab@netlab:~/snuffy-netlab/tests/integration$ ./device-module-test evpn |
Thank you. Just let me know when you're done with the changes, and I'll run the rest of the tests and merge it. |
| - dut_c1: | ||
| ipv4: dhcp | ||
| c2: | ||
| dut_c2: | ||
| ipv4: dhcp | ||
| dhcp.client.default: False | ||
| server: |
ipspace
left a comment
There was a problem hiding this comment.
The saga continues :( But hey, we're almost there ;))
| eos: "dhcp server leases | json" | ||
| exec: | ||
| dnsmasq: "cat /var/lib/misc/dnsmasq.leases | grep --color=never -E ' c[1-9] ' | wc -l" | ||
| dnsmasq: "cat /var/lib/misc/dnsmasq.leases | grep --color=never -E ' dutc[1-9] ' | wc -l" |
There was a problem hiding this comment.
Missing underscore (dut_c) when testing with Cisco IOL. It looks like you were doing the tests with Arista EOS (or something similar) that does not include underscore in DHCP client name.
As much as it makes my eyes hurt, the only safe way to resolve this is to rename nodes to "dutc1" and "dutc2". The same applies to all other DHCP tests where we need to check the leases on the server.
| eos: "dhcp server leases | json" | ||
| exec: | ||
| dnsmasq: "cat /var/lib/misc/dnsmasq.leases | grep --color=never -E ' c[1-9] ' | wc -l" | ||
| dnsmasq: "cat /var/lib/misc/dnsmasq.leases | grep --color=never -E ' dutc[1-9] ' | wc -l" |
There was a problem hiding this comment.
As in the other DHCP test, use node names without underscores.
| bgp.rr: True | ||
| x_switches: | ||
| members: [ l2 ] | ||
| members: [ dut_l2 ] |
There was a problem hiding this comment.
Wrong. This is not device under test.
| module: [ vlan ] | ||
| probes: | ||
| members: [ s2 ] | ||
| members: [ dut_s2 ] |
There was a problem hiding this comment.
This is not a device under test, it's a probe
| adj_v2_r1_b: | ||
| description: Check OSPFv2 adjacencies (R2-R1) | ||
| wait_msg: Waiting for OSPFv2 adjacencies to form | ||
| adj_dut_a_b: |
There was a problem hiding this comment.
Dropped the 'v2' from test name (indicating it's OSPFv2 test)
| description: Check OSPFv2 adjacencies (R2-R1) | ||
| wait_msg: Waiting for OSPFv2 adjacencies to form | ||
| plugin: ospf_neighbor(nodes.dut_a.vrfs.blue.ospf.router_id,vrf='blue') | ||
| adj_dut_a_r: |
There was a problem hiding this comment.
As above -- v2 is missing in test name
| description: Check OSPFv2 adjacencies (R2-R3) | ||
| wait_msg: Waiting for OSPFv2 adjacencies to form | ||
| plugin: ospf_neighbor(nodes.dut_a.vrfs.red.ospf.router_id,vrf='red') | ||
| adj_dut_b_b: |
ipspace
left a comment
There was a problem hiding this comment.
Ran (hopefully ;) all changed integration tests, they all pass.
Thanks a million, great job!
Make it slightly less guess work sometimes to identify which are the DUT by consistently naming them.