Add test suites for usc project 30/31730/8
authorvictorxu <s.xu@huawei.com>
Wed, 27 Jan 2016 00:15:18 +0000 (16:15 -0800)
committerGerrit Code Review <gerrit@opendaylight.org>
Mon, 15 Feb 2016 22:59:31 +0000 (22:59 +0000)
Change-Id: I048dd01efa75c19294b678c40017eda70160916f
Signed-off-by: victorxu <s.xu@huawei.com>
17 files changed:
csit/libraries/UscUtils.robot [new file with mode: 0644]
csit/suites/usc/__init__.robot [new file with mode: 0644]
csit/suites/usc/tcp/100__basic.robot [new file with mode: 0644]
csit/suites/usc/tcp/110_TCP/Test.robot [new file with mode: 0644]
csit/suites/usc/tcp/110_TCP/__init__.robot [new file with mode: 0644]
csit/suites/usc/tcp/200_Multiple_Sessions_TCP/Test.robot [new file with mode: 0644]
csit/suites/usc/tcp/200_Multiple_Sessions_TCP/__init__.robot [new file with mode: 0644]
csit/suites/usc/tcp/300_Callhome_TCP/__init__.robot [new file with mode: 0644]
csit/suites/usc/tcp/300_Callhome_TCP/test.robot [new file with mode: 0644]
csit/suites/usc/tcp/__init__.robot [new file with mode: 0644]
csit/suites/usc/udp/110_UDP/Test.robot [new file with mode: 0644]
csit/suites/usc/udp/110_UDP/__init__.robot [new file with mode: 0644]
csit/suites/usc/udp/200_Multiple_Sessions_UDP/Test.robot [new file with mode: 0644]
csit/suites/usc/udp/200_Multiple_Sessions_UDP/__init__.robot [new file with mode: 0644]
csit/suites/usc/udp/300_Callhome_UDP/Test.robot [new file with mode: 0644]
csit/suites/usc/udp/300_Callhome_UDP/__init__.robot [new file with mode: 0644]
csit/suites/usc/udp/__init__.robot [new file with mode: 0644]

diff --git a/csit/libraries/UscUtils.robot b/csit/libraries/UscUtils.robot
new file mode 100644 (file)
index 0000000..7034218
--- /dev/null
@@ -0,0 +1,216 @@
+*** Settings ***
+Library           Collections
+Library           SSHLibrary
+Library           UtilLibrary.py
+Resource          Utils.robot
+
+*** Variables ***
+${REST_VIEW_CHANNEL}    /restconf/operations/usc-channel:view-channel
+${REST_ADD_CHANNEL}    /restconf/operations/usc-channel:add-channel
+${REST_REMOVE_CHANNEL}    /restconf/operations/usc-channel:remove-channel
+${REST_SEND_MESSAGE}    /restconf/operations/usc-channel:send-message
+${NAV_USC_TOOLS}    cd ~/usc-tools
+${CLONE_USC_TOOLS}    [ -f ~/usc-tools/UscAgent.jar ] && echo "The usc-tools does exist. (17/17), done." || git clone https://github.com/victorxu99/usc-tools.git ~/usc-tools
+${USC_AGENT_IP}    192.168.56.51
+${ECHO_SERVER_PORT}    2007
+@{LIST_ECHO_SERVER_PORT}    2007    2008    2009
+${TEST_MESSAGE}    This is a test message.
+${NUM_OF_MESSAGES}    100
+${AgentTcp}       java -jar UscAgent.jar -t true
+${AgentUdp}       java -jar UscAgent.jar -t false
+${AgentTcpCallhome}    java -jar UscAgent.jar -t true -c true -h 192.168.56.20
+${AgentUdpCallhome}    java -jar UscAgent.jar -t false -c true -h 192.168.56.20
+${EchoServerTcp}    java -jar EchoServer.jar -t true -p 2007
+${EchoServerUdp}    java -jar EchoServer.jar -t false -p 2007
+
+*** Keywords ***
+Download Tools
+    [Documentation]    Download UscAgent and EchoServer before any system
+    ...    is run.
+    Log    Download tools begin ...
+    ${tools_conn_id}=    Open Connection    ${TOOLS_SYSTEM_IP}    timeout=30s
+    Set Suite Variable    ${tools_conn_id}
+    Flexible Mininet Login    user=${TOOLS_SYSTEM_USER}    password=${TOOLS_SYSTEM_PASSWORD}
+    Write    ${CLONE_USC_TOOLS}
+    Read Until    (17/17), done.
+    Log    Download tools ended.
+
+Close Download Connection
+    [Documentation]    Close Download Connection
+    Log    Close Download Connection
+    Switch Connection    ${tools_conn_id}
+    Write    exit
+    Close Connection
+
+Start TCP
+    [Documentation]    Basic setup/cleanup work that can be done safely before any system
+    ...    is run.
+    Log    Start USC test VM for TCP
+    ${agent_conn_id}=    Open Connection    ${TOOLS_SYSTEM_IP}    timeout=30s
+    Set Suite Variable    ${agent_conn_id}
+    Flexible Mininet Login    user=${TOOLS_SYSTEM_USER}    password=${TOOLS_SYSTEM_PASSWORD}
+    Write    ${NAV_USC_TOOLS}
+    Write    ${AgentTcp}
+    Read
+    ${echo_conn_id}=    Open Connection    ${TOOLS_SYSTEM_IP}    timeout=30s
+    Set Suite Variable    ${echo_conn_id}
+    Flexible Mininet Login    user=${TOOLS_SYSTEM_USER}    password=${TOOLS_SYSTEM_PASSWORD}
+    Write    ${NAV_USC_TOOLS}
+    Write    ${EchoServerTcp}
+    Read Until    initialized
+
+Start UDP
+    [Documentation]    Basic setup/cleanup work that can be done safely before any system
+    ...    is run.
+    Log    Start USC test VM for UDP
+    ${agent_conn_id}=    Open Connection    ${TOOLS_SYSTEM_IP}    timeout=30s
+    Set Suite Variable    ${agent_conn_id}
+    Flexible Mininet Login    user=${TOOLS_SYSTEM_USER}    password=${TOOLS_SYSTEM_PASSWORD}
+    Write    ${NAV_USC_TOOLS}
+    Write    ${AgentUdp}
+    Read
+    ${echo_conn_id}=    Open Connection    ${TOOLS_SYSTEM_IP}    timeout=30s
+    Set Suite Variable    ${echo_conn_id}
+    Flexible Mininet Login    user=${TOOLS_SYSTEM_USER}    password=${TOOLS_SYSTEM_PASSWORD}
+    Write    ${NAV_USC_TOOLS}
+    Write    ${EchoServerUdp}
+    Read Until    initialized
+
+Start CALLHOME_TCP
+    [Documentation]    Basic setup/cleanup work that can be done safely before any system
+    ...    is run.
+    Log    Start USC test VM for CALLHOME_TCP
+    ${agent_conn_id}=    Open Connection    ${TOOLS_SYSTEM_IP}    timeout=30s
+    Set Suite Variable    ${agent_conn_id}
+    Flexible Mininet Login    user=${TOOLS_SYSTEM_USER}    password=${TOOLS_SYSTEM_PASSWORD}
+    Write    ${NAV_USC_TOOLS}
+    Write    ${AgentTcpCallhome}
+    Read
+    ${echo_conn_id}=    Open Connection    ${TOOLS_SYSTEM_IP}    timeout=30s
+    Set Suite Variable    ${echo_conn_id}
+    Flexible Mininet Login    user=${TOOLS_SYSTEM_USER}    password=${TOOLS_SYSTEM_PASSWORD}
+    Write    ${NAV_USC_TOOLS}
+    Write    ${EchoServerTcp}
+    Read Until    initialized
+
+Start CALLHOME_UDP
+    [Documentation]    Basic setup/cleanup work that can be done safely before any system
+    ...    is run.
+    Log    Start USC test VM for CALLHOME_UDP
+    ${agent_conn_id}=    Open Connection    ${TOOLS_SYSTEM_IP}    timeout=30s
+    Set Suite Variable    ${agent_conn_id}
+    Flexible Mininet Login    user=${TOOLS_SYSTEM_USER}    password=${TOOLS_SYSTEM_PASSWORD}
+    Write    ${NAV_USC_TOOLS}
+    Write    ${AgentUdpCallhome}
+    Read
+    ${echo_conn_id}=    Open Connection    ${TOOLS_SYSTEM_IP}    timeout=30s
+    Set Suite Variable    ${echo_conn_id}
+    Flexible Mininet Login    user=${TOOLS_SYSTEM_USER}    password=${TOOLS_SYSTEM_PASSWORD}
+    Write    ${NAV_USC_TOOLS}
+    Write    ${EchoServerUdp}
+    Read Until    initialized
+
+Start Fallback_TCP
+    [Documentation]    Basic setup/cleanup work that can be done safely before any system
+    ...    is run.
+    Log    Start USC test VM for Fallback_TCP
+    ${echo_conn_id}=    Open Connection    ${TOOLS_SYSTEM_IP}    timeout=30s
+    Set Suite Variable    ${echo_conn_id}
+    Flexible Mininet Login    user=${TOOLS_SYSTEM_USER}    password=${TOOLS_SYSTEM_PASSWORD}
+    Write    ${NAV_USC_TOOLS}
+    Write    ${EchoServerTcp}
+    Read Until    initialized
+
+Start Fallback_UDP
+    [Documentation]    Basic setup/cleanup work that can be done safely before any system
+    ...    is run.
+    Log    Start USC test VM for Fallback_TCP
+    ${echo_conn_id}=    Open Connection    ${TOOLS_SYSTEM_IP}    timeout=30s
+    Set Suite Variable    ${echo_conn_id}
+    Flexible Mininet Login    user=${TOOLS_SYSTEM_USER}    password=${TOOLS_SYSTEM_PASSWORD}
+    Write    ${NAV_USC_TOOLS}
+    Write    ${EchoServerUdp}
+    Read Until    initialized
+
+Start Multiple_Sessions_TCP
+    [Documentation]    Basic setup/cleanup work that can be done safely before any system
+    ...    is run.
+    Log    Start USC test VM for Multiple_Sessions_TCP
+    ${agent_conn_id}=    Open Connection    ${TOOLS_SYSTEM_IP}    timeout=30s
+    Set Suite Variable    ${agent_conn_id}
+    Flexible Mininet Login    user=${TOOLS_SYSTEM_USER}    password=${TOOLS_SYSTEM_PASSWORD}
+    Write    ${NAV_USC_TOOLS}
+    Write    ${AgentTcp}
+    Read
+    ${L1}    Create List
+    : FOR    ${port_index}    IN    @{LIST_ECHO_SERVER_PORT}
+    \    Log    ${port_index}
+    \    ${echo_conn_id}=    Open Connection    ${TOOLS_SYSTEM_IP}    timeout=30s
+    \    Append To List    ${L1}    ${echo_conn_id}
+    \    Flexible Mininet Login    user=${TOOLS_SYSTEM_USER}    password=${TOOLS_SYSTEM_PASSWORD}
+    \    Write    ${NAV_USC_TOOLS}
+    \    Write    java -jar EchoServer.jar -t true -p ${port_index}
+    \    Read Until    initialized
+    Set Suite Variable    ${L1}
+
+Start Multiple_Sessions_UDP
+    [Documentation]    Basic setup/cleanup work that can be done safely before any system
+    ...    is run.
+    Log    Start USC test VM for Multiple_Sessions_UDP
+    ${agent_conn_id}=    Open Connection    ${TOOLS_SYSTEM_IP}    timeout=30s
+    Set Suite Variable    ${agent_conn_id}
+    Flexible Mininet Login    user=${TOOLS_SYSTEM_USER}    password=${TOOLS_SYSTEM_PASSWORD}
+    Write    ${NAV_USC_TOOLS}
+    Write    ${AgentUdp}
+    Read
+    ${L1}    Create List
+    : FOR    ${port_index}    IN    @{LIST_ECHO_SERVER_PORT}
+    \    Log    ${port_index}
+    \    ${echo_conn_id}=    Open Connection    ${TOOLS_SYSTEM_IP}    timeout=30s
+    \    Append To List    ${L1}    ${echo_conn_id}
+    \    Flexible Mininet Login    user=${TOOLS_SYSTEM_USER}    password=${TOOLS_SYSTEM_PASSWORD}
+    \    Write    ${NAV_USC_TOOLS}
+    \    Write    java -jar EchoServer.jar -t false -p ${port_index}
+    \    Read Until    initialized
+    Set Suite Variable    ${L1}
+
+Stop Agent_Echo
+    [Documentation]    Cleanup/Shutdown work that should be done at the completion of all
+    ...    tests
+    Log    Stop USC test VM for Agent_Echo
+    Switch Connection    ${agent_conn_id}
+    Read
+    Write_Bare_Ctrl_C
+    Write    exit
+    Close Connection
+    Switch Connection    ${echo_conn_id}
+    Read
+    Write_Bare_Ctrl_C
+    Write    exit
+    Close Connection
+
+Stop Echo
+    [Documentation]    Cleanup/Shutdown work that should be done at the completion of all
+    ...    tests
+    Log    Stop USC test VM for Echo
+    Switch Connection    ${echo_conn_id}
+    Read
+    Write_Bare_Ctrl_C
+    Write    exit
+    Close Connection
+
+Stop One_Agent_Multiple_Echo
+    [Documentation]    Cleanup/Shutdown work that should be done at the completion of all
+    ...    tests
+    Log    Stop USC test VM for One_Agent_Multiple_Echo
+    Switch Connection    ${agent_conn_id}
+    Read
+    Write_Bare_Ctrl_C
+    Write    exit
+    Close Connection
+    : FOR    ${echo_conn_id}    IN    @{L1}
+    \    Switch Connection    ${echo_conn_id}
+    \    Read
+    \    Write_Bare_Ctrl_C
+    \    Write    exit
+    \    Close Connection
diff --git a/csit/suites/usc/__init__.robot b/csit/suites/usc/__init__.robot
new file mode 100644 (file)
index 0000000..89a87eb
--- /dev/null
@@ -0,0 +1,4 @@
+*** Settings ***
+Suite Setup       Download Tools
+Suite Teardown    Close Download Connection
+Resource          ../../libraries/UscUtils.robot
diff --git a/csit/suites/usc/tcp/100__basic.robot b/csit/suites/usc/tcp/100__basic.robot
new file mode 100644 (file)
index 0000000..0619a1e
--- /dev/null
@@ -0,0 +1,21 @@
+*** Settings ***
+Documentation     Test suite for quicking testing if the environme setup is correct
+Suite Setup       Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
+Suite Teardown    Delete All Sessions
+Default Tags      TCP_BASIC
+Library           Collections
+Library           OperatingSystem
+Library           RequestsLibrary
+Library           json
+Variables         ../../../variables/Variables.py
+Resource          ../../../libraries/UscUtils.robot
+
+*** Test Cases ***
+View Channel
+    ${topo}    Create Dictionary    topology-id=usc
+    ${input}    Create Dictionary    input=${topo}
+    ${data}    json.dumps    ${input}
+    ${resp}    Post Request    session    ${REST_VIEW_CHANNEL}    data=${data}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    "topology"
diff --git a/csit/suites/usc/tcp/110_TCP/Test.robot b/csit/suites/usc/tcp/110_TCP/Test.robot
new file mode 100644 (file)
index 0000000..1f1d28a
--- /dev/null
@@ -0,0 +1,72 @@
+*** Settings ***
+Documentation     Test suite for an USC TLS channel
+Suite Setup       Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
+Suite Teardown    Delete All Sessions
+Library           Collections
+Library           OperatingSystem
+Library           SSHLibrary
+Library           RequestsLibrary
+Library           json
+Library           ../../../../libraries/Common.py
+Variables         ../../../../variables/Variables.py
+Resource          ../../../../libraries/UscUtils.robot
+
+*** Test Cases ***
+Add Channel
+    [Documentation]    Add an USC TLS channel
+    ${content}    Create Dictionary    hostname=${TOOLS_SYSTEM_IP}    tcp=true    port=${ECHO_SERVER_PORT}    remote=false
+    ${channel}    Create Dictionary    channel=${content}
+    ${input}    Create Dictionary    input=${channel}
+    ${data}    json.dumps    ${input}
+    ${resp}    Post Request    session    ${REST_ADD_CHANNEL}    data=${data}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    Succeed to connect
+
+Check added Channel
+    [Documentation]    Check if the channel is correct
+    ${topo}    Create Dictionary    topology-id=usc
+    ${input}    Create Dictionary    input=${topo}
+    ${data}    json.dumps    ${input}
+    ${resp}    Post Request    session    ${REST_VIEW_CHANNEL}    data=${data}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    topology
+    Should Contain    ${resp.content}    "sessions":1
+    Should Contain    ${resp.content}    "channel-type":"TLS"
+
+Send Messages
+    [Documentation]    Send test messages multiple times to multiple sessions
+    ${content}    Create Dictionary    hostname=${TOOLS_SYSTEM_IP}    port=${ECHO_SERVER_PORT}    tcp=true    content=${TEST_MESSAGE}
+    ${channel}    Create Dictionary    channel=${content}
+    ${input}    Create Dictionary    input=${channel}
+    : FOR    ${index}    IN RANGE    0    ${NUM_OF_MESSAGES}
+    \    ${data}    json.dumps    ${input}
+    \    ${resp}    Post Request    session    ${REST_SEND_MESSAGE}    data=${data}
+    \    Should Be Equal As Strings    ${resp.status_code}    200
+    \    Should Contain    ${resp.content}    Succeed to send request
+
+View Bytes In and Bytes Out
+    [Documentation]    Check if the number of Bytes In and Bytes Out are correct
+    ${topo}    Create Dictionary    topology-id=usc
+    ${input}    Create Dictionary    input=${topo}
+    ${data}    json.dumps    ${input}
+    ${resp}    Post Request    session    ${REST_VIEW_CHANNEL}    data=${data}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    topology
+    ${len}    Get Length    ${TEST_MESSAGE}
+    ${totalLen}    Evaluate    ${len} * ${NUM_OF_MESSAGES}
+    Should Contain    ${resp.content}    "bytes-out":${totalLen}
+    Should Contain    ${resp.content}    "bytes-in":${totalLen}
+
+Remove Channel
+    [Documentation]    Remove the channel
+    ${content}    Create Dictionary    hostname=${TOOLS_SYSTEM_IP}    port=${ECHO_SERVER_PORT}    tcp=true
+    ${channel}    Create Dictionary    channel=${content}
+    ${input}    Create Dictionary    input=${channel}
+    ${data}    json.dumps    ${input}
+    ${resp}    Post Request    session    ${REST_REMOVE_CHANNEL}    data=${data}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    Succeed to remove
diff --git a/csit/suites/usc/tcp/110_TCP/__init__.robot b/csit/suites/usc/tcp/110_TCP/__init__.robot
new file mode 100644 (file)
index 0000000..59a7e95
--- /dev/null
@@ -0,0 +1,9 @@
+*** Settings ***
+Documentation     Test suite for an USC TLS channel
+Suite Setup       Start TCP
+Suite Teardown    Stop Agent_Echo
+Resource          ../../../../libraries/UscUtils.robot
+
+*** Variables ***
+
+*** Keywords ***
diff --git a/csit/suites/usc/tcp/200_Multiple_Sessions_TCP/Test.robot b/csit/suites/usc/tcp/200_Multiple_Sessions_TCP/Test.robot
new file mode 100644 (file)
index 0000000..a7f2e4d
--- /dev/null
@@ -0,0 +1,84 @@
+*** Settings ***
+Documentation     Test suite for multiple sessions in an USC TLS channel
+Suite Setup       Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
+Suite Teardown    Delete All Sessions
+Library           Collections
+Library           OperatingSystem
+Library           SSHLibrary
+Library           RequestsLibrary
+Library           json
+Library           ../../../../libraries/Common.py
+Variables         ../../../../variables/Variables.py
+Resource          ../../../../libraries/UscUtils.robot
+
+*** Variables ***
+
+*** Test Cases ***
+Add Channel
+    [Documentation]    Add multiple USC TLS channels
+    : FOR    ${port_index}    IN    @{LIST_ECHO_SERVER_PORT}
+    \    ${content}    Create Dictionary    hostname=${TOOLS_SYSTEM_IP}    port=${port_index}    tcp=true    remote=false
+    \    ${channel}    Create Dictionary    channel=${content}
+    \    ${input}    Create Dictionary    input=${channel}
+    \    ${data}    json.dumps    ${input}
+    \    ${resp}    Post Request    session    ${REST_ADD_CHANNEL}    data=${data}
+    \    Log    ${resp.content}
+    \    Should Be Equal As Strings    ${resp.status_code}    200
+    \    Should Contain    ${resp.content}    Succeed to connect
+
+Check added Channel
+    [Documentation]    Check if the channels are correct
+    ${topo}    Create Dictionary    topology-id=usc
+    ${input}    Create Dictionary    input=${topo}
+    ${data}    json.dumps    ${input}
+    ${resp}    Post Request    session    ${REST_VIEW_CHANNEL}    data=${data}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    "topology"
+    ${len}    Get Length    ${LIST_ECHO_SERVER_PORT}
+    Should Contain    ${resp.content}    "sessions":${len}
+    Should Contain    ${resp.content}    "channel-type":"TLS"
+
+Send Messages
+    [Documentation]    Send test messages multiple times
+    : FOR    ${port_index}    IN    @{LIST_ECHO_SERVER_PORT}
+    \    ${content}    Create Dictionary    hostname=${TOOLS_SYSTEM_IP}    port=${port_index}    tcp=true    content=${TEST_MESSAGE}
+    \    ${channel}    Create Dictionary    channel=${content}
+    \    ${input}    Create Dictionary    input=${channel}
+    \    Send Now    ${input}
+
+View Bytes In and Bytes Out
+    [Documentation]    Check if the number of Bytes In and Bytes Out are correct
+    ${topo}    Create Dictionary    topology-id=usc
+    ${input}    Create Dictionary    input=${topo}
+    ${data}    json.dumps    ${input}
+    ${resp}    Post Request    session    ${REST_VIEW_CHANNEL}    data=${data}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    "topology"
+    ${len1}    Get Length    ${LIST_ECHO_SERVER_PORT}
+    ${len2}    Get Length    ${TEST_MESSAGE}
+    ${totalLen}    Evaluate    ${len1} * ${len2} * ${NUM_OF_MESSAGES}
+    Should Contain    ${resp.content}    "bytes-out":${totalLen}
+    Should Contain    ${resp.content}    "bytes-in":${totalLen}
+
+Remove Channel
+    [Documentation]    Remove the channels
+    : FOR    ${port_index}    IN    @{LIST_ECHO_SERVER_PORT}
+    \    ${content}    Create Dictionary    hostname=${TOOLS_SYSTEM_IP}    port=${port_index}    tcp=true
+    \    ${channel}    Create Dictionary    channel=${content}
+    \    ${input}    Create Dictionary    input=${channel}
+    \    ${data}    json.dumps    ${input}
+    \    ${resp}    Post Request    session    ${REST_REMOVE_CHANNEL}    data=${data}
+    \    Log    ${resp.content}
+    \    Should Be Equal As Strings    ${resp.status_code}    200
+    \    Should Contain    ${resp.content}    Succeed to remove
+
+*** Keywords ***
+Send Now
+    [Arguments]    ${body}
+    : FOR    ${index}    IN RANGE    0    ${NUM_OF_MESSAGES}
+    \    ${data}    json.dumps    ${body}
+    \    ${resp}    Post Request    session    ${REST_SEND_MESSAGE}    data=${data}
+    \    Should Be Equal As Strings    ${resp.status_code}    200
+    \    Should Contain    ${resp.content}    Succeed to send request
diff --git a/csit/suites/usc/tcp/200_Multiple_Sessions_TCP/__init__.robot b/csit/suites/usc/tcp/200_Multiple_Sessions_TCP/__init__.robot
new file mode 100644 (file)
index 0000000..829b429
--- /dev/null
@@ -0,0 +1,10 @@
+*** Settings ***
+Documentation     Test suite for multiple sessions in an USC TLS channel
+Suite Setup       Start Multiple_Sessions_TCP
+Suite Teardown    Stop One_Agent_Multiple_Echo
+Force Tags        Multiple Sessions TCP
+Resource          ../../../../libraries/UscUtils.robot
+
+*** Variables ***
+
+*** Keywords ***
diff --git a/csit/suites/usc/tcp/300_Callhome_TCP/__init__.robot b/csit/suites/usc/tcp/300_Callhome_TCP/__init__.robot
new file mode 100644 (file)
index 0000000..eec604c
--- /dev/null
@@ -0,0 +1,9 @@
+*** Settings ***
+Documentation     Test suite for callhome TLS channel
+Suite Setup       Start CALLHOME_TCP
+Suite Teardown    Stop Agent_Echo
+Resource          ../../../../libraries/UscUtils.robot
+
+*** Variables ***
+
+*** Keywords ***
diff --git a/csit/suites/usc/tcp/300_Callhome_TCP/test.robot b/csit/suites/usc/tcp/300_Callhome_TCP/test.robot
new file mode 100644 (file)
index 0000000..7c54734
--- /dev/null
@@ -0,0 +1,73 @@
+*** Settings ***
+Documentation     Test suite for callhome TLS channel
+Suite Setup       Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
+Suite Teardown    Delete All Sessions
+Library           Collections
+Library           OperatingSystem
+Library           SSHLibrary
+Library           RequestsLibrary
+Library           json
+Library           ../../../../libraries/Common.py
+Variables         ../../../../variables/Variables.py
+Resource          ../../../../libraries/UscUtils.robot
+
+*** Test Cases ***
+Add Channel
+    [Documentation]    Add an USC TLS callhome channel
+    ${content}    Create Dictionary    hostname=${TOOLS_SYSTEM_IP}    tcp=true    port=${ECHO_SERVER_PORT}    remote=false
+    ${channel}    Create Dictionary    channel=${content}
+    ${input}    Create Dictionary    input=${channel}
+    ${data}    json.dumps    ${input}
+    ${resp}    Post Request    session    ${REST_ADD_CHANNEL}    data=${data}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    Succeed to connect
+
+Check added Channel
+    [Documentation]    Check if the channel is correct
+    ${topo}    Create Dictionary    topology-id=usc
+    ${input}    Create Dictionary    input=${topo}
+    ${data}    json.dumps    ${input}
+    ${resp}    Post Request    session    ${REST_VIEW_CHANNEL}    data=${data}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    "topology"
+    Should Contain    ${resp.content}    "sessions":1
+    Should Contain    ${resp.content}    "channel-type":"TLS"
+    Should Contain    ${resp.content}    "call-home":"CallHome"
+
+Send Messages
+    [Documentation]    Send test messages multiple times
+    ${content}    Create Dictionary    hostname=${TOOLS_SYSTEM_IP}    port=${ECHO_SERVER_PORT}    tcp=true    content=${TEST_MESSAGE}
+    ${channel}    Create Dictionary    channel=${content}
+    ${input}    Create Dictionary    input=${channel}
+    : FOR    ${index}    IN RANGE    0    ${NUM_OF_MESSAGES}
+    \    ${data}    json.dumps    ${input}
+    \    ${resp}    Post Request    session    ${REST_SEND_MESSAGE}    data=${data}
+    \    Should Be Equal As Strings    ${resp.status_code}    200
+    \    Should Contain    ${resp.content}    Succeed to send request
+
+View Bytes In and Bytes Out
+    [Documentation]    Check if the number of Bytes In and Bytes Out are correct
+    ${topo}    Create Dictionary    topology-id=usc
+    ${input}    Create Dictionary    input=${topo}
+    ${data}    json.dumps    ${input}
+    ${resp}    Post Request    session    ${REST_VIEW_CHANNEL}    data=${data}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    "topology"
+    ${len}    Get Length    ${TEST_MESSAGE}
+    ${totalLen}    Evaluate    ${len} * ${NUM_OF_MESSAGES}
+    Should Contain    ${resp.content}    "bytes-out":${totalLen}
+    Should Contain    ${resp.content}    "bytes-in":${totalLen}
+
+Remove Channel
+    [Documentation]    Remove the channel
+    ${content}    Create Dictionary    hostname=${TOOLS_SYSTEM_IP}    port=${ECHO_SERVER_PORT}    tcp=true
+    ${channel}    Create Dictionary    channel=${content}
+    ${input}    Create Dictionary    input=${channel}
+    ${data}    json.dumps    ${input}
+    ${resp}    Post Request    session    ${REST_REMOVE_CHANNEL}    data=${data}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    Succeed to remove
diff --git a/csit/suites/usc/tcp/__init__.robot b/csit/suites/usc/tcp/__init__.robot
new file mode 100644 (file)
index 0000000..b49d8ea
--- /dev/null
@@ -0,0 +1,2 @@
+*** Settings ***
+Force Tags        TCP
diff --git a/csit/suites/usc/udp/110_UDP/Test.robot b/csit/suites/usc/udp/110_UDP/Test.robot
new file mode 100644 (file)
index 0000000..eeb3bd2
--- /dev/null
@@ -0,0 +1,72 @@
+*** Settings ***
+Documentation     Test suite for an USC DTLS channel
+Suite Setup       Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
+Suite Teardown    Delete All Sessions
+Test Timeout      1min
+Library           Collections
+Library           OperatingSystem
+Library           RequestsLibrary
+Library           json
+Library           ../../../../libraries/Common.py
+Variables         ../../../../variables/Variables.py
+Resource          ../../../../libraries/UscUtils.robot
+
+*** Test Cases ***
+Add Channel
+    [Documentation]    Add an USC DTLS channel
+    ${content}    Create Dictionary    hostname=${TOOLS_SYSTEM_IP}    tcp=false    port=${ECHO_SERVER_PORT}    remote=false
+    ${channel}    Create Dictionary    channel=${content}
+    ${input}    Create Dictionary    input=${channel}
+    ${data}    json.dumps    ${input}
+    ${resp}    Post Request    session    ${REST_ADD_CHANNEL}    data=${data}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    Succeed to connect
+
+Check added Channel
+    [Documentation]    Check if the channel is correct
+    ${topo}    Create Dictionary    topology-id=usc
+    ${input}    Create Dictionary    input=${topo}
+    ${data}    json.dumps    ${input}
+    ${resp}    Post Request    session    ${REST_VIEW_CHANNEL}    data=${data}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    "topology"
+    Should Contain    ${resp.content}    "sessions":1
+    Should Contain    ${resp.content}    "channel-type":"DTLS"
+
+Send Messages
+    [Documentation]    Send test messages multiple times to multiple sessions
+    ${content}    Create Dictionary    hostname=${TOOLS_SYSTEM_IP}    port=${ECHO_SERVER_PORT}    tcp=false    content=${TEST_MESSAGE}
+    ${channel}    Create Dictionary    channel=${content}
+    ${input}    Create Dictionary    input=${channel}
+    : FOR    ${index}    IN RANGE    0    ${NUM_OF_MESSAGES}
+    \    ${data}    json.dumps    ${input}
+    \    ${resp}    Post Request    session    ${REST_SEND_MESSAGE}    data=${data}
+    \    Should Be Equal As Strings    ${resp.status_code}    200
+    \    Should Contain    ${resp.content}    Succeed to send request
+
+View Bytes In and Bytes Out
+    [Documentation]    Check if the number of Bytes In and Bytes Out are correct
+    ${topo}    Create Dictionary    topology-id=usc
+    ${input}    Create Dictionary    input=${topo}
+    ${data}    json.dumps    ${input}
+    ${resp}    Post Request    session    ${REST_VIEW_CHANNEL}    data=${data}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    "topology"
+    ${len}    Get Length    ${TEST_MESSAGE}
+    ${totalLen}    Evaluate    ${len} * ${NUM_OF_MESSAGES}
+    Should Contain    ${resp.content}    "bytes-out":${totalLen}
+    Should Contain    ${resp.content}    "bytes-in":${totalLen}
+
+Remove Channel
+    [Documentation]    Remove the channel
+    ${content}    Create Dictionary    hostname=${TOOLS_SYSTEM_IP}    port=${ECHO_SERVER_PORT}    tcp=false
+    ${channel}    Create Dictionary    channel=${content}
+    ${input}    Create Dictionary    input=${channel}
+    ${data}    json.dumps    ${input}
+    ${resp}    Post Request    session    ${REST_REMOVE_CHANNEL}    data=${data}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    Succeed to remove
diff --git a/csit/suites/usc/udp/110_UDP/__init__.robot b/csit/suites/usc/udp/110_UDP/__init__.robot
new file mode 100644 (file)
index 0000000..8c0ccfb
--- /dev/null
@@ -0,0 +1,10 @@
+*** Settings ***
+Documentation     Test suite for an USC DTLS channel
+Suite Setup       Start UDP
+Suite Teardown    Stop Agent_Echo
+Force Tags        110_UDP
+Resource          ../../../../libraries/UscUtils.robot
+
+*** Variables ***
+
+*** Keywords ***
diff --git a/csit/suites/usc/udp/200_Multiple_Sessions_UDP/Test.robot b/csit/suites/usc/udp/200_Multiple_Sessions_UDP/Test.robot
new file mode 100644 (file)
index 0000000..aa7e4a0
--- /dev/null
@@ -0,0 +1,86 @@
+*** Settings ***
+Documentation     Test suite for multiple sessions in an USC TLS channel
+Suite Setup       Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
+Suite Teardown    Delete All Sessions
+Test Timeout      1min
+Library           Collections
+Library           OperatingSystem
+Library           SSHLibrary
+Library           RequestsLibrary
+Library           json
+Library           ../../../../libraries/Common.py
+Variables         ../../../../variables/Variables.py
+Resource          ../../../../libraries/UscUtils.robot
+
+*** Variables ***
+
+*** Test Cases ***
+Add Channel
+    [Documentation]    Add multiple USC DTLS channels
+    : FOR    ${port_index}    IN    @{LIST_ECHO_SERVER_PORT}
+    \    ${content}    Create Dictionary    hostname=${TOOLS_SYSTEM_IP}    port=${port_index}    tcp=false    remote=false
+    \    ${channel}    Create Dictionary    channel=${content}
+    \    ${input}    Create Dictionary    input=${channel}
+    \    ${data}    json.dumps    ${input}
+    \    ${resp}    Post Request    session    ${REST_ADD_CHANNEL}    data=${data}
+    \    Log    ${resp.content}
+    \    Should Be Equal As Strings    ${resp.status_code}    200
+    \    Should Contain    ${resp.content}    Succeed to connect
+
+Check added Channel
+    [Documentation]    Check if the channels are correct
+    ${topo}    Create Dictionary    topology-id=usc
+    ${input}    Create Dictionary    input=${topo}
+    ${data}    json.dumps    ${input}
+    ${resp}    Post Request    session    ${REST_VIEW_CHANNEL}    data=${data}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    "topology"
+    ${len}    Get Length    ${LIST_ECHO_SERVER_PORT}
+    Should Contain    ${resp.content}    "sessions":${len}
+    Should Contain    ${resp.content}    "channel-type":"DTLS"
+
+Send Messages
+    [Documentation]    Send test messages multiple times
+    : FOR    ${port_index}    IN    @{LIST_ECHO_SERVER_PORT}
+    \    ${content}    Create Dictionary    hostname=${TOOLS_SYSTEM_IP}    port=${port_index}    tcp=false    content=${TEST_MESSAGE}
+    \    ${channel}    Create Dictionary    channel=${content}
+    \    ${input}    Create Dictionary    input=${channel}
+    \    Send Now    ${input}
+
+View Bytes In and Bytes Out
+    [Documentation]    Check if the number of Bytes In and Bytes Out are correct
+    ${topo}    Create Dictionary    topology-id=usc
+    ${input}    Create Dictionary    input=${topo}
+    ${data}    json.dumps    ${input}
+    ${resp}    Post Request    session    ${REST_VIEW_CHANNEL}    data=${data}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    "topology"
+    ${len}    Get Length    ${TEST_MESSAGE}
+    ${len1}    Get Length    ${LIST_ECHO_SERVER_PORT}
+    ${len2}    Get Length    ${TEST_MESSAGE}
+    ${totalLen}    Evaluate    ${len1} * ${len2} * ${NUM_OF_MESSAGES}
+    Should Contain    ${resp.content}    "bytes-out":${totalLen}
+    Should Contain    ${resp.content}    "bytes-in":${totalLen}
+
+Remove Channel
+    [Documentation]    Remove the channels
+    : FOR    ${port_index}    IN    @{LIST_ECHO_SERVER_PORT}
+    \    ${content}    Create Dictionary    hostname=${TOOLS_SYSTEM_IP}    port=${port_index}    tcp=false
+    \    ${channel}    Create Dictionary    channel=${content}
+    \    ${input}    Create Dictionary    input=${channel}
+    \    ${data}    json.dumps    ${input}
+    \    ${resp}    Post Request    session    ${REST_REMOVE_CHANNEL}    data=${data}
+    \    Log    ${resp.content}
+    \    Should Be Equal As Strings    ${resp.status_code}    200
+    \    Should Contain    ${resp.content}    Succeed to remove
+
+*** Keywords ***
+Send Now
+    [Arguments]    ${body}
+    : FOR    ${index}    IN RANGE    0    ${NUM_OF_MESSAGES}
+    \    ${data}    json.dumps    ${body}
+    \    ${resp}    Post Request    session    ${REST_SEND_MESSAGE}    data=${data}
+    \    Should Be Equal As Strings    ${resp.status_code}    200
+    \    Should Contain    ${resp.content}    Succeed to send request
diff --git a/csit/suites/usc/udp/200_Multiple_Sessions_UDP/__init__.robot b/csit/suites/usc/udp/200_Multiple_Sessions_UDP/__init__.robot
new file mode 100644 (file)
index 0000000..1e8623e
--- /dev/null
@@ -0,0 +1,10 @@
+*** Settings ***
+Documentation     Test suite for multiple sessions in an USC DTLS channel
+Suite Setup       Start Multiple_Sessions_UDP
+Suite Teardown    Stop One_Agent_Multiple_Echo
+Force Tags        Multiple_Sessions_UDP
+Resource          ../../../../libraries/UscUtils.robot
+
+*** Variables ***
+
+*** Keywords ***
diff --git a/csit/suites/usc/udp/300_Callhome_UDP/Test.robot b/csit/suites/usc/udp/300_Callhome_UDP/Test.robot
new file mode 100644 (file)
index 0000000..6f948d3
--- /dev/null
@@ -0,0 +1,74 @@
+*** Settings ***
+Documentation     Test suite for callhome DTLS channel
+Suite Setup       Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS}
+Suite Teardown    Delete All Sessions
+Test Timeout      1 minute
+Library           Collections
+Library           OperatingSystem
+Library           SSHLibrary
+Library           RequestsLibrary
+Library           json
+Library           ../../../../libraries/Common.py
+Variables         ../../../../variables/Variables.py
+Resource          ../../../../libraries/UscUtils.robot
+
+*** Test Cases ***
+Add Channel
+    [Documentation]    Add an USC TLS callhome channel
+    ${content}    Create Dictionary    hostname=${TOOLS_SYSTEM_IP}    tcp=false    port=${ECHO_SERVER_PORT}    remote=false
+    ${channel}    Create Dictionary    channel=${content}
+    ${input}    Create Dictionary    input=${channel}
+    ${data}    json.dumps    ${input}
+    ${resp}    Post Request    session    ${REST_ADD_CHANNEL}    data=${data}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    Succeed to connect
+
+Check added Channel
+    [Documentation]    Check if the channel is correct
+    ${topo}    Create Dictionary    topology-id=usc
+    ${input}    Create Dictionary    input=${topo}
+    ${data}    json.dumps    ${input}
+    ${resp}    Post Request    session    ${REST_VIEW_CHANNEL}    data=${data}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    "topology"
+    Should Contain    ${resp.content}    "sessions":1
+    Should Contain    ${resp.content}    "channel-type":"DTLS"
+    Should Contain    ${resp.content}    "call-home":"CallHome"
+
+Send Messages
+    [Documentation]    Send test messages multiple times
+    ${content}    Create Dictionary    hostname=${TOOLS_SYSTEM_IP}    port=${ECHO_SERVER_PORT}    tcp=false    content=${TEST_MESSAGE}
+    ${channel}    Create Dictionary    channel=${content}
+    ${input}    Create Dictionary    input=${channel}
+    : FOR    ${index}    IN RANGE    0    ${NUM_OF_MESSAGES}
+    \    ${data}    json.dumps    ${input}
+    \    ${resp}    Post Request    session    ${REST_SEND_MESSAGE}    data=${data}
+    \    Should Be Equal As Strings    ${resp.status_code}    200
+    \    Should Contain    ${resp.content}    Succeed to send request
+
+View Bytes In and Bytes Out
+    [Documentation]    Check if the number of Bytes In and Bytes Out are correct
+    ${topo}    Create Dictionary    topology-id=usc
+    ${input}    Create Dictionary    input=${topo}
+    ${data}    json.dumps    ${input}
+    ${resp}    Post Request    session    ${REST_VIEW_CHANNEL}    data=${data}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    "topology"
+    ${len}    Get Length    ${TEST_MESSAGE}
+    ${totalLen}    Evaluate    ${len} * ${NUM_OF_MESSAGES}
+    Should Contain    ${resp.content}    "bytes-out":${totalLen}
+    Should Contain    ${resp.content}    "bytes-in":${totalLen}
+
+Remove Channel
+    [Documentation]    Remove the channel
+    ${content}    Create Dictionary    hostname=${TOOLS_SYSTEM_IP}    port=${ECHO_SERVER_PORT}    tcp=false
+    ${channel}    Create Dictionary    channel=${content}
+    ${input}    Create Dictionary    input=${channel}
+    ${data}    json.dumps    ${input}
+    ${resp}    Post Request    session    ${REST_REMOVE_CHANNEL}    data=${data}
+    Log    ${resp.content}
+    Should Be Equal As Strings    ${resp.status_code}    200
+    Should Contain    ${resp.content}    Succeed to remove
diff --git a/csit/suites/usc/udp/300_Callhome_UDP/__init__.robot b/csit/suites/usc/udp/300_Callhome_UDP/__init__.robot
new file mode 100644 (file)
index 0000000..e0ae8b5
--- /dev/null
@@ -0,0 +1,10 @@
+*** Settings ***
+Documentation     Test suite for callhome DTLS channel
+Suite Setup       Start CALLHOME_UDP
+Suite Teardown    Stop Agent_Echo
+Force Tags        UDP_CALLHOME
+Resource          ../../../../libraries/UscUtils.robot
+
+*** Variables ***
+
+*** Keywords ***
diff --git a/csit/suites/usc/udp/__init__.robot b/csit/suites/usc/udp/__init__.robot
new file mode 100644 (file)
index 0000000..5a93cb1
--- /dev/null
@@ -0,0 +1,2 @@
+*** Settings ***
+Force Tags        UDP