New OpenFlow REST perf test
[integration/test.git] / csit / libraries / MininetKeywords.robot
index 186b9034cfda003f8c3528f95e5bce0641c3276b..9e2ae96330df5539954941ec615cfd0f088c4cde 100644 (file)
@@ -3,6 +3,7 @@ Documentation     Mininet library. This library is useful for tests using minine
 Library           SSHLibrary
 Resource          Utils.robot
 Resource          OVSDB.robot
+Resource          ClusterManagement.robot
 Variables         ../variables/Variables.py
 
 *** Keywords ***
@@ -23,8 +24,9 @@ Start Mininet Single Controller
     [Return]    ${mininet_conn_id}
 
 Start Mininet Multiple Controllers
-    [Arguments]    ${mininet}    ${controller_index_list}    ${options}=--topo tree,1 --switch ovsk,protocols=OpenFlow13    ${custom}=${EMPTY}    ${ofport}=6633
-    [Documentation]    Start Mininet with custom topology and connect to all controllers in the ${controller_index_list}.
+    [Arguments]    ${mininet}    ${controller_index_list}=${EMPTY}    ${options}=--topo tree,1 --switch ovsk,protocols=OpenFlow13    ${custom}=${EMPTY}    ${ofport}=${ODL_OF_PORT}
+    [Documentation]    Start Mininet with custom topology and connect to list of controllers in ${controller_index_list} or all if no list is provided.
+    ${index_list} =    ClusterManagement__Given_Or_Internal_Index_List    given_list=${controller_index_list}
     Log    Clear any existing mininet
     Utils.Clean Mininet System    ${mininet}
     ${mininet_conn_id}=    SSHLibrary.Open Connection    ${mininet}    prompt=${TOOLS_SYSTEM_PROMPT}    timeout=${DEFAULT_TIMEOUT}
@@ -36,7 +38,7 @@ Start Mininet Multiple Controllers
     SSHLibrary.Read Until    mininet>
     Log    Create controller configuration
     ${controller_opt}=    Set Variable
-    : FOR    ${index}    IN    @{controller_index_list}
+    : FOR    ${index}    IN    @{index_list}
     \    ${controller_opt}=    Catenate    ${controller_opt}    ${SPACE}tcp:${ODL_SYSTEM_${index}_IP}:${ofport}
     \    Log    ${controller_opt}
     Log    Find Number of OVS bridges
@@ -83,14 +85,15 @@ Stop Mininet And Exit Multiple Sessions
     \    MininetKeywords.Stop Mininet And Exit    ${mininet_conn_id}
 
 Verify Aggregate Flow From Mininet Session
-    [Arguments]    ${mininet_conn_id}    ${switch_count}    ${flow_count}    ${time_out}
+    [Arguments]    ${mininet_conn_id}    ${flow_count}    ${time_out}
     [Documentation]    Verify flow count per switch
-    Wait Until Keyword Succeeds    ${time_out}    2s    MininetKeywords.Mininet Sync Status    ${mininet_conn_id}    ${switch_count}    ${flow_count}
+    Wait Until Keyword Succeeds    ${time_out}    2s    MininetKeywords.Mininet Sync Status    ${mininet_conn_id}    ${flow_count}
 
 Mininet Sync Status
-    [Arguments]    ${mininet_id}    ${switch_count}    ${flow_count}
+    [Arguments]    ${mininet_id}    ${flow_count}
     [Documentation]    Sync with mininet to match exact number of flows
-    Set Test Variable    &{dictionary}    flow_count\=${flow_count}=${switch_count}
     ${cmd} =    Set Variable    dpctl dump-aggregate -O OpenFlow13
     ${output}=    MininetKeywords.Send Mininet Command    ${mininet_id}    ${cmd}
-    Utils.Check Item Occurrence    ${output}    ${dictionary}
+    ${flows}=    String.Get RegExp Matches    ${output}    (?<=flow_count\=).*?(?=\r)
+    ${total_flows}=    BuiltIn.Evaluate    sum(map(int, ${flows}))
+    Should Be Equal As Numbers    ${total_flows}    ${flow_count}