From e4e7dbd714c08c666df7db546a4016115b283dc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Walstr=C3=B6m?= Date: Tue, 3 Sep 2024 15:59:45 +0200 Subject: [PATCH] tests: Add test specification Add minor changes in all testscripts, to add name and description Add generated test specification Add generated topology image --- test/case/ietf_hardware/Readme.adoc | 8 +++ test/case/ietf_hardware/usb/Readme.adoc | 42 ++++++++++++++++ test/case/ietf_hardware/usb/topology.png | Bin 0 -> 3003 bytes .../ietf_hardware/usb_two_ports/Readme.adoc | 30 +++++++++++ .../ietf_hardware/usb_two_ports/topology.png | Bin 0 -> 3003 bytes test/case/ietf_interfaces/Readme.adoc | 16 ++++++ .../iface_phys_address/Readme.adoc | 26 ++++++++++ .../iface_phys_address/test.py | 4 ++ .../iface_phys_address/topology.png | Bin 0 -> 6969 bytes .../ietf_interfaces/iface_status/Readme.adoc | 25 ++++++++++ .../case/ietf_interfaces/iface_status/test.py | 14 ++++-- .../ietf_interfaces/iface_status/topology.png | Bin 0 -> 3003 bytes .../ietf_interfaces/ipv4_address/Readme.adoc | 29 +++++++++++ .../case/ietf_interfaces/ipv4_address/test.py | 4 ++ .../ietf_interfaces/ipv4_address/topology.png | Bin 0 -> 3003 bytes .../ietf_interfaces/ipv6_address/Readme.adoc | 28 +++++++++++ .../case/ietf_interfaces/ipv6_address/test.py | 7 ++- .../ietf_interfaces/ipv6_address/topology.png | Bin 0 -> 6969 bytes .../ietf_interfaces/routing_basic/Readme.adoc | 30 +++++++++++ .../ietf_interfaces/routing_basic/test.py | 5 ++ .../routing_basic/topology.png | Bin 0 -> 6134 bytes .../ietf_interfaces/vlan_ping/Readme.adoc | 29 +++++++++++ test/case/ietf_interfaces/vlan_ping/test.py | 4 ++ .../ietf_interfaces/vlan_ping/topology.png | Bin 0 -> 6969 bytes test/case/ietf_routing/Readme.adoc | 13 +++++ test/case/ietf_routing/ospf_basic/Readme.adoc | 29 +++++++++++ test/case/ietf_routing/ospf_basic/test.py | 8 ++- .../case/ietf_routing/ospf_basic/topology.png | Bin 0 -> 26430 bytes .../ietf_routing/ospf_multiarea/Readme.adoc | 34 +++++++++++++ test/case/ietf_routing/ospf_multiarea/test.py | 7 +++ .../ietf_routing/ospf_multiarea/topology.png | Bin 0 -> 181945 bytes .../ospf_unnumbered_interface/Readme.adoc | 35 +++++++++++++ .../ospf_unnumbered_interface/test.py | 12 ++++- .../ospf_unnumbered_interface/topology.png | Bin 0 -> 26430 bytes .../ietf_routing/static_routing/Readme.adoc | 33 ++++++++++++ test/case/ietf_routing/static_routing/test.py | 5 ++ .../ietf_routing/static_routing/topology.png | Bin 0 -> 26430 bytes test/case/ietf_syslog/Readme.adoc | 8 +++ test/case/ietf_syslog/basic/Readme.adoc | 28 +++++++++++ test/case/ietf_syslog/basic/test.py | 6 ++- test/case/ietf_syslog/basic/topology.png | Bin 0 -> 3003 bytes test/case/ietf_syslog/remote/Readme.adoc | 28 +++++++++++ test/case/ietf_syslog/remote/test.py | 2 + test/case/ietf_syslog/remote/topology.png | Bin 0 -> 26430 bytes test/case/ietf_system/Readme.adoc | 14 ++++++ .../ietf_system/add_delete_user/Readme.adoc | 26 ++++++++++ test/case/ietf_system/add_delete_user/test.py | 4 ++ .../ietf_system/add_delete_user/topology.png | Bin 0 -> 3003 bytes test/case/ietf_system/hostname/Readme.adoc | 26 ++++++++++ test/case/ietf_system/hostname/test.py | 4 ++ test/case/ietf_system/hostname/topology.png | Bin 0 -> 3003 bytes test/case/ietf_system/timezone/Readme.adoc | 27 ++++++++++ test/case/ietf_system/timezone/test.py | 4 ++ test/case/ietf_system/timezone/topology.png | Bin 0 -> 3003 bytes .../timezone_utc_offset/Readme.adoc | 27 ++++++++++ .../ietf_system/timezone_utc_offset/test.py | 4 ++ .../timezone_utc_offset/topology.png | Bin 0 -> 3003 bytes test/case/ietf_system/upgrade/Readme.adoc | 26 ++++++++++ test/case/ietf_system/upgrade/test.py | 4 ++ test/case/ietf_system/upgrade/topology.png | Bin 0 -> 3003 bytes test/case/ietf_system/user_admin/Readme.adoc | 29 +++++++++++ test/case/ietf_system/user_admin/test.py | 8 +-- test/case/ietf_system/user_admin/topology.png | Bin 0 -> 3003 bytes test/case/infix_containers/Readme.adoc | 12 +++++ .../container_basic/Readme.adoc | 29 +++++++++++ .../infix_containers/container_basic/test.py | 8 +++ .../container_basic/topology.png | Bin 0 -> 6969 bytes .../container_bridge/Readme.adoc | 27 ++++++++++ .../infix_containers/container_bridge/test.py | 6 +++ .../container_bridge/topology.png | Bin 0 -> 6969 bytes .../container_phys/Readme.adoc | 26 ++++++++++ .../infix_containers/container_phys/test.py | 5 ++ .../container_phys/topology.png | Bin 0 -> 6969 bytes .../container_veth/Readme.adoc | 26 ++++++++++ .../infix_containers/container_veth/test.py | 5 ++ .../container_veth/topology.png | Bin 0 -> 6969 bytes test/case/infix_dhcp/Readme.adoc | 10 ++++ test/case/infix_dhcp/dhcp_basic/Readme.adoc | 27 ++++++++++ test/case/infix_dhcp/dhcp_basic/test.py | 6 +++ test/case/infix_dhcp/dhcp_basic/topology.png | Bin 0 -> 6969 bytes test/case/infix_dhcp/dhcp_router/Readme.adoc | 26 ++++++++++ test/case/infix_dhcp/dhcp_router/test.py | 5 ++ test/case/infix_dhcp/dhcp_router/topology.png | Bin 0 -> 6969 bytes test/case/infix_dhcp/dhcp_routes/Readme.adoc | 26 ++++++++++ test/case/infix_dhcp/dhcp_routes/test.py | 5 ++ test/case/infix_dhcp/dhcp_routes/topology.png | Bin 0 -> 6969 bytes test/case/infix_interfaces/Readme.adoc | 26 ++++++++++ .../infix_interfaces/bridge_basic/Readme.adoc | 27 ++++++++++ .../infix_interfaces/bridge_basic/test.py | 4 ++ .../bridge_basic/topology.png | Bin 0 -> 6969 bytes .../bridge_fwd_dual_dut/Readme.adoc | 27 ++++++++++ .../bridge_fwd_dual_dut/test.py | 4 ++ .../bridge_fwd_dual_dut/topology.png | Bin 0 -> 23039 bytes .../bridge_fwd_sgl_dut/Readme.adoc | 27 ++++++++++ .../bridge_fwd_sgl_dut/test.py | 24 +++++---- .../bridge_fwd_sgl_dut/topology.png | Bin 0 -> 6134 bytes .../infix_interfaces/bridge_veth/Readme.adoc | 28 +++++++++++ .../case/infix_interfaces/bridge_veth/test.py | 5 ++ .../infix_interfaces/bridge_veth/topology.png | Bin 0 -> 6969 bytes .../infix_interfaces/bridge_vlan/Readme.adoc | 27 ++++++++++ .../case/infix_interfaces/bridge_vlan/test.py | 5 ++ .../infix_interfaces/bridge_vlan/topology.png | Bin 0 -> 26430 bytes .../bridge_vlan_separation/Readme.adoc | 27 ++++++++++ .../bridge_vlan_separation/test.py | 4 ++ .../bridge_vlan_separation/topology.png | Bin 0 -> 23039 bytes .../infix_interfaces/dual_bridge/Readme.adoc | 27 ++++++++++ .../case/infix_interfaces/dual_bridge/test.py | 4 ++ .../infix_interfaces/dual_bridge/topology.png | Bin 0 -> 6969 bytes .../infix_interfaces/igmp_basic/Readme.adoc | 31 ++++++++++++ test/case/infix_interfaces/igmp_basic/test.py | 7 +++ .../infix_interfaces/igmp_basic/topology.png | Bin 0 -> 8123 bytes .../infix_interfaces/igmp_vlan/Readme.adoc | 29 +++++++++++ test/case/infix_interfaces/igmp_vlan/test.py | 4 ++ .../infix_interfaces/igmp_vlan/topology.png | Bin 0 -> 23039 bytes .../ipv4_autoconf/Readme.adoc | 27 ++++++++++ .../infix_interfaces/ipv4_autoconf/test.py | 4 ++ .../ipv4_autoconf/topology.png | Bin 0 -> 6969 bytes .../static_multicast_filters/Readme.adoc | 32 ++++++++++++ .../static_multicast_filters/test.py | 6 +++ .../static_multicast_filters/topology.png | Bin 0 -> 8123 bytes .../infix_interfaces/vlan_qos/Readme.adoc | 28 +++++++++++ test/case/infix_interfaces/vlan_qos/test.py | 5 ++ .../infix_interfaces/vlan_qos/topology.png | Bin 0 -> 6134 bytes test/case/infix_services/Readme.adoc | 6 +++ .../infix_services/services_basic/Readme.adoc | 34 +++++++++++++ .../infix_services/services_basic/test.py | 11 ++++ .../services_basic/topology.png | Bin 0 -> 6969 bytes test/case/misc/Readme.adoc | 6 +++ test/case/misc/operational_all/Readme.adoc | 26 ++++++++++ test/case/misc/operational_all/test.py | 4 ++ test/case/misc/operational_all/topology.png | Bin 0 -> 3003 bytes test/case/misc/start_from_startup/Readme.adoc | 28 +++++++++++ .../case/misc/start_from_startup/topology.png | Bin 0 -> 3003 bytes test/spec/Readme.adoc | 47 ++++++++++++++++++ test/spec/Readme.adoc.in | 47 ++++++++++++++++++ 135 files changed, 1625 insertions(+), 24 deletions(-) create mode 100644 test/case/ietf_hardware/Readme.adoc create mode 100644 test/case/ietf_hardware/usb/Readme.adoc create mode 100644 test/case/ietf_hardware/usb/topology.png create mode 100644 test/case/ietf_hardware/usb_two_ports/Readme.adoc create mode 100644 test/case/ietf_hardware/usb_two_ports/topology.png create mode 100644 test/case/ietf_interfaces/Readme.adoc create mode 100644 test/case/ietf_interfaces/iface_phys_address/Readme.adoc create mode 100644 test/case/ietf_interfaces/iface_phys_address/topology.png create mode 100644 test/case/ietf_interfaces/iface_status/Readme.adoc create mode 100644 test/case/ietf_interfaces/iface_status/topology.png create mode 100644 test/case/ietf_interfaces/ipv4_address/Readme.adoc create mode 100644 test/case/ietf_interfaces/ipv4_address/topology.png create mode 100644 test/case/ietf_interfaces/ipv6_address/Readme.adoc create mode 100644 test/case/ietf_interfaces/ipv6_address/topology.png create mode 100644 test/case/ietf_interfaces/routing_basic/Readme.adoc create mode 100644 test/case/ietf_interfaces/routing_basic/topology.png create mode 100644 test/case/ietf_interfaces/vlan_ping/Readme.adoc create mode 100644 test/case/ietf_interfaces/vlan_ping/topology.png create mode 100644 test/case/ietf_routing/Readme.adoc create mode 100644 test/case/ietf_routing/ospf_basic/Readme.adoc create mode 100644 test/case/ietf_routing/ospf_basic/topology.png create mode 100644 test/case/ietf_routing/ospf_multiarea/Readme.adoc create mode 100644 test/case/ietf_routing/ospf_multiarea/topology.png create mode 100644 test/case/ietf_routing/ospf_unnumbered_interface/Readme.adoc create mode 100644 test/case/ietf_routing/ospf_unnumbered_interface/topology.png create mode 100644 test/case/ietf_routing/static_routing/Readme.adoc create mode 100644 test/case/ietf_routing/static_routing/topology.png create mode 100644 test/case/ietf_syslog/Readme.adoc create mode 100644 test/case/ietf_syslog/basic/Readme.adoc create mode 100644 test/case/ietf_syslog/basic/topology.png create mode 100644 test/case/ietf_syslog/remote/Readme.adoc create mode 100644 test/case/ietf_syslog/remote/topology.png create mode 100644 test/case/ietf_system/Readme.adoc create mode 100644 test/case/ietf_system/add_delete_user/Readme.adoc create mode 100644 test/case/ietf_system/add_delete_user/topology.png create mode 100644 test/case/ietf_system/hostname/Readme.adoc create mode 100644 test/case/ietf_system/hostname/topology.png create mode 100644 test/case/ietf_system/timezone/Readme.adoc create mode 100644 test/case/ietf_system/timezone/topology.png create mode 100644 test/case/ietf_system/timezone_utc_offset/Readme.adoc create mode 100644 test/case/ietf_system/timezone_utc_offset/topology.png create mode 100644 test/case/ietf_system/upgrade/Readme.adoc create mode 100644 test/case/ietf_system/upgrade/topology.png create mode 100644 test/case/ietf_system/user_admin/Readme.adoc create mode 100644 test/case/ietf_system/user_admin/topology.png create mode 100644 test/case/infix_containers/Readme.adoc create mode 100644 test/case/infix_containers/container_basic/Readme.adoc create mode 100644 test/case/infix_containers/container_basic/topology.png create mode 100644 test/case/infix_containers/container_bridge/Readme.adoc create mode 100644 test/case/infix_containers/container_bridge/topology.png create mode 100644 test/case/infix_containers/container_phys/Readme.adoc create mode 100644 test/case/infix_containers/container_phys/topology.png create mode 100644 test/case/infix_containers/container_veth/Readme.adoc create mode 100644 test/case/infix_containers/container_veth/topology.png create mode 100644 test/case/infix_dhcp/Readme.adoc create mode 100644 test/case/infix_dhcp/dhcp_basic/Readme.adoc create mode 100644 test/case/infix_dhcp/dhcp_basic/topology.png create mode 100644 test/case/infix_dhcp/dhcp_router/Readme.adoc create mode 100644 test/case/infix_dhcp/dhcp_router/topology.png create mode 100644 test/case/infix_dhcp/dhcp_routes/Readme.adoc create mode 100644 test/case/infix_dhcp/dhcp_routes/topology.png create mode 100644 test/case/infix_interfaces/Readme.adoc create mode 100644 test/case/infix_interfaces/bridge_basic/Readme.adoc create mode 100644 test/case/infix_interfaces/bridge_basic/topology.png create mode 100644 test/case/infix_interfaces/bridge_fwd_dual_dut/Readme.adoc create mode 100644 test/case/infix_interfaces/bridge_fwd_dual_dut/topology.png create mode 100644 test/case/infix_interfaces/bridge_fwd_sgl_dut/Readme.adoc create mode 100644 test/case/infix_interfaces/bridge_fwd_sgl_dut/topology.png create mode 100644 test/case/infix_interfaces/bridge_veth/Readme.adoc create mode 100644 test/case/infix_interfaces/bridge_veth/topology.png create mode 100644 test/case/infix_interfaces/bridge_vlan/Readme.adoc create mode 100644 test/case/infix_interfaces/bridge_vlan/topology.png create mode 100644 test/case/infix_interfaces/bridge_vlan_separation/Readme.adoc create mode 100644 test/case/infix_interfaces/bridge_vlan_separation/topology.png create mode 100644 test/case/infix_interfaces/dual_bridge/Readme.adoc create mode 100644 test/case/infix_interfaces/dual_bridge/topology.png create mode 100644 test/case/infix_interfaces/igmp_basic/Readme.adoc create mode 100644 test/case/infix_interfaces/igmp_basic/topology.png create mode 100644 test/case/infix_interfaces/igmp_vlan/Readme.adoc create mode 100644 test/case/infix_interfaces/igmp_vlan/topology.png create mode 100644 test/case/infix_interfaces/ipv4_autoconf/Readme.adoc create mode 100644 test/case/infix_interfaces/ipv4_autoconf/topology.png create mode 100644 test/case/infix_interfaces/static_multicast_filters/Readme.adoc create mode 100644 test/case/infix_interfaces/static_multicast_filters/topology.png create mode 100644 test/case/infix_interfaces/vlan_qos/Readme.adoc create mode 100644 test/case/infix_interfaces/vlan_qos/topology.png create mode 100644 test/case/infix_services/Readme.adoc create mode 100644 test/case/infix_services/services_basic/Readme.adoc create mode 100644 test/case/infix_services/services_basic/topology.png create mode 100644 test/case/misc/Readme.adoc create mode 100644 test/case/misc/operational_all/Readme.adoc create mode 100644 test/case/misc/operational_all/topology.png create mode 100644 test/case/misc/start_from_startup/Readme.adoc create mode 100644 test/case/misc/start_from_startup/topology.png create mode 100644 test/spec/Readme.adoc create mode 100644 test/spec/Readme.adoc.in diff --git a/test/case/ietf_hardware/Readme.adoc b/test/case/ietf_hardware/Readme.adoc new file mode 100644 index 00000000..94e96908 --- /dev/null +++ b/test/case/ietf_hardware/Readme.adoc @@ -0,0 +1,8 @@ +:testgroup: +== ietf-hardware + +<<< + +include::usb/Readme.adoc[] + +include::usb_two_ports/Readme.adoc[] diff --git a/test/case/ietf_hardware/usb/Readme.adoc b/test/case/ietf_hardware/usb/Readme.adoc new file mode 100644 index 00000000..0247fcde --- /dev/null +++ b/test/case/ietf_hardware/usb/Readme.adoc @@ -0,0 +1,42 @@ +=== USB configuration +==== Description +This will test if the configuration is consistent with hardware state, +if the USB ports are _locked_ (forbidden for use) and _unlocked_ +(Ready for use) when they should. Also test if it is the case during +reboot. This does not the test actual use of the USB port, just check +that the configured state is consistent with the hardware state. + +If this pass you can be certeain of that the configuration of the USB +port is handled correctly. + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/ietf_hardware/usb/topology.png[USB configuration topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/ietf_hardware/usb/topology.png[USB configuration topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[USB configuration topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initialize +. Unlock all USB ports +. Verify that all USB ports are unlocked +. Lock all USB ports +. Verify that all USB ports are locked +. Remove all hardware configuration +. Verify that all USB ports are locked +. Unlock USB ports +. Verify that all USB ports are unlocked +. Save to startup and reboot +. Verify USB port remain unlocked after reboot + + +<<< + diff --git a/test/case/ietf_hardware/usb/topology.png b/test/case/ietf_hardware/usb/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..5c6b47225455bf3cf47070ceb9dce77164746586 GIT binary patch literal 3003 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 FzX06u+jsx~ literal 0 HcmV?d00001 diff --git a/test/case/ietf_hardware/usb_two_ports/Readme.adoc b/test/case/ietf_hardware/usb_two_ports/Readme.adoc new file mode 100644 index 00000000..150e66d0 --- /dev/null +++ b/test/case/ietf_hardware/usb_two_ports/Readme.adoc @@ -0,0 +1,30 @@ +=== USB configuration with two USB ports +==== Description +Test that the configuration is consistent +when having two USB ports. + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/ietf_hardware/usb_two_ports/topology.png[USB configuration with two USB ports topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/ietf_hardware/usb_two_ports/topology.png[USB configuration with two USB ports topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[USB configuration with two USB ports topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initialize +. Lock the first USB port, and unlock the second USB port +. Verify that the correct port is locked and the correct one is unlocked +. Unlock the first USB port, and lock the second USB port +. Verify that the correct port is locked and the correct one is unlocked + + +<<< + diff --git a/test/case/ietf_hardware/usb_two_ports/topology.png b/test/case/ietf_hardware/usb_two_ports/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..5c6b47225455bf3cf47070ceb9dce77164746586 GIT binary patch literal 3003 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 FzX06u+jsx~ literal 0 HcmV?d00001 diff --git a/test/case/ietf_interfaces/Readme.adoc b/test/case/ietf_interfaces/Readme.adoc new file mode 100644 index 00000000..5243c316 --- /dev/null +++ b/test/case/ietf_interfaces/Readme.adoc @@ -0,0 +1,16 @@ +:testgroup: +== ietf-interfaces + +<<< + +include::vlan_ping/Readme.adoc[] + +include::ipv4_address/Readme.adoc[] + +include::ipv6_address/Readme.adoc[] + +include::iface_phys_address/Readme.adoc[] + +include::iface_status/Readme.adoc[] + +include::routing_basic/Readme.adoc[] diff --git a/test/case/ietf_interfaces/iface_phys_address/Readme.adoc b/test/case/ietf_interfaces/iface_phys_address/Readme.adoc new file mode 100644 index 00000000..5a279d29 --- /dev/null +++ b/test/case/ietf_interfaces/iface_phys_address/Readme.adoc @@ -0,0 +1,26 @@ +=== Custom MAC address on interface +==== Description +Test possibility to set mac address + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/ietf_interfaces/iface_phys_address/topology.png[Custom MAC address on interface topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/ietf_interfaces/iface_phys_address/topology.png[Custom MAC address on interface topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[Custom MAC address on interface topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initialize +. Set custom MAC address + + +<<< + diff --git a/test/case/ietf_interfaces/iface_phys_address/test.py b/test/case/ietf_interfaces/iface_phys_address/test.py index fa14b25d..98c225f3 100755 --- a/test/case/ietf_interfaces/iface_phys_address/test.py +++ b/test/case/ietf_interfaces/iface_phys_address/test.py @@ -1,5 +1,9 @@ #!/usr/bin/env python3 +""" +Custom MAC address on interface +Test possibility to set mac address +""" import copy import infamy import infamy.iface as iface diff --git a/test/case/ietf_interfaces/iface_phys_address/topology.png b/test/case/ietf_interfaces/iface_phys_address/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..953e7544db8b83cab764a1822bd731dfb8c52cc5 GIT binary patch literal 6969 zcmZ8`1yog0*X^MsB&0j^f)Y{^(jkp>OLqyF(}O0qO3Nmgds=Z@=%o zG2Z((j0;>~?{(H$Ypyxx30F~)!NH=yf*=S-PF7M4f{^UN_tqH5;I(Fk*BN|yVES4{ z61xBQk6#Fey04qP;6R)RXhD#Eq;ac<&%sIbyhk$3}gxt%(u%7m$y#a z2uvbEza#7Tlh}$`eySqG5yEqJ1gn~>GN*!rB zI25#ruIc#sFA+ncQ`(y4yd`>dgWcUSOEvA~XU*d@OwXT3g@=!5YYIebFvrQ~T$M^a z`xqV$-X4F?%CSqFKbe=Am1X2FEHE|S;L<_ohaW_DVt|J2&Ew<$zYpSr8s<_>3^>(bXNTRTJ zZ74oRfBUk~agcmYj4XY>iQ&IRas~zlr1rhJx~Vdw`;{=-!E{ktVIGe|;}bd|p_`5m=ue`pSATt~t*sTk zzj2Y24Auh29fISKPd61%t^T-A|)j? zYV$Jyw@6?t014&SXX-wxKSG&kA+M02jg5`nSW8PwgLA@bJgNc}@|<zOH z)-lD7DOz~lRyi^GEGj!DCZ^M;tqWVi*qCk*Ru*8nQ>0NyvRP7GT(AF5OY56%iKXR< zm4$^3jkq4Y9C<7b4zrnSzO~xs*I|B!lQ?e(;@!x8m`>4?cV{YtY0s#1KFEv}(%I7^ zyHqpWn<*9f_wQd*GqY0zd|`<)lxu8o%f(nfkB^U&Y&PhZ!r?;`McVhLW&ZZ__4tsp ziwm5JKhqP{-eN(B{HzzdZTruS)o*0-RP|Sz-$p;VBD5Y`IBO<0A5C^iL(5<2%5x>p zzQ(f3m=D$P94yMAaXsgQSDPFzclchNgolTd^EqayFw$cLk>6H$A~uS&%ie*KI9%zv zy*_XAzrV{@&61aw=Y|g>k>sv9S~=HqkwO}_j3su1O#BS4aybMH#5q`4=B|NJmTXRc zhny;N9?Yme5sY}fa{8s5Ef^t7si3F`gTX!o1sx;)tw5fuuA!lWqOw-qx_1Vu|5;*U z?UfdNrABRwnLihmP^qI)`E;D9iupv|2|@V|8k?e7wBLr&UI^3$muhmq)GYj~ael0M zew+*i(02?5!761+h<`6ee2B%GY;dHpnFD+MFg-eGyEjx<&(bQI$r9Bn)o-vK$z1Zg z9_Z}s92nSZ4@7~6+x-0pV6IOHVSjLt&T%?kE5;!wzQ_yq)0fU_A<$%IEY%>@O;UCsju%LlqTfqyfyq7H*9rp zuf#K$t<$y;g1EU0B7cA7&pGLe$!%6^%>CX_pth8M*OI?|p83=@Je8rlK$M{}PtyIX zuPCnJBa$5`MW(tI?7F;c94%{ZY8sQ6I5Rw4Zu%2TP*Bi!s))giEwHsu;gtIUl&Bx4 zKB_^dPSUe=lgC|x45<_(Co}iH8BmNvnxu-RW~kh3oL2Sygu_*kuTfZD&Y`V6B^61s z-Ng0)c@w_`4ITYpp^4P(+?g+By)T|t#7Ac-&WlISWppwnEQvYdshi0g#K3H^X=7t+ zgMVXdMS~IfDCIE26YtW01*HsX`GZX%*m-z(I3NJTE%0yMfs! z#%Poe1|Vc*REXC1_e&3ST`BrRvMtg#{48>?B7SeD5HyPA`sj>mJau?iSWSj(Wg?Gz zm4%XDCA||C65{FUIWs*iOCQtVvI!dP;^Ja{e!jh3>`XEk1Qi^Nnv|QToW8%dR_(H> zgog(Qb#FtkvQyT^#?1U`6{V`Gs?L5c)YQwj}xHeFvip1eo%eN%DWT}WFxvDk0N7|WuEE{=c` zVM$$!Ms}?zByop#uObChRUyI&pAGA2&^_u|ch=YdEk`tQ(>>JFgCUj1W%W4}Um8xc zu#rc{$S51DZMM=G5*Qe$+wAk8@N_3&4yNNhtwb{X^Ts7iUWGy!^PmFUJrM>`=l1~M`-0GKSbc%N?!Bx{%IC-S_VTxfbfRccVA z!JMa*Dq!C8<>cf9E_$a^gaIHpMZm34J_idAkCxl|k&8d-X{!l!C;}swDaLMJ+pqfr zI;81V*qrBT$dr2ib@rwtz&=qO~oH(R4{ zi6?qfE=6M_iaaTW%?tnWY}=SlxFM#We@eKt~Pm>%VX?6$3-022Z;&O<0I zE{<58W*uVyW^C}o81b>L?mREuukb*3t1yghu7jqeOslIm;dS@1!w!K;i55ygNJz-5 z@A>)p#%gjq=5bl5~$UTH9$#!Zz@EgCMSVB{5oCG`3(MGchrt<5C&# zzpZYt?qYG`ql(Bp+<%qYV~oJC^bomN{s0DBXlST>&ggfEFiUgujHW#5<&_nugT)rm zW6H|P;O{T+saGc6mD8AA9IjlSALKFqoig%YsB=h{d~$i-c8>#5;mXXZB=g!ok$WK` z;@AC|`uq3qM@L5nDoci_bu#7qPx$!AKCRNpy`ZNz?@!=_#8fq8WqazKR#g%~i7=_> z($mv3#{C8d#?T|RkB+J#FnWT}9tsHyvm3SQ8yc3X75pa%p&&QXj*gBkB)OP=>PHco z(^*22r)dD6pRU1MV|ecxE;>KqPEuuOCW zYaN!-($YjsI#JQl!@SS;8J<4X)zRrs71Ulj{kzwAdW)Zwiy4$4;@jBD0!}pR{>;k4 zBItR%mL}{?Ku8ESS56nPx3@1j@TyrkUhhK{-<_*dULv+pw$dcG9yvz`J#78cP9wzu|#P8#9v|WGi)lpazJHFE9$GOiG-7*qd9FxvqgNb`1trF zB_;Li9Ruk;N`&EZ#!ropgB&(BHBnMh>gnkXCBI~U_DlvLZyVO~F(7mYo}HJ6(jGy~ z^8ESp1U`DX+`POjWac>A-(Q(n{k{|wY^MsoPoVop0t^zbuDni)KkrB`pUN~6<4n|Fzij0gbDlHxC?M-~?U}#{l5Q;;Y&^MGSXk}yL37}$jcDAyz5_Gp* z>{Cuc+HAD~-4bb+B4lLbguj(ztf6ia;681&cx{g|K+{d{*%AB1kw5dXrBtgd2O{9` zviy8&TU%yURvb*sg5qLx5<}CT^<&V4ewXX<%4tH;z2*QI{~#`*!x^h|O>OP_JqLe@ z9dBtVsZ>$_G+z^0Sy^f6(DZa8U0q!R0|O_gqgwm9-+g^`?-mM87-~k3u3<3gDB~;N z^Zf-%V&b^O#Bf|f0s_bw{A^w9wAAVgrxo=({X3DJoegph3J)r;u3mHG1GJc4E-5ML z>hj-mtA7z1L0>>&VZ;Na=~&AC`b7CGzV96HdDrdH-@oN8X}6v!r&Tk)(b4e$3H=#K znk6y5rBa}QiHUi8bt>reM>1W+7c%aRVfY6@cr=nf$8Ar0W1n66+zpA|N9BqnCnN+1 z2kSRD=R`{Hy9>d~+q@1hePFPxq$CR0i;E*O$k;*Vot@pyq@Kgi?ry-Yo9gQ!F>~{^ zKR+WE78ZPceZi~DCkh_-T^(*Ad^4SgVGP<{dH$OGUz9!hoTc2qy7)(odJ%cll{>C< zrrjNQ?@Y2<_9wGtW@dh4)tkKX+4+g%Aw=_=+K!l*cw%B=wHq!Yhe|H&#T_fd%)(;v zf?WJjZfCca#prD?<&&*m$jFdYE>lCV(wW@(ZYG}yFZU^sD z3!peaO_{wH$-E{iskw}Jqo!ISfI^ng#4FQ3xW1BoHzbz=Q9f*9zjf4P1sLxdFq1jqX&-}u1jyJ&dyF;9I2@Sg0={0NJ+Jgj6efX zkdrrj}eV(GUJ4vbV)D?o7r@&*(Vfa1HRgH|)FN2nDZM}Gw0?>7USBqt~5;o%ud z7j1LfnFPQ9?mTyKwpL@d@CyJZV36rIdqlV7eh3fm-Ct-LF{{yK1>#(d>6+QhY<05l zOd(a^bi6>l-?bmiy~P=euGLl@6Ks1{nWUD^uhdsT;?Ld_!Hck?}IhZSx+S|yf6fFLl?)8Cwo zDd#IwLyNxW3n0^6M(#j|&=d4lfLTT@_^Z_s&`Aode>aHcF~$>KUUx7a+1S|h*``KE zoqt7<1657S?@Z5ZY-a~3Y_rd$GiW~=_~zDDy>Um-+S(dW*mW3g%k6=n@#m(emun8m zs0dQ*3JTJG(JFIY|7r32{_y#?t26R#(;thU>k5_PzRi)H`qwc@bxJb%6mpvd~8ZM^NR!15)}gLU{oyC-zm ztQB%r{F~`JZC}#+c$=ynAco!CG8Cd34I;~0TNjs>{BJIf07begeO7dmR*P6667VqEc{H>ajbf9{IQ1p`m!SbHm3jKq^^=yuc83YN zCEsM}udXCpcmcZ2R#_=KJ3DJ?#)XA-gH+eF^p1u*(rmlAZeLZ@jat?j7PDMlTyUiF zc!eQk%R(FdR1WZF^|`B*yCQGB#+)g^XJ8Hb1tqe)wS=1&ZIXPB0Dx35 zi~;Oz_9u>I#u7jj6cnJ^%M6;dR8)*DEjRY|T0lu|L=MT&`kpLzpp2`2NlDq=*@+w+ zN)x^Y2Ga;V@+2qlwFVMect&`a?cHz7&!K~e(sZavN;Ra}*s`RYk@Mz=&L_6Wy+H?#M?H4qiOyD)Qgt z^G97>edLVW&dtrOFP=ReDDwNe+qZAuG7$8V8u?TJT@Bg~1q`iheKu|8xY(zP$7g4j z`&GDP9AaGOOlxSxd6fcLY zbukZ}r|`tvAr{;Tx>tnpbMbL;QjbuRQbH8cMN(5`n39Ug_BRxwK7Lo4|E{DD#qu`!joUIZYa{a=8W^^iP*WWKj@o?yxwyEv2Y&qc z5rhUO<1_^fNl8h`dT_J&O%*q7V2L+svEqYdnIEPVCQ*@7?}@ojtqerp{8XGc{hP-> zsx7^YxJ*n;L_zWR2x4aPW7%^GH9>@13`tstlu(0H)UAEod z;!*!LuLQ0`-RG_qM*yMz*L!u7MdZLz93ugGZ|VuuU+>0zHNmo8Y}hgj040ppkBq~( z9T-wn)YL^qMKfrY{Rv1AIN}V@%5AXL*68E=W?0NPfpRv`(b?MC;(IsGXJoVlysWpB zNMl%F-}fua%a2G&H+OgSfpz!o+pkT8UU6!Ld2b93CGQt{Pe96|qN0HG0zPNyK$#yt zKK`rk<;~6i@QfgQZKW%0R=T~~wESGAJk1&m|AvMJz`-2s?5KF{$mC+=9H{`c6N3yuBzr{{T#K5Zn!nLU@X5&!~9&|Bc@!I3y$zO*9wfgB*3%rvy(sLLLiqlv2Ea^XGjy0WTDLPA1a zO|80-nVsEXuGapg!{TnHu8Gb|(Bsc~fGLH8^V1V`r{=#7@x>hm2pIONb`iR_@`QPpUTWrKLDR+co2@nj(@#v3~rA!B~M?5_|nqMG?l7||m%6yey zk70PNlrHiKw+`qYPlTm=;QYLPg-%LzbVtf#xfhI#TmS4e;OKfU33>aQc&O}lFR?u3nUcJ)MA!`ydF);yDIzB$WuC6XI@ePPUUw%GWQ80T;4O=3PdjMZo2?l!tx=?J?*7_4} zE!w$rt;t!;a=Iv_2AEZ9s<6+6V=lf4AiqFg`~Gtm$l2nXY$pmQ7usuTYAEiA7GTCY z=TqJYjHD(L2Zte%nLmfCa8V^WIVV@w69huyx)WR%t$=I(Kts0usBlon@{z|?>8s85 z)h#4C4vsIr)82@W4GsL_j{q6ljb+7MU0pTM*9WY{%GNgGKMb1_TaZg|;F3xBHG1UxYE*nJl>#EplFs0)q zY56 interface"): asser_iface_exists(target, interface) - + with test.step(f"Verifying for <{interface}> interface"): assert_if_index(target, interface) - + with test.step(f"Verifying for <{interface}> interface"): assert_oper_status(target, interface) diff --git a/test/case/ietf_interfaces/iface_status/topology.png b/test/case/ietf_interfaces/iface_status/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..5c6b47225455bf3cf47070ceb9dce77164746586 GIT binary patch literal 3003 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 FzX06u+jsx~ literal 0 HcmV?d00001 diff --git a/test/case/ietf_interfaces/ipv4_address/Readme.adoc b/test/case/ietf_interfaces/ipv4_address/Readme.adoc new file mode 100644 index 00000000..306df83f --- /dev/null +++ b/test/case/ietf_interfaces/ipv4_address/Readme.adoc @@ -0,0 +1,29 @@ +=== Interface with IPv4 +==== Description +Test that it is possible to set and remove the IPv4 address on a interface + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/ietf_interfaces/ipv4_address/topology.png[Interface with IPv4 topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/ietf_interfaces/ipv4_address/topology.png[Interface with IPv4 topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[Interface with IPv4 topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Setup +. Get initial IP addresses +. Configure IP address +. Get updated IP addresses +. Get updated IP addresses + + +<<< + diff --git a/test/case/ietf_interfaces/ipv4_address/test.py b/test/case/ietf_interfaces/ipv4_address/test.py index 3926b8cc..a2729240 100755 --- a/test/case/ietf_interfaces/ipv4_address/test.py +++ b/test/case/ietf_interfaces/ipv4_address/test.py @@ -1,5 +1,9 @@ #!/usr/bin/env python3 +""" +Interface with IPv4 +Test that it is possible to set and remove the IPv4 address on a interface +""" import copy import infamy import infamy.iface as iface diff --git a/test/case/ietf_interfaces/ipv4_address/topology.png b/test/case/ietf_interfaces/ipv4_address/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..5c6b47225455bf3cf47070ceb9dce77164746586 GIT binary patch literal 3003 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 FzX06u+jsx~ literal 0 HcmV?d00001 diff --git a/test/case/ietf_interfaces/ipv6_address/Readme.adoc b/test/case/ietf_interfaces/ipv6_address/Readme.adoc new file mode 100644 index 00000000..7a7c2ba9 --- /dev/null +++ b/test/case/ietf_interfaces/ipv6_address/Readme.adoc @@ -0,0 +1,28 @@ +=== Interface IPv6 autoconf for bridges +==== Description +Verify IPv6 autoconf on a bridge is properly set up for global prefix. +See issue #473 for details. + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/ietf_interfaces/ipv6_address/topology.png[Interface IPv6 autoconf for bridges topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/ietf_interfaces/ipv6_address/topology.png[Interface IPv6 autoconf for bridges topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[Interface IPv6 autoconf for bridges topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initializing ... +. Setting up bridge with IPv6 SLAAC for global prefix ... +. Verifying sysctl autoconf setting ... + + +<<< + diff --git a/test/case/ietf_interfaces/ipv6_address/test.py b/test/case/ietf_interfaces/ipv6_address/test.py index 8c0a854c..73988cd0 100755 --- a/test/case/ietf_interfaces/ipv6_address/test.py +++ b/test/case/ietf_interfaces/ipv6_address/test.py @@ -1,7 +1,10 @@ #!/usr/bin/env python3 -# Verify IPv6 autoconf on a bridge is properly set up for global prefix. -# See issue #473 for details. +""" +Interface IPv6 autoconf for bridges +Verify IPv6 autoconf on a bridge is properly set up for global prefix. +See issue #473 for details. +""" import infamy with infamy.Test() as test: diff --git a/test/case/ietf_interfaces/ipv6_address/topology.png b/test/case/ietf_interfaces/ipv6_address/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..953e7544db8b83cab764a1822bd731dfb8c52cc5 GIT binary patch literal 6969 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 Xwe*Q!QB&f;$cI$#Xdw#~&7S`c!o9py literal 0 HcmV?d00001 diff --git a/test/case/ietf_interfaces/vlan_ping/Readme.adoc b/test/case/ietf_interfaces/vlan_ping/Readme.adoc new file mode 100644 index 00000000..0c535286 --- /dev/null +++ b/test/case/ietf_interfaces/vlan_ping/Readme.adoc @@ -0,0 +1,29 @@ +=== VLAN ping connectivity +==== Description +Very basic test if the VLAN configuration works. + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/ietf_interfaces/vlan_ping/topology.png[VLAN ping connectivity topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/ietf_interfaces/vlan_ping/topology.png[VLAN ping connectivity topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[VLAN ping connectivity topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initialize +. Configure VLAN 10 on target:data with IP 10.0.0.2 +. Waiting for links to come up +. Ping 10.0.0.2 from VLAN 10 on host:data with IP 10.0.0.1 +. Remove VLAN interface, and test again (should not be able to ping) + + +<<< + diff --git a/test/case/ietf_interfaces/vlan_ping/test.py b/test/case/ietf_interfaces/vlan_ping/test.py index ff616d43..d4a9897b 100755 --- a/test/case/ietf_interfaces/vlan_ping/test.py +++ b/test/case/ietf_interfaces/vlan_ping/test.py @@ -1,5 +1,9 @@ #!/usr/bin/env python3 +""" +VLAN ping connectivity +Very basic test if the VLAN configuration works. +""" import infamy import infamy.iface as iface import copy diff --git a/test/case/ietf_interfaces/vlan_ping/topology.png b/test/case/ietf_interfaces/vlan_ping/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..953e7544db8b83cab764a1822bd731dfb8c52cc5 GIT binary patch literal 6969 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 literal 0 HcmV?d00001 diff --git a/test/case/ietf_routing/ospf_multiarea/Readme.adoc b/test/case/ietf_routing/ospf_multiarea/Readme.adoc new file mode 100644 index 00000000..6e8f4602 --- /dev/null +++ b/test/case/ietf_routing/ospf_multiarea/Readme.adoc @@ -0,0 +1,34 @@ +=== OSPF with multiple areas +==== Description +This test test alot of features inside OSPF using 3 areas (one NSSA area) +to test the distribution of routes is deterministic (using cost), also test +link breaks using BFD (not implemented in infamy though) + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/ietf_routing/ospf_multiarea/topology.png[OSPF with multiple areas topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/ietf_routing/ospf_multiarea/topology.png[OSPF with multiple areas topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[OSPF with multiple areas topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initialize +. Configure targets +. Wait for neighbors +. Wait for routes from OSPF +. Verify NSSA area +. Testing connectivitiy through NSSA area +. Verify correct hops +. Disable link between R1 and R4, and verify correct hops + + +<<< + diff --git a/test/case/ietf_routing/ospf_multiarea/test.py b/test/case/ietf_routing/ospf_multiarea/test.py index b79ea319..a5bb41c8 100755 --- a/test/case/ietf_routing/ospf_multiarea/test.py +++ b/test/case/ietf_routing/ospf_multiarea/test.py @@ -25,6 +25,13 @@ # +-------+ # # +""" +OSPF with multiple areas + +This test test alot of features inside OSPF using 3 areas (one NSSA area) +to test the distribution of routes is deterministic (using cost), also test +link breaks using BFD (not implemented in infamy though) +""" import infamy import infamy.route as route diff --git a/test/case/ietf_routing/ospf_multiarea/topology.png b/test/case/ietf_routing/ospf_multiarea/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..4dfde0705662afef32b0fa321bd7e3fdb5eac2bc GIT binary patch literal 181945 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 z%0D3ODVZBnpqmD2>pJ&tt45(Y7Laf8+lv0Y+{8 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

M=^6Ywi5 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

jm!SYj?GT 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�)ET2RLh1 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 E0l;_e>;M1& literal 0 HcmV?d00001 diff --git a/test/case/ietf_routing/ospf_unnumbered_interface/Readme.adoc b/test/case/ietf_routing/ospf_unnumbered_interface/Readme.adoc new file mode 100644 index 00000000..3d52c8fc --- /dev/null +++ b/test/case/ietf_routing/ospf_unnumbered_interface/Readme.adoc @@ -0,0 +1,35 @@ +=== OSPF unnumbered interfaces +==== Description +This test that a configuration expecting unnumbered interfaces +get that also in OSPF. Also verify that passive interface in +the configuration gets activated in OSPF. + +When this test pass, you can expect unnumbered interfaces, interface type +configuration and passive to function + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/ietf_routing/ospf_unnumbered_interface/topology.png[OSPF unnumbered interfaces topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/ietf_routing/ospf_unnumbered_interface/topology.png[OSPF unnumbered interfaces topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[OSPF unnumbered interfaces topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initialize +. Configure targets +. Wait for OSPF routes +. Check interface type +. Test passive interface +. Test connectivity + + +<<< + diff --git a/test/case/ietf_routing/ospf_unnumbered_interface/test.py b/test/case/ietf_routing/ospf_unnumbered_interface/test.py index f752b59a..efadc6bb 100755 --- a/test/case/ietf_routing/ospf_unnumbered_interface/test.py +++ b/test/case/ietf_routing/ospf_unnumbered_interface/test.py @@ -1,10 +1,20 @@ #!/usr/bin/env python3 +""" +OSPF unnumbered interfaces + +This test that a configuration expecting unnumbered interfaces +get that also in OSPF. Also verify that passive interface in +the configuration gets activated in OSPF. + +When this test pass, you can expect unnumbered interfaces, interface type +configuration and passive to function +""" + import infamy import time import infamy.route as route from infamy.util import until, parallel - # This test tests passive interfaces and unnumbered interfaces. def config_target1(target, data, link): diff --git a/test/case/ietf_routing/ospf_unnumbered_interface/topology.png b/test/case/ietf_routing/ospf_unnumbered_interface/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..483114ef3fd294da4d6d5f867d59fa49b3236319 GIT binary patch literal 26430 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 literal 0 HcmV?d00001 diff --git a/test/case/ietf_routing/static_routing/Readme.adoc b/test/case/ietf_routing/static_routing/Readme.adoc new file mode 100644 index 00000000..bb1457f5 --- /dev/null +++ b/test/case/ietf_routing/static_routing/Readme.adoc @@ -0,0 +1,33 @@ +=== Static routing +==== Description +Test that it is possible to use static routes (IPv4 and IPv6) +works as expected + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/ietf_routing/static_routing/topology.png[Static routing topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/ietf_routing/static_routing/topology.png[Static routing topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[Static routing topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initialize +. Configure targets +. Wait for routes +. Configure host addresses and routes +. Verify that dut2 is reachable from host over IPv4 +. Verify that dut2 is reachable from host over IPv6 +. Remove static routes on dut1 +. Verify that dut2 is no longer reachable + + +<<< + diff --git a/test/case/ietf_routing/static_routing/test.py b/test/case/ietf_routing/static_routing/test.py index 7db5ee73..4d56303c 100755 --- a/test/case/ietf_routing/static_routing/test.py +++ b/test/case/ietf_routing/static_routing/test.py @@ -15,7 +15,12 @@ # | | # | | # +-------------------------------------------+ +""" +Static routing +Test that it is possible to use static routes (IPv4 and IPv6) +works as expected +""" import copy import infamy import time diff --git a/test/case/ietf_routing/static_routing/topology.png b/test/case/ietf_routing/static_routing/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..483114ef3fd294da4d6d5f867d59fa49b3236319 GIT binary patch literal 26430 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 literal 0 HcmV?d00001 diff --git a/test/case/ietf_syslog/Readme.adoc b/test/case/ietf_syslog/Readme.adoc new file mode 100644 index 00000000..03d35e42 --- /dev/null +++ b/test/case/ietf_syslog/Readme.adoc @@ -0,0 +1,8 @@ +:testgroup: +== ietf-syslog + +<<< + +include::basic/Readme.adoc[] + +include::remote/Readme.adoc[] diff --git a/test/case/ietf_syslog/basic/Readme.adoc b/test/case/ietf_syslog/basic/Readme.adoc new file mode 100644 index 00000000..bd435901 --- /dev/null +++ b/test/case/ietf_syslog/basic/Readme.adoc @@ -0,0 +1,28 @@ +=== Syslog Basic +==== Description +- Add syslog actions to log to local files +- Verify new log files have been created + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/ietf_syslog/basic/topology.png[Syslog Basic topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/ietf_syslog/basic/topology.png[Syslog Basic topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[Syslog Basic topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initializing ... +. Add new syslog file action +. Verify log files have been created ... + + +<<< + diff --git a/test/case/ietf_syslog/basic/test.py b/test/case/ietf_syslog/basic/test.py index a7693df0..189a22bc 100755 --- a/test/case/ietf_syslog/basic/test.py +++ b/test/case/ietf_syslog/basic/test.py @@ -1,7 +1,9 @@ #!/usr/bin/env python3 """ - - Add syslog actions to log to local files - - Verify new log files have been created +Syslog Basic + +- Add syslog actions to log to local files +- Verify new log files have been created """ import infamy diff --git a/test/case/ietf_syslog/basic/topology.png b/test/case/ietf_syslog/basic/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..5c6b47225455bf3cf47070ceb9dce77164746586 GIT binary patch literal 3003 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 FzX06u+jsx~ literal 0 HcmV?d00001 diff --git a/test/case/ietf_syslog/remote/Readme.adoc b/test/case/ietf_syslog/remote/Readme.adoc new file mode 100644 index 00000000..53ac2c15 --- /dev/null +++ b/test/case/ietf_syslog/remote/Readme.adoc @@ -0,0 +1,28 @@ +=== Remote syslog +==== Description +Verify logging to remote, acting as a remote, and RFC5424 log format. + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/ietf_syslog/remote/topology.png[Remote syslog topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/ietf_syslog/remote/topology.png[Remote syslog topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[Remote syslog topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initialize +. Topology setup +. Syslog setup +. Verify logging from client to server + + +<<< + diff --git a/test/case/ietf_syslog/remote/test.py b/test/case/ietf_syslog/remote/test.py index 5670b22b..ee57c220 100755 --- a/test/case/ietf_syslog/remote/test.py +++ b/test/case/ietf_syslog/remote/test.py @@ -1,5 +1,7 @@ #!/usr/bin/env python3 """ +Remote syslog + Verify logging to remote, acting as a remote, and RFC5424 log format. """ import infamy diff --git a/test/case/ietf_syslog/remote/topology.png b/test/case/ietf_syslog/remote/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..483114ef3fd294da4d6d5f867d59fa49b3236319 GIT binary patch literal 26430 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 literal 0 HcmV?d00001 diff --git a/test/case/ietf_system/Readme.adoc b/test/case/ietf_system/Readme.adoc new file mode 100644 index 00000000..5a36374e --- /dev/null +++ b/test/case/ietf_system/Readme.adoc @@ -0,0 +1,14 @@ +:testgroup: +== ietf-system + +<<< + +include::hostname/Readme.adoc[] + +include::add_delete_user/Readme.adoc[] + +include::user_admin/Readme.adoc[] + +include::timezone/Readme.adoc[] + +include::timezone_utc_offset/Readme.adoc[] diff --git a/test/case/ietf_system/add_delete_user/Readme.adoc b/test/case/ietf_system/add_delete_user/Readme.adoc new file mode 100644 index 00000000..5e684939 --- /dev/null +++ b/test/case/ietf_system/add_delete_user/Readme.adoc @@ -0,0 +1,26 @@ +=== Add/delete user +==== Description +Verify that it is possible to add a user, and then remove it + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/ietf_system/add_delete_user/topology.png[Add/delete user topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/ietf_system/add_delete_user/topology.png[Add/delete user topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[Add/delete user topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initialize +. Add new user + + +<<< + diff --git a/test/case/ietf_system/add_delete_user/test.py b/test/case/ietf_system/add_delete_user/test.py index 510bcbe4..23e76202 100755 --- a/test/case/ietf_system/add_delete_user/test.py +++ b/test/case/ietf_system/add_delete_user/test.py @@ -1,5 +1,9 @@ #!/usr/bin/env python3 +""" +Add/delete user +Verify that it is possible to add a user, and then remove it +""" import infamy import copy from passlib.hash import sha256_crypt diff --git a/test/case/ietf_system/add_delete_user/topology.png b/test/case/ietf_system/add_delete_user/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..5c6b47225455bf3cf47070ceb9dce77164746586 GIT binary patch literal 3003 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 FzX06u+jsx~ literal 0 HcmV?d00001 diff --git a/test/case/ietf_system/hostname/Readme.adoc b/test/case/ietf_system/hostname/Readme.adoc new file mode 100644 index 00000000..a94c383e --- /dev/null +++ b/test/case/ietf_system/hostname/Readme.adoc @@ -0,0 +1,26 @@ +=== Set hostname +==== Description +Verify that it is possible to change hostname + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/ietf_system/hostname/topology.png[Set hostname topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/ietf_system/hostname/topology.png[Set hostname topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[Set hostname topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initialize +. Set new hostname + + +<<< + diff --git a/test/case/ietf_system/hostname/test.py b/test/case/ietf_system/hostname/test.py index e6f38190..07b88fe7 100755 --- a/test/case/ietf_system/hostname/test.py +++ b/test/case/ietf_system/hostname/test.py @@ -1,5 +1,9 @@ #!/usr/bin/env python3 +""" +Set hostname +Verify that it is possible to change hostname +""" import random import string import re diff --git a/test/case/ietf_system/hostname/topology.png b/test/case/ietf_system/hostname/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..5c6b47225455bf3cf47070ceb9dce77164746586 GIT binary patch literal 3003 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 FzX06u+jsx~ literal 0 HcmV?d00001 diff --git a/test/case/ietf_system/timezone/Readme.adoc b/test/case/ietf_system/timezone/Readme.adoc new file mode 100644 index 00000000..1c82e124 --- /dev/null +++ b/test/case/ietf_system/timezone/Readme.adoc @@ -0,0 +1,27 @@ +=== Set timezone +==== Description +Verify that it is possible to set timezone + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/ietf_system/timezone/topology.png[Set timezone topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/ietf_system/timezone/topology.png[Set timezone topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[Set timezone topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initialize +. Set timezone +. Verify current time. + + +<<< + diff --git a/test/case/ietf_system/timezone/test.py b/test/case/ietf_system/timezone/test.py index daa324fb..f6d5eb05 100755 --- a/test/case/ietf_system/timezone/test.py +++ b/test/case/ietf_system/timezone/test.py @@ -1,5 +1,9 @@ #!/usr/bin/env python3 +""" +Set timezone +Verify that it is possible to set timezone +""" import random, string import time import infamy diff --git a/test/case/ietf_system/timezone/topology.png b/test/case/ietf_system/timezone/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..5c6b47225455bf3cf47070ceb9dce77164746586 GIT binary patch literal 3003 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 FzX06u+jsx~ literal 0 HcmV?d00001 diff --git a/test/case/ietf_system/timezone_utc_offset/Readme.adoc b/test/case/ietf_system/timezone_utc_offset/Readme.adoc new file mode 100644 index 00000000..40c60424 --- /dev/null +++ b/test/case/ietf_system/timezone_utc_offset/Readme.adoc @@ -0,0 +1,27 @@ +=== Set timezone with UTC offset +==== Description +Verify that it is possible to set timezone using UTC offset + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/ietf_system/timezone_utc_offset/topology.png[Set timezone with UTC offset topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/ietf_system/timezone_utc_offset/topology.png[Set timezone with UTC offset topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[Set timezone with UTC offset topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initialize +. Set timezone UTC offset +. Verify current time. + + +<<< + diff --git a/test/case/ietf_system/timezone_utc_offset/test.py b/test/case/ietf_system/timezone_utc_offset/test.py index 8f2b1820..2b39392b 100755 --- a/test/case/ietf_system/timezone_utc_offset/test.py +++ b/test/case/ietf_system/timezone_utc_offset/test.py @@ -1,5 +1,9 @@ #!/usr/bin/env python3 +""" +Set timezone with UTC offset +Verify that it is possible to set timezone using UTC offset +""" import infamy import lxml diff --git a/test/case/ietf_system/timezone_utc_offset/topology.png b/test/case/ietf_system/timezone_utc_offset/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..5c6b47225455bf3cf47070ceb9dce77164746586 GIT binary patch literal 3003 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 FzX06u+jsx~ literal 0 HcmV?d00001 diff --git a/test/case/ietf_system/upgrade/Readme.adoc b/test/case/ietf_system/upgrade/Readme.adoc new file mode 100644 index 00000000..355a1f5e --- /dev/null +++ b/test/case/ietf_system/upgrade/Readme.adoc @@ -0,0 +1,26 @@ +=== Upgrade +==== Description +Verify it is possible to upgrade + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/ietf_system/upgrade/topology.png[Upgrade topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/ietf_system/upgrade/topology.png[Upgrade topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[Upgrade topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initialize +. Wait for upgrade to finish + + +<<< + diff --git a/test/case/ietf_system/upgrade/test.py b/test/case/ietf_system/upgrade/test.py index ec609985..391496df 100755 --- a/test/case/ietf_system/upgrade/test.py +++ b/test/case/ietf_system/upgrade/test.py @@ -1,5 +1,9 @@ #!/usr/bin/env python3 +""" +Upgrade +Verify it is possible to upgrade +""" import concurrent.futures import functools import http.server diff --git a/test/case/ietf_system/upgrade/topology.png b/test/case/ietf_system/upgrade/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..5c6b47225455bf3cf47070ceb9dce77164746586 GIT binary patch literal 3003 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 FzX06u+jsx~ literal 0 HcmV?d00001 diff --git a/test/case/ietf_system/user_admin/Readme.adoc b/test/case/ietf_system/user_admin/Readme.adoc new file mode 100644 index 00000000..0d8ab980 --- /dev/null +++ b/test/case/ietf_system/user_admin/Readme.adoc @@ -0,0 +1,29 @@ +=== Add admin user +==== Description +- Add a non-admin user and verify they have no privs +- Add user to admin group and recheck privileges +- Test admin user, verify $factory$ password in running + and active password in operational datastore + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/ietf_system/user_admin/topology.png[Add admin user topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/ietf_system/user_admin/topology.png[Add admin user topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[Add admin user topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initializing ... +. Add new user + + +<<< + diff --git a/test/case/ietf_system/user_admin/test.py b/test/case/ietf_system/user_admin/test.py index 19fcf99d..c1ea61ba 100755 --- a/test/case/ietf_system/user_admin/test.py +++ b/test/case/ietf_system/user_admin/test.py @@ -1,8 +1,10 @@ #!/usr/bin/env python3 """ - - Add a non-admin user and verify they have no privs - - Add user to admin group and recheck privileges - - Test admin user, verify $factory$ password in running +Add admin user + +- Add a non-admin user and verify they have no privs +- Add user to admin group and recheck privileges +- Test admin user, verify $factory$ password in running and active password in operational datastore """ diff --git a/test/case/ietf_system/user_admin/topology.png b/test/case/ietf_system/user_admin/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..5c6b47225455bf3cf47070ceb9dce77164746586 GIT binary patch literal 3003 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 FzX06u+jsx~ literal 0 HcmV?d00001 diff --git a/test/case/infix_containers/Readme.adoc b/test/case/infix_containers/Readme.adoc new file mode 100644 index 00000000..4eb951db --- /dev/null +++ b/test/case/infix_containers/Readme.adoc @@ -0,0 +1,12 @@ +:testgroup: +== infix-containers + +<<< + +include::container_basic/Readme.adoc[] + +include::container_bridge/Readme.adoc[] + +include::container_phys/Readme.adoc[] + +include::container_veth/Readme.adoc[] diff --git a/test/case/infix_containers/container_basic/Readme.adoc b/test/case/infix_containers/container_basic/Readme.adoc new file mode 100644 index 00000000..7b9ad2b7 --- /dev/null +++ b/test/case/infix_containers/container_basic/Readme.adoc @@ -0,0 +1,29 @@ +=== Container basic +==== Description +Verify that a simple web server container can be configured to run +with host networking, on port 80. Operation is verified using a +simple GET request for index.html and checking for a key phrase. + +The RPC actions: stop + start, and restart are also verified. + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/infix_containers/container_basic/topology.png[Container basic topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/infix_containers/container_basic/topology.png[Container basic topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[Container basic topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Set up topology and attach to target DUT + + +<<< + diff --git a/test/case/infix_containers/container_basic/test.py b/test/case/infix_containers/container_basic/test.py index f72b40d7..0dab2cd3 100755 --- a/test/case/infix_containers/container_basic/test.py +++ b/test/case/infix_containers/container_basic/test.py @@ -6,7 +6,15 @@ # # The RPC actions: stop + start, and restart are also verified. # +""" +Container basic +Verify that a simple web server container can be configured to run +with host networking, on port 80. Operation is verified using a +simple GET request for index.html and checking for a key phrase. + +The RPC actions: stop + start, and restart are also verified. +""" import infamy from infamy.util import until diff --git a/test/case/infix_containers/container_basic/topology.png b/test/case/infix_containers/container_basic/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..953e7544db8b83cab764a1822bd731dfb8c52cc5 GIT binary patch literal 6969 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 Xwe*Q!QB&f;$cI$#Xdw#~&7S`c!o9py literal 0 HcmV?d00001 diff --git a/test/case/infix_interfaces/bridge_veth/Readme.adoc b/test/case/infix_interfaces/bridge_veth/Readme.adoc new file mode 100644 index 00000000..db99ee85 --- /dev/null +++ b/test/case/infix_interfaces/bridge_veth/Readme.adoc @@ -0,0 +1,28 @@ +=== Bridge with a physical port and a veth +==== Description +This tests the possibility to add software added ports, in this case +veth and bridge it with a physical port + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/infix_interfaces/bridge_veth/topology.png[Bridge with a physical port and a veth topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/infix_interfaces/bridge_veth/topology.png[Bridge with a physical port and a veth topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[Bridge with a physical port and a veth topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initialize +. Configure bridged eth port and veth pair with IP 10.0.0.2 +. Ping other end of bridged veth pair on 10.0.0.2 from host:data with IP 10.0.0.1 + + +<<< + diff --git a/test/case/infix_interfaces/bridge_veth/test.py b/test/case/infix_interfaces/bridge_veth/test.py index c1dad740..28f8aac7 100755 --- a/test/case/infix_interfaces/bridge_veth/test.py +++ b/test/case/infix_interfaces/bridge_veth/test.py @@ -4,7 +4,12 @@ # / \ # PC ---- e0 veth 10.0.0.2 # +""" +Bridge with a physical port and a veth +This tests the possibility to add software added ports, in this case +veth and bridge it with a physical port +""" import infamy with infamy.Test() as test: diff --git a/test/case/infix_interfaces/bridge_veth/topology.png b/test/case/infix_interfaces/bridge_veth/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..953e7544db8b83cab764a1822bd731dfb8c52cc5 GIT binary patch literal 6969 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 ¦ dut1 ¦ dut2 # +""" +Bridge VLAN + +Basic test of VLAN functionality in a bridge +""" import infamy with infamy.Test() as test: diff --git a/test/case/infix_interfaces/bridge_vlan/topology.png b/test/case/infix_interfaces/bridge_vlan/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..483114ef3fd294da4d6d5f867d59fa49b3236319 GIT binary patch literal 26430 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 literal 0 HcmV?d00001 diff --git a/test/case/infix_interfaces/bridge_vlan_separation/Readme.adoc b/test/case/infix_interfaces/bridge_vlan_separation/Readme.adoc new file mode 100644 index 00000000..02ef8fb5 --- /dev/null +++ b/test/case/infix_interfaces/bridge_vlan_separation/Readme.adoc @@ -0,0 +1,27 @@ +=== Bridge VLAN separation +==== Description +Test that two VLAN is correctly separaretade in the bridge + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/infix_interfaces/bridge_vlan_separation/topology.png[Bridge VLAN separation topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/infix_interfaces/bridge_vlan_separation/topology.png[Bridge VLAN separation topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[Bridge VLAN separation topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initialize +. Configure a bridge with triple physical port +. Ping host:data20 [10.0.0.3] from host:data10 [10.0.0.1] through and host:data21 [10.0.0.4] from host:data11 [10.0.0.2] through + + +<<< + diff --git a/test/case/infix_interfaces/bridge_vlan_separation/test.py b/test/case/infix_interfaces/bridge_vlan_separation/test.py index e70ce034..0f8f9139 100755 --- a/test/case/infix_interfaces/bridge_vlan_separation/test.py +++ b/test/case/infix_interfaces/bridge_vlan_separation/test.py @@ -14,7 +14,11 @@ # | | # | [ HOST ] | # '-----------------------------------------------------------------------------------------' +""" +Bridge VLAN separation +Test that two VLAN is correctly separaretade in the bridge +""" import infamy with infamy.Test() as test: diff --git a/test/case/infix_interfaces/bridge_vlan_separation/topology.png b/test/case/infix_interfaces/bridge_vlan_separation/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..76a67037111e50c18a157ea9933df7cfecae0858 GIT binary patch literal 23039 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 literal 0 HcmV?d00001 diff --git a/test/case/infix_interfaces/igmp_vlan/Readme.adoc b/test/case/infix_interfaces/igmp_vlan/Readme.adoc new file mode 100644 index 00000000..1ff7e57f --- /dev/null +++ b/test/case/infix_interfaces/igmp_vlan/Readme.adoc @@ -0,0 +1,29 @@ +=== IGMP VLAN +==== Description +Test tagged IGMP control traffic and that VLAN separation is respected for multicast + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/infix_interfaces/igmp_vlan/topology.png[IGMP VLAN topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/infix_interfaces/igmp_vlan/topology.png[IGMP VLAN topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[IGMP VLAN topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initialize +. Configure device +. Check multicast receieved on correct port and VLAN +. Multicast does not exist on ports/VLANs where they should not be +. Multicast received on correct port and VLAN + + +<<< + diff --git a/test/case/infix_interfaces/igmp_vlan/test.py b/test/case/infix_interfaces/igmp_vlan/test.py index 1e9047a1..23d990d9 100755 --- a/test/case/infix_interfaces/igmp_vlan/test.py +++ b/test/case/infix_interfaces/igmp_vlan/test.py @@ -21,7 +21,11 @@ # 10.0.1.11 10.0.2.11 10.0.1.22 10.0.2.22 # +""" +IGMP VLAN +Test tagged IGMP control traffic and that VLAN separation is respected for multicast +""" import infamy import time diff --git a/test/case/infix_interfaces/igmp_vlan/topology.png b/test/case/infix_interfaces/igmp_vlan/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..76a67037111e50c18a157ea9933df7cfecae0858 GIT binary patch literal 23039 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 literal 0 HcmV?d00001 diff --git a/test/case/infix_interfaces/vlan_qos/Readme.adoc b/test/case/infix_interfaces/vlan_qos/Readme.adoc new file mode 100644 index 00000000..a56b220a --- /dev/null +++ b/test/case/infix_interfaces/vlan_qos/Readme.adoc @@ -0,0 +1,28 @@ +=== VLAN QoS +==== Description +Inject different packets from the host and verify that the VLAN priority +is handled correctly + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/infix_interfaces/vlan_qos/topology.png[VLAN QoS topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/infix_interfaces/vlan_qos/topology.png[VLAN QoS topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[VLAN QoS topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initialize +. Apply initial config without priority mapping +. Setup host VLANs + + +<<< + diff --git a/test/case/infix_interfaces/vlan_qos/test.py b/test/case/infix_interfaces/vlan_qos/test.py index 3e17f9ce..735bff1a 100755 --- a/test/case/infix_interfaces/vlan_qos/test.py +++ b/test/case/infix_interfaces/vlan_qos/test.py @@ -14,7 +14,12 @@ # Inject tagged packets on host/d1, let target route it over to d2 # where the tag priority is snooped, with different combinations of # pcp<->priority mappings and verify the results. +""" +VLAN QoS +Inject different packets from the host and verify that the VLAN priority +is handled correctly +""" import infamy # Each line represents an injected ICMP request with `id` (tagged with diff --git a/test/case/infix_interfaces/vlan_qos/topology.png b/test/case/infix_interfaces/vlan_qos/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..fb612860642a27b2bc6773719589e3b88c530435 GIT binary patch literal 6134 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 Xwe*Q!QB&f;$cI$#Xdw#~&7S`c!o9py literal 0 HcmV?d00001 diff --git a/test/case/infix_services/Readme.adoc b/test/case/infix_services/Readme.adoc new file mode 100644 index 00000000..e1727046 --- /dev/null +++ b/test/case/infix_services/Readme.adoc @@ -0,0 +1,6 @@ +:testgroup: +== infix-services + +<<< + +include::services_basic/Readme.adoc[] diff --git a/test/case/infix_services/services_basic/Readme.adoc b/test/case/infix_services/services_basic/Readme.adoc new file mode 100644 index 00000000..4ba003f9 --- /dev/null +++ b/test/case/infix_services/services_basic/Readme.adoc @@ -0,0 +1,34 @@ +=== Services basic +==== Description +Verify that basic services like mDNS and LLDP can be enabled and +disabled. We verify operation and non-operation by using tcpdump. + +XXX: with socat in the Docker container we could speed up the LLDP + detection considerably by sending a probe: + +echo -ne '\x01\x80\xc2\x00\x00\x0e\x01\x80\xc2\x00\x00\x0e\x88\xcc\x02\x07\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' | socat - UDP4-DATAGRAM:255.255.255.255:7010,broadcast + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/infix_services/services_basic/topology.png[Services basic topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/infix_services/services_basic/topology.png[Services basic topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[Services basic topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initialize +. Set static IPv4 address and disable services +. Start sniffer and enable services on target ... +. Disable services on target, verify they're not running anymore ... + + +<<< + diff --git a/test/case/infix_services/services_basic/test.py b/test/case/infix_services/services_basic/test.py index d13edbc6..730aca5a 100755 --- a/test/case/infix_services/services_basic/test.py +++ b/test/case/infix_services/services_basic/test.py @@ -8,7 +8,18 @@ # # echo -ne "\x01\x80\xc2\x00\x00\x0e\x01\x80\xc2\x00\x00\x0e\x88\xcc\x02\x07\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" | socat - UDP4-DATAGRAM:255.255.255.255:7010,broadcast # +""" +Services basic +Verify that basic services like mDNS and LLDP can be enabled and +disabled. We verify operation and non-operation by using tcpdump. + +XXX: with socat in the Docker container we could speed up the LLDP + detection considerably by sending a probe: + +echo -ne '\\x01\\x80\\xc2\\x00\\x00\\x0e\\x01\\x80\\xc2\\x00\\x00\\x0e\\x88\\xcc\\x02\\x07\\x04\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00' | socat - UDP4-DATAGRAM:255.255.255.255:7010,broadcast + +""" import time import infamy diff --git a/test/case/infix_services/services_basic/topology.png b/test/case/infix_services/services_basic/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..953e7544db8b83cab764a1822bd731dfb8c52cc5 GIT binary patch literal 6969 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 FzX06u+jsx~ literal 0 HcmV?d00001 diff --git a/test/case/misc/start_from_startup/Readme.adoc b/test/case/misc/start_from_startup/Readme.adoc new file mode 100644 index 00000000..7a3a7072 --- /dev/null +++ b/test/case/misc/start_from_startup/Readme.adoc @@ -0,0 +1,28 @@ +=== Undefined +==== Description +Undefined + +==== Topology +ifdef::topdoc[] +image::/home/lazzer/Documents/addiva/infix/test/case/misc/start_from_startup/topology.png[Undefined topology] + +endif::topdoc[] +ifndef::topdoc[] +ifdef::testgroup[] +image::lazzer/Documents/addiva/infix/test/case/misc/start_from_startup/topology.png[Undefined topology] + +endif::testgroup[] +ifndef::testgroup[] +image::topology.png[Undefined topology] + +endif::testgroup[] +endif::topdoc[] +==== Test sequence +. Initialize +. Configure +. Reboot and wait for the unit to come back +. Verify hostname + + +<<< + diff --git a/test/case/misc/start_from_startup/topology.png b/test/case/misc/start_from_startup/topology.png new file mode 100644 index 0000000000000000000000000000000000000000..5c6b47225455bf3cf47070ceb9dce77164746586 GIT binary patch literal 3003 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 FzX06u+jsx~ literal 0 HcmV?d00001 diff --git a/test/spec/Readme.adoc b/test/spec/Readme.adoc new file mode 100644 index 00000000..ec32fdc7 --- /dev/null +++ b/test/spec/Readme.adoc @@ -0,0 +1,47 @@ +:topdoc: + += Test specification +This is the test specification for Infix. +:title-page: +:toc: +:toclevels: 2 +:sectnums: +:sectnumlevels: 2 + +<<< +include::../case/misc/Readme.adoc[] + +<<< + +include::../case/ietf_system/Readme.adoc[] + +<<< + +include::../case/ietf_syslog/Readme.adoc[] + +<<< + +include::../case/ietf_interfaces/Readme.adoc[] + +<<< + +include::../case/infix_interfaces/Readme.adoc[] +<<< + +include::../case/ietf_routing/Readme.adoc[] + +<<< + +include::../case/infix_containers/Readme.adoc[] + +<<< + +include::../case/infix_dhcp/Readme.adoc[] + +<<< + +include::../case/ietf_hardware/Readme.adoc[] + +<<< + +include::../case/infix_services/Readme.adoc[] diff --git a/test/spec/Readme.adoc.in b/test/spec/Readme.adoc.in new file mode 100644 index 00000000..bc1c3a39 --- /dev/null +++ b/test/spec/Readme.adoc.in @@ -0,0 +1,47 @@ +:topdoc: + += Test specification +This is the test specification for {REPLACE}. +:title-page: +:toc: +:toclevels: 2 +:sectnums: +:sectnumlevels: 2 + +<<< +include::../case/misc/Readme.adoc[] + +<<< + +include::../case/ietf_system/Readme.adoc[] + +<<< + +include::../case/ietf_syslog/Readme.adoc[] + +<<< + +include::../case/ietf_interfaces/Readme.adoc[] + +<<< + +include::../case/infix_interfaces/Readme.adoc[] +<<< + +include::../case/ietf_routing/Readme.adoc[] + +<<< + +include::../case/infix_containers/Readme.adoc[] + +<<< + +include::../case/infix_dhcp/Readme.adoc[] + +<<< + +include::../case/ietf_hardware/Readme.adoc[] + +<<< + +include::../case/infix_services/Readme.adoc[]