diff --git a/tests/01-docker/01-smoke/01-basic-flow.robot b/tests/01-docker/01-smoke/01-basic-flow.robot new file mode 100644 index 0000000000..41691d2424 --- /dev/null +++ b/tests/01-docker/01-smoke/01-basic-flow.robot @@ -0,0 +1,67 @@ +*** Settings *** +Library OperatingSystem +Library String +Suite Teardown Run sudo containerlab destroy -t ${CURDIR}/01-linux-nodes.clab.yml --cleanup + +*** Variables *** +${lab-name} 2-linux-nodes + +*** Test Cases *** +Deploy ${lab-name} lab + Log ${CURDIR} + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab deploy -t ${CURDIR}/01-linux-nodes.clab.yml + Log ${output} + Should Be Equal As Integers ${rc} 0 + +Inspect ${lab-name} lab + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab inspect -n ${lab-name} + Log ${output} + Should Be Equal As Integers ${rc} 0 + +Verify links in node l1 + ${rc} ${output} = Run And Return Rc And Output + ... sudo docker exec clab-${lab-name}-l1 ip link show eth1 + Log ${output} + Should Be Equal As Integers ${rc} 0 + Should Contain ${output} state UP + ${rc} ${output} = Run And Return Rc And Output + ... sudo docker exec clab-${lab-name}-l1 ip link show eth2 + Log ${output} + Should Be Equal As Integers ${rc} 0 + Should Contain ${output} state UP + +Verify links in node l2 + ${rc} ${output} = Run And Return Rc And Output + ... sudo docker exec clab-${lab-name}-l2 ip link show eth1 + Log ${output} + Should Be Equal As Integers ${rc} 0 + Should Contain ${output} state UP + ${rc} ${output} = Run And Return Rc And Output + ... sudo docker exec clab-${lab-name}-l2 ip link show eth2 + Log ${output} + Should Be Equal As Integers ${rc} 0 + Should Contain ${output} state UP + +Ensure "inspect all" outputs IP addresses + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab inspect --all + Log ${output} + Should Be Equal As Integers ${rc} 0 + ${line} = String.Get Line ${output} -2 + Log ${line} + @{data} = Split String ${line} | + Log ${data} + # verify ipv4 address + ${ipv4} = String.Strip String ${data}[10] + Should Match Regexp ${ipv4} ^[\\d\\.]+/\\d{1,2}$ + # verify ipv6 address + ${ipv6} = String.Strip String ${data}[11] + Should Match Regexp ${ipv6} ^[\\d:]+/\\d{1,2}$ + +Destroy ${lab-name} lab + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab destroy -t ${CURDIR}/01-linux-nodes.clab.yml --cleanup + Log ${output} + Should Be Equal As Integers ${rc} 0 diff --git a/tests/01-docker/01-smoke/01-linux-nodes.clab.yml b/tests/01-docker/01-smoke/01-linux-nodes.clab.yml new file mode 100644 index 0000000000..53788f0979 --- /dev/null +++ b/tests/01-docker/01-smoke/01-linux-nodes.clab.yml @@ -0,0 +1,18 @@ +# Copyright 2020 Nokia +# Licensed under the BSD 3-Clause License. +# SPDX-License-Identifier: BSD-3-Clause + +name: 2-linux-nodes + +topology: + nodes: + l1: + kind: linux + image: alpine:3 + l2: + kind: linux + image: alpine:3 + + links: + - endpoints: ["l1:eth1", "l2:eth1"] + - endpoints: ["l1:eth2", "l2:eth2"] diff --git a/tests/01-docker/01-smoke/01-linux-single-node.clab.yml b/tests/01-docker/01-smoke/01-linux-single-node.clab.yml new file mode 100644 index 0000000000..c94f395e8e --- /dev/null +++ b/tests/01-docker/01-smoke/01-linux-single-node.clab.yml @@ -0,0 +1,11 @@ +# Copyright 2020 Nokia +# Licensed under the BSD 3-Clause License. +# SPDX-License-Identifier: BSD-3-Clause + +name: single-node + +topology: + nodes: + l1: + kind: linux + image: alpine:3 diff --git a/tests/01-docker/01-smoke/02-destroy-all.robot b/tests/01-docker/01-smoke/02-destroy-all.robot new file mode 100644 index 0000000000..7c764b858f --- /dev/null +++ b/tests/01-docker/01-smoke/02-destroy-all.robot @@ -0,0 +1,28 @@ +*** Settings *** +Library OperatingSystem +Suite Teardown Run sudo containerlab destroy --all --cleanup + +*** Test Cases *** +Deploy first lab + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab deploy -t ${CURDIR}/01-linux-nodes.clab.yml + Log ${output} + Should Be Equal As Integers ${rc} 0 + +Deploy second lab + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab deploy -t ${CURDIR}/01-linux-single-node.clab.yml + Log ${output} + Should Be Equal As Integers ${rc} 0 + +Destroy all labs + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab destroy --all --cleanup + Log ${output} + Should Be Equal As Integers ${rc} 0 + +Check all labs have been removed + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab inspect --all + Log ${output} + Should Contain ${output} no containers found diff --git a/tests/01-docker/01-smoke/03-bridge.robot b/tests/01-docker/01-smoke/03-bridge.robot new file mode 100644 index 0000000000..8263ff4d0f --- /dev/null +++ b/tests/01-docker/01-smoke/03-bridge.robot @@ -0,0 +1,39 @@ +*** Settings *** +Library OperatingSystem +Suite Setup Run sudo ip l del ${bridge-name} +Suite Teardown Cleanup + +*** Variables *** +${lab-name} 2-linux-nodes +${lab-file} 03-linux-nodes-to-bridge.clab.yml +${bridge-name} br-clab +${br-link1-name} l1-eth1 +${br-link2-name} l1-eth2 + +*** Test Cases *** +Create linux bridge + ${rc} ${output} = Run And Return Rc And Output + ... sudo ip link add name ${bridge-name} type bridge && sudo ip link set ${bridge-name} up + Log ${output} + Should Be Equal As Integers ${rc} 0 + +Deploy ${lab-name} lab + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab deploy -t ${CURDIR}/${lab-file} + Log ${output} + Should Be Equal As Integers ${rc} 0 + +Verify links in bridge + ${rc} ${output} = Run And Return Rc And Output + ... sudo ip link show ${br-link1-name} + Log ${output} + Should Contain ${output} master ${bridge-name} state UP + ${rc} ${output} = Run And Return Rc And Output + ... sudo ip link show ${br-link2-name} + Log ${output} + Should Contain ${output} master ${bridge-name} state UP + +*** Keywords *** +Cleanup + Run sudo containerlab destroy -t ${CURDIR}/${lab-file} --cleanup + Run sudo ip l del ${bridge-name} diff --git a/tests/01-docker/01-smoke/03-linux-nodes-to-bridge.clab.yml b/tests/01-docker/01-smoke/03-linux-nodes-to-bridge.clab.yml new file mode 100644 index 0000000000..b27f024b96 --- /dev/null +++ b/tests/01-docker/01-smoke/03-linux-nodes-to-bridge.clab.yml @@ -0,0 +1,17 @@ +# Copyright 2020 Nokia +# Licensed under the BSD 3-Clause License. +# SPDX-License-Identifier: BSD-3-Clause + +name: 03-bridge + +topology: + nodes: + l1: + kind: linux + image: alpine:3 + br-clab: + kind: bridge + + links: + - endpoints: ["l1:eth1", "br-clab:l1-eth1"] + - endpoints: ["br-clab:l1-eth2", "l1:eth2"] diff --git a/tests/01-docker/01-smoke/04-generate.robot b/tests/01-docker/01-smoke/04-generate.robot new file mode 100644 index 0000000000..5393821c5f --- /dev/null +++ b/tests/01-docker/01-smoke/04-generate.robot @@ -0,0 +1,31 @@ +*** Settings *** +Library OperatingSystem +Suite Teardown Cleanup + +*** Variables *** +${lab-name} 3-clab-gen + +*** Test Cases *** +Deploy ${lab-name} lab with generate command + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab generate --name ${lab-name} --kind linux --image alpine:latest --nodes 2,1,1 --deploy + Log ${output} + Should Be Equal As Integers ${rc} 0 + +Verify nodes + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab inspect --name ${lab-name} + Log ${output} + Should Be Equal As Integers ${rc} 0 + Should Contain ${output} clab-${lab-name}-node1-1 + Should Contain ${output} clab-${lab-name}-node1-2 + Should Contain ${output} clab-${lab-name}-node2-1 + Should Contain ${output} clab-${lab-name}-node3-1 + +*** Keywords *** +Cleanup + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab destroy -t ${lab-name}.clab.yml --cleanup + Log ${output} + Should Be Equal As Integers ${rc} 0 + OperatingSystem.Remove File ${lab-name}.clab.yml diff --git a/tests/01-docker/02-basic-srl/01-two-srls.robot b/tests/01-docker/02-basic-srl/01-two-srls.robot new file mode 100644 index 0000000000..9b9d2e3ff2 --- /dev/null +++ b/tests/01-docker/02-basic-srl/01-two-srls.robot @@ -0,0 +1,36 @@ +*** Settings *** +Library OperatingSystem +Suite Teardown Run Keyword Cleanup + +*** Variables *** +${lab-name} 02-01-two-srls + +*** Test Cases *** +Deploy ${lab-name} lab + Log ${CURDIR} + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab deploy -t ${CURDIR}/02-srl02.clab.yml + Log ${output} + Should Be Equal As Integers ${rc} 0 + +Wait 5 seconds + Sleep 5s + +Verify links in node srl1 + ${rc} ${output} = Run And Return Rc And Output + ... sudo docker exec clab-${lab-name}-srl1 ip link show e1-1 + Log ${output} + Should Be Equal As Integers ${rc} 0 + Should Contain ${output} state UP + +Verify links in node srl2 + ${rc} ${output} = Run And Return Rc And Output + ... sudo docker exec clab-${lab-name}-srl2 ip link show e1-1 + Log ${output} + Should Be Equal As Integers ${rc} 0 + Should Contain ${output} state UP + +*** Keywords *** +Cleanup + Run sudo containerlab destroy -t ${CURDIR}/02-srl02.clab.yml --cleanup + Run rm -rf ${CURDIR}/${lab-name} diff --git a/tests/01-docker/02-basic-srl/02-srl02.clab.yml b/tests/01-docker/02-basic-srl/02-srl02.clab.yml new file mode 100644 index 0000000000..2d4ad38a72 --- /dev/null +++ b/tests/01-docker/02-basic-srl/02-srl02.clab.yml @@ -0,0 +1,19 @@ +# Copyright 2020 Nokia +# Licensed under the BSD 3-Clause License. +# SPDX-License-Identifier: BSD-3-Clause + +name: 02-01-two-srls + +topology: + kinds: + srl: + image: srlinux:21.3.1-410 + license: /home/gitlab-runner/srl-lic.key + nodes: + srl1: + kind: srl + srl2: + kind: srl + + links: + - endpoints: ["srl1:e1-1", "srl2:e1-1"] diff --git a/tests/01-docker/03-basic-ceos/01-two-ceos.robot b/tests/01-docker/03-basic-ceos/01-two-ceos.robot new file mode 100644 index 0000000000..bd36eb059b --- /dev/null +++ b/tests/01-docker/03-basic-ceos/01-two-ceos.robot @@ -0,0 +1,61 @@ +*** Settings *** +Library OperatingSystem +Library SSHLibrary +Suite Teardown Run Keyword Cleanup +Resource ../common.robot + +*** Variables *** +${lab-name} 03-01-two-ceos +${lab-file-name} 03-ceos01-clab.yml +${node1-name} n1 +${node2-name} n2 +${n1-mgmt-ip} +${n2-mgmt-ip} 172.20.20.22 + +*** Test Cases *** +Deploy ${lab-name} lab + Log ${CURDIR} + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab deploy -t ${CURDIR}/${lab-file-name} + Log ${output} + Should Be Equal As Integers ${rc} 0 + +Get nodes mgmt IPs + ${rc} ${n1-mgmt-ip} = Run And Return Rc And Output + ... sudo docker inspect clab-${lab-name}-${node1-name} -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' + Should Be Equal As Integers ${rc} 0 + Set Suite Variable ${n1-mgmt-ip} + ${rc} ${inspected-n2-mgmt-ip} = Run And Return Rc And Output + ... sudo docker inspect clab-${lab-name}-${node2-name} -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' + Should Be Equal As Integers ${rc} 0 + Should Be Equal As Strings ${inspected-n2-mgmt-ip} ${n2-mgmt-ip} + +Ensure n1 mgmt IPv4 is in the config file + ${f} = OperatingSystem.Get File ${EXECDIR}/clab-${lab-name}/${node1-name}/flash/startup-config + Log ${f} + Log ${n1-mgmt-ip} + Should Contain ${f} ${n1-mgmt-ip} + +Ensure n2 mgmt IPv4 is in the config file + ${f} = OperatingSystem.Get File ${EXECDIR}/clab-${lab-name}/${node2-name}/flash/startup-config + Log ${f} + Should Contain ${f} ${n2-mgmt-ip} + +Ensure n1 is reachable over ssh + Common.Login via SSH with username and password + ... address=${n1-mgmt-ip} + ... username=admin + ... password=admin + ... try_for=60 + +Ensure n2 is reachable over ssh + Common.Login via SSH with username and password + ... address=${n2-mgmt-ip} + ... username=admin + ... password=admin + ... try_for=60 + +*** Keywords *** +Cleanup + Run sudo containerlab destroy -t ${CURDIR}/${lab-file-name} --cleanup + Run rm -rf ${CURDIR}/${lab-name} diff --git a/tests/01-docker/03-basic-ceos/03-ceos01-clab.yml b/tests/01-docker/03-basic-ceos/03-ceos01-clab.yml new file mode 100644 index 0000000000..5932d12bb1 --- /dev/null +++ b/tests/01-docker/03-basic-ceos/03-ceos01-clab.yml @@ -0,0 +1,19 @@ +# Copyright 2020 Nokia +# Licensed under the BSD 3-Clause License. +# SPDX-License-Identifier: BSD-3-Clause + +name: 03-01-two-ceos + +topology: + kinds: + ceos: + image: ceos:4.25.0F + nodes: + n1: + kind: ceos + n2: + kind: ceos + mgmt_ipv4: 172.20.20.22 + + links: + - endpoints: ["n1:eth1", "n2:eth1"] diff --git a/tests/02-containerd/01-smoke/01-basic-flow.robot b/tests/02-containerd/01-smoke/01-basic-flow.robot new file mode 100644 index 0000000000..f22c7b2799 --- /dev/null +++ b/tests/02-containerd/01-smoke/01-basic-flow.robot @@ -0,0 +1,67 @@ +*** Settings *** +Library OperatingSystem +Library String +Suite Teardown Run sudo containerlab -r containerd destroy -t ${CURDIR}/01-linux-nodes.clab.yml --cleanup + +*** Variables *** +${lab-name} 2-linux-nodes + +*** Test Cases *** +Deploy ${lab-name} lab + Log ${CURDIR} + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab -r containerd deploy -t ${CURDIR}/01-linux-nodes.clab.yml + Log ${output} + Should Be Equal As Integers ${rc} 0 + +Inspect ${lab-name} lab + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab -r containerd inspect -n ${lab-name} + Log ${output} + Should Be Equal As Integers ${rc} 0 + +Verify links in node l1 + ${rc} ${output} = Run And Return Rc And Output + ... sudo ctr -n clab task exec -exec-id iplseth1 clab-${lab-name}-l1 ip link show eth1 + Log ${output} + Should Be Equal As Integers ${rc} 0 + Should Contain ${output} state UP + ${rc} ${output} = Run And Return Rc And Output + ... sudo ctr -n clab task exec -exec-id iplseth2 clab-${lab-name}-l1 ip link show eth2 + Log ${output} + Should Be Equal As Integers ${rc} 0 + Should Contain ${output} state UP + +Verify links in node l2 + ${rc} ${output} = Run And Return Rc And Output + ... sudo ctr -n clab task exec -exec-id iplseth1 clab-${lab-name}-l2 ip link show eth1 + Log ${output} + Should Be Equal As Integers ${rc} 0 + Should Contain ${output} state UP + ${rc} ${output} = Run And Return Rc And Output + ... sudo exec -exec-id ictr -n clab taskplseth2 clab-${lab-name}-l2 ip link show eth2 + Log ${output} + Should Be Equal As Integers ${rc} 0 + Should Contain ${output} state UP + +Ensure "inspect all" outputs IP addresses + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab -r containerd inspect --all + Log ${output} + Should Be Equal As Integers ${rc} 0 + ${line} = String.Get Line ${output} -2 + Log ${line} + @{data} = Split String ${line} | + Log ${data} + # verify ipv4 address + ${ipv4} = String.Strip String ${data}[10] + Should Match Regexp ${ipv4} ^[\\d\\.]+/\\d{1,2}$ + # verify ipv6 address + ${ipv6} = String.Strip String ${data}[11] + Should Match Regexp ${ipv6} ^[\\d:]+/\\d{1,2}$ + +Destroy ${lab-name} lab + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab -r containerd destroy -t ${CURDIR}/01-linux-nodes.clab.yml --cleanup + Log ${output} + Should Be Equal As Integers ${rc} 0 diff --git a/tests/02-containerd/01-smoke/01-linux-nodes.clab.yml b/tests/02-containerd/01-smoke/01-linux-nodes.clab.yml new file mode 100644 index 0000000000..53788f0979 --- /dev/null +++ b/tests/02-containerd/01-smoke/01-linux-nodes.clab.yml @@ -0,0 +1,18 @@ +# Copyright 2020 Nokia +# Licensed under the BSD 3-Clause License. +# SPDX-License-Identifier: BSD-3-Clause + +name: 2-linux-nodes + +topology: + nodes: + l1: + kind: linux + image: alpine:3 + l2: + kind: linux + image: alpine:3 + + links: + - endpoints: ["l1:eth1", "l2:eth1"] + - endpoints: ["l1:eth2", "l2:eth2"] diff --git a/tests/02-containerd/01-smoke/01-linux-single-node.clab.yml b/tests/02-containerd/01-smoke/01-linux-single-node.clab.yml new file mode 100644 index 0000000000..c94f395e8e --- /dev/null +++ b/tests/02-containerd/01-smoke/01-linux-single-node.clab.yml @@ -0,0 +1,11 @@ +# Copyright 2020 Nokia +# Licensed under the BSD 3-Clause License. +# SPDX-License-Identifier: BSD-3-Clause + +name: single-node + +topology: + nodes: + l1: + kind: linux + image: alpine:3 diff --git a/tests/02-containerd/01-smoke/02-destroy-all.robot b/tests/02-containerd/01-smoke/02-destroy-all.robot new file mode 100644 index 0000000000..f52428ef6f --- /dev/null +++ b/tests/02-containerd/01-smoke/02-destroy-all.robot @@ -0,0 +1,28 @@ +*** Settings *** +Library OperatingSystem +Suite Teardown Run sudo containerlab -r containerd destroy --all --cleanup + +*** Test Cases *** +Deploy first lab + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab -r containerd deploy -t ${CURDIR}/01-linux-nodes.clab.yml + Log ${output} + Should Be Equal As Integers ${rc} 0 + +Deploy second lab + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab -r containerd deploy -t ${CURDIR}/01-linux-single-node.clab.yml + Log ${output} + Should Be Equal As Integers ${rc} 0 + +Destroy all labs + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab -r containerd destroy --all --cleanup + Log ${output} + Should Be Equal As Integers ${rc} 0 + +Check all labs have been removed + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab -r containerd inspect --all + Log ${output} + Should Contain ${output} no containers found diff --git a/tests/02-containerd/01-smoke/03-bridge.robot b/tests/02-containerd/01-smoke/03-bridge.robot new file mode 100644 index 0000000000..a46c121fbe --- /dev/null +++ b/tests/02-containerd/01-smoke/03-bridge.robot @@ -0,0 +1,39 @@ +*** Settings *** +Library OperatingSystem +Suite Setup Run sudo ip l del ${bridge-name} +Suite Teardown Cleanup + +*** Variables *** +${lab-name} 2-linux-nodes +${lab-file} 03-linux-nodes-to-bridge.clab.yml +${bridge-name} br-clab +${br-link1-name} l1-eth1 +${br-link2-name} l1-eth2 + +*** Test Cases *** +Create linux bridge + ${rc} ${output} = Run And Return Rc And Output + ... sudo ip link add name ${bridge-name} type bridge && sudo ip link set ${bridge-name} up + Log ${output} + Should Be Equal As Integers ${rc} 0 + +Deploy ${lab-name} lab + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab -r containerd deploy -t ${CURDIR}/${lab-file} + Log ${output} + Should Be Equal As Integers ${rc} 0 + +Verify links in bridge + ${rc} ${output} = Run And Return Rc And Output + ... sudo ip link show ${br-link1-name} + Log ${output} + Should Contain ${output} master ${bridge-name} state UP + ${rc} ${output} = Run And Return Rc And Output + ... sudo ip link show ${br-link2-name} + Log ${output} + Should Contain ${output} master ${bridge-name} state UP + +*** Keywords *** +Cleanup + Run sudo containerlab -r containerd destroy -t ${CURDIR}/${lab-file} --cleanup + Run sudo ip l del ${bridge-name} diff --git a/tests/02-containerd/01-smoke/03-linux-nodes-to-bridge.clab.yml b/tests/02-containerd/01-smoke/03-linux-nodes-to-bridge.clab.yml new file mode 100644 index 0000000000..b27f024b96 --- /dev/null +++ b/tests/02-containerd/01-smoke/03-linux-nodes-to-bridge.clab.yml @@ -0,0 +1,17 @@ +# Copyright 2020 Nokia +# Licensed under the BSD 3-Clause License. +# SPDX-License-Identifier: BSD-3-Clause + +name: 03-bridge + +topology: + nodes: + l1: + kind: linux + image: alpine:3 + br-clab: + kind: bridge + + links: + - endpoints: ["l1:eth1", "br-clab:l1-eth1"] + - endpoints: ["br-clab:l1-eth2", "l1:eth2"] diff --git a/tests/02-containerd/01-smoke/04-generate.robot b/tests/02-containerd/01-smoke/04-generate.robot new file mode 100644 index 0000000000..98502f7a11 --- /dev/null +++ b/tests/02-containerd/01-smoke/04-generate.robot @@ -0,0 +1,31 @@ +*** Settings *** +Library OperatingSystem +Suite Teardown Cleanup + +*** Variables *** +${lab-name} 3-clab-gen + +*** Test Cases *** +Deploy ${lab-name} lab with generate command + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab -r containerd generate --name ${lab-name} --kind linux --image alpine:latest --nodes 2,1,1 --deploy + Log ${output} + Should Be Equal As Integers ${rc} 0 + +Verify nodes + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab -r cotnainerd inspect --name ${lab-name} + Log ${output} + Should Be Equal As Integers ${rc} 0 + Should Contain ${output} clab-${lab-name}-node1-1 + Should Contain ${output} clab-${lab-name}-node1-2 + Should Contain ${output} clab-${lab-name}-node2-1 + Should Contain ${output} clab-${lab-name}-node3-1 + +*** Keywords *** +Cleanup + ${rc} ${output} = Run And Return Rc And Output + ... sudo containerlab -r containerd destroy -t ${lab-name}.clab.yml --cleanup + Log ${output} + Should Be Equal As Integers ${rc} 0 + OperatingSystem.Remove File ${lab-name}.clab.yml