4b308d7512c2847f5e3a00ab906f3b07b8ee919e
[integration/test.git] / test / csit / suites / l2switch / Loop_Removal_OF13 / 010__loop_of_3.robot
1 *** Settings ***
2 Documentation     Test suite for Ring/Loop topology of size 3
3 Suite Setup       Start Suite
4 Suite Teardown    Stop Suite
5 Library           RequestsLibrary
6 Resource          ../../../libraries/Utils.txt
7 Variables         ../../../variables/Variables.py
8
9 *** Variables ***
10 ${FORWARD}        "stp-status-aware-node-connector:status":"forwarding"
11 ${DISCARD}        "stp-status-aware-node-connector:status":"discarding"
12
13 *** Test Cases ***
14 Check Stats for node 1
15     [Documentation]    Get the stats for a node
16     Wait Until Keyword Succeeds    30s    2s    Check Nodes Stats    openflow:1
17
18 Check Stats for node 2
19     [Documentation]    Get the stats for a node
20     Wait Until Keyword Succeeds    30s    2s    Check Nodes Stats    openflow:2
21
22 Check Stats for node 3
23     [Documentation]    Get the stats for a node
24     Wait Until Keyword Succeeds    30s    2s    Check Nodes Stats    openflow:3
25
26 Check Ports
27     [Documentation]    Check all ports are present
28     @{list}    Create List    openflow:1:1    openflow:1:2    openflow:1:3    openflow:2:1    openflow:2:2
29     ...    openflow:2:3    openflow:3:1    openflow:3:2    openflow:3:3
30     Wait Until Keyword Succeeds    30s    2s    Check For Elements At URI    ${OPERATIONAL_NODES_API}    ${list}
31
32 Check Ports STP status
33     [Documentation]    Check the stp status of the ports (forwarding/discarding)
34     Wait Until Keyword Succeeds    30s    2s    Check For Specific Number Of Elements At URI    ${OPERATIONAL_NODES_API}    ${FORWARD}    4
35     Wait Until Keyword Succeeds    30s    2s    Check For Specific Number Of Elements At URI    ${OPERATIONAL_NODES_API}    ${DISCARD}    2
36
37 Ping Test
38     [Documentation]    Ping h1 to h2, verify no packet loss or duplicates
39     Write    h1 ping -w 1 h2
40     ${result}    Read Until    mininet>
41     Should Contain    ${result}    1 received, 0% packet loss
42     Should Not Contain    ${result}    duplicates
43
44 *** Keywords ***
45 Start Suite
46     [Documentation]    Open controller session & mininet connection and start mininet custom topo
47     Create Session    session    http://${CONTROLLER}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_XML}
48     ${start}=    Set Variable    sudo mn --controller=remote,ip=${CONTROLLER} --custom customtopo.py --topo ring --switch ovsk,protocols=OpenFlow13
49     ${mininet_conn_id}=    Open Connection    ${MININET}    prompt=${linux_prompt}    timeout=30s
50     Set Suite Variable    ${mininet_conn_id}
51     Login With Public Key    ${MININET_USER}    ${USER_HOME}/.ssh/id_rsa    any
52     Put File    ${CURDIR}/../topologies/customtopo.py
53     Execute Command    sudo ovs-vsctl set-manager ptcp:6644
54     Execute Command    sudo mn -c
55     Write    ${start}
56     Read Until    mininet>
57
58 Stop Suite
59     [Documentation]    Stop mininet topo and close connections & sessions
60     Log    Stop the test on the base edition
61     Switch Connection    ${mininet_conn_id}
62     Read
63     Write    exit
64     Read Until    ${linux_prompt}
65     Close Connection
66     Delete All Sessions