Add rpc longevity suites
[integration/test.git] / csit / suites / controller / dom_rpc_broker / rpc_provider_precedence_longevity.robot
1 *** Settings ***
2 Documentation     DOMRpcBroker testing: RPC Provider Precedence
3 ...
4 ...               Copyright (c) 2017 Cisco Systems, Inc. and others. All rights reserved.
5 ...
6 ...               This program and the accompanying materials are made available under the
7 ...               terms of the Eclipse Public License v1.0 which accompanies this distribution,
8 ...               and is available at http://www.eclipse.org/legal/epl-v10.html
9 ...
10 ...               The aim is to establish that remote RPC implementations have lower priority
11 ...               than local ones, which is to say that any movement of RPCs on remote nodes
12 ...               does not affect routing as long as a local implementation is available.
13 Suite Setup       Setup_Keyword
14 Suite Teardown    SSHLibrary.Close_All_Connections
15 Test Setup        SetupUtils.Setup_Test_With_Logging_And_Without_Fast_Failing
16 Test Teardown     SetupUtils.Teardown_Test_Show_Bugs_If_Test_Failed
17 Default Tags      critical
18 Library           SSHLibrary
19 Resource          ${CURDIR}/../../../libraries/controller/DrbCommons.robot
20 Resource          ${CURDIR}/../../../libraries/SetupUtils.robot
21 Resource          ${CURDIR}/../../../libraries/WaitForFailure.robot
22
23 *** Variables ***
24 ${DURATION_24_HOURS_IN_SECONDS}    86400
25
26 *** Test Cases ***
27 Rpc_Provider_Precedence_Longevity
28     WaitForFailure.Verify_Keyword_Does_Not_Fail_Within_Timeout    ${DURATION_24_HOURS_IN_SECONDS}    1s    Test_Scenario
29
30 *** Keywords ***
31 Setup_Keyword
32     [Documentation]    Create a list of possible constant responses on the node with unregistered rpc.
33     SetupUtils.Setup_Utils_For_Setup_And_Teardown
34     DrbCommons.DrbCommons_Init
35
36 Test_Scenario
37     DrbCommons.Register_Rpc_On_Nodes    ${all_indices}
38     ${unregistered_rpc_node} =    BuiltIn.Evaluate    random.choice(${all_indices})    modules=random
39     ${unregistered_rpc_node} =    BuiltIn.Convert_To_Integer    ${unregistered_rpc_node}
40     DrbCommons.Verify_Constant_On_Registered_Nodes    ${all_indices}
41     DrbCommons.Unregister_Rpc_And_Update_Possible_Constants    ${unregistered_rpc_node}
42     DrbCommons.Verify_Constant_On_Unregistered_Node    ${unregistered_rpc_node}
43     DrbCommons.Verify_Constant_On_Registered_Nodes    ${registered_indices}
44     DrbCommons.Register_Rpc_And_Update_Possible_Constants    ${unregistered_rpc_node}
45     DrbCommons.Verify_Constant_On_Registered_Nodes    ${all_indices}
46     DrbCommons.Unregister_Rpc_On_Nodes    ${all_indices}