... This program and the accompanying materials are made available under the
... terms of the Eclipse Public License v1.0 which accompanies this distribution,
... and is available at http://www.eclipse.org/legal/epl-v10.html
-Library ${CURDIR}/../MdsalLowlevelPy.py
+Library Collections
Resource ${CURDIR}/../MdsalLowlevel.robot
+Resource ${CURDIR}/../ScalarClosures.robot
+Resource ${CURDIR}/../WaitUtils.robot
*** Variables ***
${DNB_PUBLISHER_SUBSCRIBER_PAIR_RATE} ${5000}
... The test case itself firstly subscribe listeners, then run publishers and at the end unsubscribe listeners
... and check achieved rates.
BuiltIn.Log Overall requested rate: ${total_notification_rate}, test duration: ${test_duration_in_seconds} seconds.
+ WaitUtils.WU_Setup
${count} = BuiltIn.Set_variable ${0}
: FOR ${suffix} IN RANGE ${DNB_PUBLISHER_SUBSCRIBER_PAIR_RATE} ${total_notification_rate}+1 ${DNB_PUBLISHER_SUBSCRIBER_PAIR_RATE}
\ ${count} = BuiltIn.Evaluate ${count}+1
\ MdsalLowlevel.Subscribe_Ynl ${DNB_TESTED_MEMBER_INDEX} ${DNB_PUBLISHER_LISTENER_PREFIX}${count}
${count} = BuiltIn.Convert_To_Integer ${count}
- MdsalLowlevelPy.Publish_Notifications ${ODL_SYSTEM_${DNB_TESTED_MEMBER_INDEX}_IP} ${DNB_PUBLISHER_LISTENER_PREFIX} ${test_duration_in_seconds} ${DNB_PUBLISHER_SUBSCRIBER_PAIR_RATE} nrpairs=${count}
+ : FOR ${index} IN RANGE 1 ${count}+1
+ \ MdsalLowlevel.Start_Publish_Notifications ${DNB_TESTED_MEMBER_INDEX} ${DNB_PUBLISHER_LISTENER_PREFIX}${index} ${test_duration_in_seconds} ${DNB_PUBLISHER_SUBSCRIBER_PAIR_RATE}
+ ${getter} = ScalarClosures.Closure_From_Keyword_And_Arguments Get_Notifications_Active_Status ${DNB_TESTED_MEMBER_INDEX} ${count}
+ ${validator} = ScalarClosures.Closure_From_Keyword_And_Arguments Check_Notifications_Active_Status data_holder
+ ${validation_timeout} = BuiltIn.Evaluate ${test_duration_in_seconds}+${60}
+ WaitUtils.Wait_For_Getter_Failure_Or_Stateless_Validator_Pass timeout=${validation_timeout} period=15s getter=${getter} stateless_validator=${validator}
${sum_local_number} BuiltIn.Set_Variable ${0}
${low_limit_pair_rate} = BuiltIn.Evaluate 0.9*${DNB_PUBLISHER_SUBSCRIBER_PAIR_RATE}
${high_limit_pair_rate} = BuiltIn.Evaluate 1.1*${DNB_PUBLISHER_SUBSCRIBER_PAIR_RATE}
${high_limit_final_rate} = BuiltIn.Evaluate 1.1*${total_notification_rate}
BuiltIn.Should_Be_True ${final_rate} > ${low_limit_final_rate}
BuiltIn.Should_Be_True ${final_rate} < ${high_limit_final_rate}
+
+Get_Notifications_Active_Status
+ [Arguments] ${node_to_ask} ${nr_pairs}
+ ${active_list} = BuiltIn.Create_List
+ : FOR ${index} IN RANGE 1 ${nr_pairs}+1
+ \ ${active} ${publ_count} ${last_error} MdsalLowlevel.Check_Publish_Notifications ${node_to_ask} ${DNB_PUBLISHER_LISTENER_PREFIX}${index}
+ \ Collections.Append_To_List ${active_list} ${active}
+ \ BuiltIn.Should_Be_Equal ${EMPTY} ${last_error}
+ BuiltIn.Return_From_Keyword ${active_list}
+
+Check_Notifications_Active_Status
+ [Arguments] ${active_list}
+ : FOR ${active} IN @{active_list}
+ \ BuiltIn.Should_Be_Equal ${False} ${active}