--- /dev/null
+*** Settings ***
+Documentation Beta Version of the Longevity Test. Currently it does a single test:
+... 1. runs one iteration of the switch scale test based on ${NUM_SWITCHES}
+... Step 1 runs in a psuedo infinite loop and before each loop is
+... run, a time check is made against the ${TEST_LENGTH}. If the test duration
+... has expired, the loop is exited and the test is marked PASS
+...
+... If step 1 fails to reach their configured value of ${NUM_SWITCHES}
+... the test will exit immediately and not continue.
+Suite Setup Longevity Suite Setup
+Suite Teardown Longevity Suite Teardown
+Library RequestsLibrary
+Library DateTime
+Variables ../../../variables/Variables.py
+Resource ../../../libraries/Scalability.txt
+
+*** Variables ***
+${NUM_SWITCHES} 200
+${TEST_LENGTH} 2 hours
+
+
+*** Test Cases ***
+Longevity Test
+ [Documentation] Uses switch scalability test functionality in a loop for given period of time
+ # This loop is not infinite, so going "sufficiently large" for now.
+ : FOR ${i} IN RANGE 1 65536
+ \ ${expiration_flag}= Check If There Is A Reason To Exit Test Or If Duration Has Expired
+ \ Exit For Loop If "${expiration_flag}" == "True"
+ \ ${switch_count}= Find Max Switches ${NUM_SWITCHES} ${NUM_SWITCHES} ${NUM_SWITCHES}
+ \ Check If There Is A Reason To Exit Test Or If Duration Has Expired ${switch_count} ${NUM_SWITCHES} Switch count not correct
+
+*** Keywords ***
+Check If There Is A Reason To Exit Test Or If Duration Has Expired
+ [Documentation] In order to simplify the main test case, this keyword will make all the neccessary checks
+ ... to determine if the test should FAIL and quit because of some problem. It will also return a bool to
+ ... indicate if the requested duration of the longevity test has elapsed. The caller does not have to use
+ ... that return value.
+ [Arguments] ${comparator1}=1 ${comparator2}=1 ${comparator_failure_message}=null
+ Should Be Equal ${comparator1} ${comparator2} ${comparator_failure_message}
+ Verify Controller Is Not Dead ${CONTROLLER}
+ ${is_expired}= Check If Test Duration Is Expired
+ [Return] ${is_expired}
+
+Check If Test Duration Is Expired
+ [Documentation] Compares the current time with that of the suite variable ${end_time} to determine if the
+ ... test duration has expired.
+ ${test_is_expired}= Set Variable False
+ ${current_time}= Get Current Date
+ ${current_time}= Convert Date ${current_time} epoch
+ ${test_is_expired}= Set Variable If "${current_time}" > "${end_time}" True
+ [Return] ${test_is_expired}
+
+Longevity Suite Setup
+ [Documentation] In addtion to opening the REST session to the controller, the ${end_time} that this
+ ... test should not exceed is calculated and made in to a suite wide variable.
+ Create Session session http://${CONTROLLER}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS_XML}
+ ${start_time}= Get Current Date
+ ${end_time}= Add Time To Date ${start_time} ${TEST_LENGTH}
+ ${end_time}= Convert Date ${end_time} epoch
+ Set Suite Variable ${end_time}
+
+Longevity Suite Teardown
+ [Documentation] Any cleanup neccessary to allow this test to be run in a static environment should go here
+ ... Currently, the same steps needed for the scalability suites should suffice.
+ Scalability Suite Teardown
*** Settings ***
Documentation Beta Version of the Longevity Test. Currently:
... 1. runs one iteration of the switch scale test based on ${NUM_SWITCHES}
-... 2. runs one iteration of the host scale test based on ${NUM_HOSTS}
+... 2. runs one iteration of the link scale test based on ${NUM_LINKS}
... Steps 1 and 2 are run in a psuedo infinite loop and before each loop is
... run, a time check is made against the ${TEST_LENGTH}. If the test duration
... has expired, the loop is exited and the test is marked PASS
...
... If either of steps 1 or 2 fail to reach their configured value of ${NUM_SWITCHES}
-... or ${NUM_HOSTS} the test will exit immediately and not continue.
+... or ${NUM_LINKS} the test will exit immediately and not continue.
Suite Setup Longevity Suite Setup
Suite Teardown Longevity Suite Teardown
Library RequestsLibrary
Resource ../../../libraries/Scalability.txt
*** Variables ***
-${NUM_SWITCHES} 50
-${NUM_HOSTS} 200
+${NUM_SWITCHES} 200
+${NUM_LINKS} 20
${TEST_LENGTH} 2 hours
+
*** Test Cases ***
Longevity Test
- [Documentation] Uses switch and host scale test functionality in a loop for given period of time
+ [Documentation] Uses switch and link scale test functionality in a loop for given period of time
# This loop is not infinite, so going "sufficiently large" for now.
: FOR ${i} IN RANGE 1 65536
\ ${expiration_flag}= Check If There Is A Reason To Exit Test Or If Duration Has Expired
\ Exit For Loop If "${expiration_flag}" == "True"
\ ${switch_count}= Find Max Switches ${NUM_SWITCHES} ${NUM_SWITCHES} ${NUM_SWITCHES}
\ Check If There Is A Reason To Exit Test Or If Duration Has Expired ${switch_count} ${NUM_SWITCHES} Switch count not correct
- \ ${host_count}= Find Max Hosts ${NUM_HOSTS} ${NUM_HOSTS} ${NUM_HOSTS}
- \ Check If There Is A Reason To Exit Test Or If Duration Has Expired ${host_count} ${NUM_HOSTS} Host count not correct
+ \ ${link_count}= Find Max Links ${NUM_LINKS} ${NUM_LINKS} ${NUM_LINKS}
+ \ Check If There Is A Reason To Exit Test Or If Duration Has Expired ${link_count} ${NUM_LINKS} Link count not correct
*** Keywords ***
Check If There Is A Reason To Exit Test Or If Duration Has Expired
[Documentation] In addtion to opening the REST session to the controller, the ${end_time} that this
... test should not exceed is calculated and made in to a suite wide variable.
Create Session session http://${CONTROLLER}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS_XML}
+ ${mininet_conn_id}= Open Connection ${MININET} prompt=${linux_prompt}
+ Login With Public Key ${MININET_USER} ${USER_HOME}/.ssh/id_rsa any
+ Log Copying ${CREATE_FULLYMESH_TOPOLOGY_FILE_PATH} file to Mininet VM
+ Put File ${CURDIR}/../../../${CREATE_FULLYMESH_TOPOLOGY_FILE_PATH}
+ Close Connection
${start_time}= Get Current Date
${end_time}= Add Time To Date ${start_time} ${TEST_LENGTH}
${end_time}= Convert Date ${end_time} epoch
Longevity Suite Teardown
[Documentation] Any cleanup neccessary to allow this test to be run in a static environment should go here
... Currently, the same steps needed for the scalability suites should suffice.
- Scalability Suite Teardown
\ No newline at end of file
+ Scalability Suite Teardown