X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=csit%2Flibraries%2Fcontroller%2FDnbCommons.robot;h=01308dab806836f89543bdda8929226920086278;hb=7de9860fb6459cc5f64c59cc34c5e9191631bb03;hp=ab4a65df0e99950723bcee4391fd0c29e490a8f8;hpb=94651ca9711d8eb316721775561e815830bc6c7e;p=integration%2Ftest.git diff --git a/csit/libraries/controller/DnbCommons.robot b/csit/libraries/controller/DnbCommons.robot index ab4a65df0e..01308dab80 100644 --- a/csit/libraries/controller/DnbCommons.robot +++ b/csit/libraries/controller/DnbCommons.robot @@ -1,29 +1,38 @@ *** Settings *** -Documentation DOMNotificationBroker testing: Common keywords +Documentation DOMNotificationBroker testing: Common keywords ... -... Copyright (c) 2017 Cisco Systems, Inc. and others. All rights reserved. +... Copyright (c) 2017 Cisco Systems, Inc. and others. All rights reserved. ... -... 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 Collections -Resource ${CURDIR}/../MdsalLowlevel.robot -Resource ${CURDIR}/../ScalarClosures.robot -Resource ${CURDIR}/../WaitUtils.robot +... 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 Collections +Resource ${CURDIR}/../MdsalLowlevel.robot +Resource ${CURDIR}/../ScalarClosures.robot +Resource ${CURDIR}/../WaitUtils.robot + *** Variables *** -${DNB_PUBLISHER_SUBSCRIBER_PAIR_RATE} ${5000} -${DNB_PUBLISHER_LISTENER_PREFIX} working-pair- -${DNB_TESTED_MEMBER_INDEX} 1 +# There is half a megabyte of output.xml per check. +# Even with check period of 15 seconds that makes more than 2 GB of output, +# which is too much for processing into log.html (out of memory errors). +${DNB_CHECK_PERIOD_IN_SECONDS} 600 +${DNB_CHECK_TOLERANCE_IN_SECONDS} ${${DNB_CHECK_PERIOD_IN_SECONDS}*1.2} +${DNB_PUBLISHER_SUBSCRIBER_PAIR_RATE} ${5000} +${DNB_PUBLISHER_LISTENER_PREFIX} working-pair- +${DNB_TESTED_MEMBER_INDEX} 1 + *** Keywords *** Dom_Notification_Broker_Test_Templ - [Arguments] ${total_notification_rate} ${test_duration_in_seconds} [Documentation] Test case template. Input parameter ${total_notification_rate} determines, how many publisher/subscriber ... pais take part in the test case. For every ${DNB_PUBLISHER_SUBSCRIBER_PAIR_RATE} one pair is created. ... 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. + [Arguments] ${total_notification_rate} ${test_duration_in_seconds} + 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} @@ -32,17 +41,32 @@ Dom_Notification_Broker_Test_Templ END ${count} = BuiltIn.Convert_To_Integer ${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} + MdsalLowlevel.Start_Publish_Notifications + ... ${DNB_TESTED_MEMBER_INDEX} + ... ${DNB_PUBLISHER_LISTENER_PREFIX}${index} + ... ${test_duration_in_seconds} + ... ${DNB_PUBLISHER_SUBSCRIBER_PAIR_RATE} END - ${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} + ${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_in_seconds} = BuiltIn.Evaluate + ... ${test_duration_in_seconds}+${DNB_CHECK_TOLERANCE_IN_SECONDS} + WaitUtils.Wait_For_Getter_Failure_Or_Stateless_Validator_Pass + ... timeout=${validation_timeout_in_seconds}s + ... period=${DNB_CHECK_PERIOD_IN_SECONDS}s + ... 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} FOR ${index} IN RANGE 1 ${count}+1 - ${all_not} ${id_not} ${err_not} ${local_number} = MdsalLowlevel.Unsubscribe_Ynl ${DNB_TESTED_MEMBER_INDEX} + ${all_not} ${id_not} ${err_not} ${local_number} = MdsalLowlevel.Unsubscribe_Ynl + ... ${DNB_TESTED_MEMBER_INDEX} ... ${DNB_PUBLISHER_LISTENER_PREFIX}${index} BuiltIn.Should_Be_Equal_As_Numbers ${err_not} ${0} BuiltIn.Should_Not_Be_Equal_As_Numbers ${local_number} ${0} @@ -62,11 +86,13 @@ 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} + ${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} END - BuiltIn.Return_From_Keyword ${active_list} + RETURN ${active_list} Check_Notifications_Active_Status [Arguments] ${active_list}