Sridevi Ramesh | 0a7c0aa | 2017-06-26 13:03:02 -0500 | [diff] [blame] | 1 | *** Settings *** |
| 2 | Documentation This suite tests HOST watchdog timer in Open BMC. |
| 3 | |
| 4 | Resource ../lib/rest_client.robot |
| 5 | Resource ../lib/openbmc_ffdc.robot |
| 6 | Resource ../lib/utils.robot |
| 7 | Resource ../lib/resource.txt |
| 8 | Resource ../lib/boot_utils.robot |
George Keishing | 1be85f5 | 2017-10-30 00:56:17 -0500 | [diff] [blame] | 9 | Resource ../lib/state_manager.robot |
Sridevi Ramesh | 0a7c0aa | 2017-06-26 13:03:02 -0500 | [diff] [blame] | 10 | |
Steven Sombar | fac31e9 | 2017-12-15 09:40:34 -0600 | [diff] [blame] | 11 | Suite Setup Suite Setup Execution |
| 12 | Suite Teardown Suite Teardown Execution |
Sridevi Ramesh | 0a7c0aa | 2017-06-26 13:03:02 -0500 | [diff] [blame] | 13 | Test Teardown FFDC On Test Case Fail |
| 14 | |
| 15 | *** Variables *** |
| 16 | # "skip" boots that aren't needed to get to desired state. |
| 17 | ${stack_mode} skip |
| 18 | |
| 19 | *** Test Cases *** |
George Keishing | 98eaba2 | 2018-09-07 10:52:20 -0500 | [diff] [blame] | 20 | |
Sridevi Ramesh | 0a7c0aa | 2017-06-26 13:03:02 -0500 | [diff] [blame] | 21 | Verify Watchdog Setting With Watchdog Disabled |
| 22 | [Documentation] Disable watchdog timer and verify watchdog settings |
| 23 | ... i.e Enabled, Interval, TimeRemaining. |
| 24 | [Tags] Verify_Watchdog_Setting_With_Watchdog_Disabled |
| 25 | |
| 26 | ${initial_interval}= Read Attribute ${HOST_WATCH_DOG_URI} Interval |
| 27 | Set Watchdog Setting Using REST Enabled ${False} |
| 28 | |
| 29 | # Check if watchdog has default settings. |
| 30 | ${properties}= Read Properties /xyz/openbmc_project/watchdog/host0 |
George Keishing | 98eaba2 | 2018-09-07 10:52:20 -0500 | [diff] [blame] | 31 | Should Be Equal As Strings ${properties["Enabled"]} ${False} |
Sridevi Ramesh | 0a7c0aa | 2017-06-26 13:03:02 -0500 | [diff] [blame] | 32 | Should Be Equal As Strings ${properties["Interval"]} ${initial_interval} |
| 33 | Should Be Equal As Strings ${properties["TimeRemaining"]} 0 |
| 34 | |
George Keishing | 98eaba2 | 2018-09-07 10:52:20 -0500 | [diff] [blame] | 35 | |
Sridevi Ramesh | 0a7c0aa | 2017-06-26 13:03:02 -0500 | [diff] [blame] | 36 | Verify Watchdog Setting With Watchdog Enabled |
| 37 | [Documentation] Enable watchdog timer and check if host OS is rebooted |
| 38 | ... and verify hostdog settings are reset to default when |
| 39 | ... host OS is up. |
| 40 | [Tags] Verify_Watchdog_Setting_With_Watchdog_Enabled |
| 41 | |
| 42 | ${initial_interval}= Read Attribute ${HOST_WATCHDOG_URI} Interval |
| 43 | |
Sridevi Ramesh | d5f82ff | 2018-01-23 03:58:14 -0600 | [diff] [blame] | 44 | Trigger Host Watchdog Error 2000 30 |
Sridevi Ramesh | 0a7c0aa | 2017-06-26 13:03:02 -0500 | [diff] [blame] | 45 | |
George Keishing | 03c13a4 | 2017-11-24 10:52:11 -0600 | [diff] [blame] | 46 | Wait Until Keyword Succeeds 3 min 10 sec Watchdog Object Should Exist |
| 47 | |
Sridevi Ramesh | 0a7c0aa | 2017-06-26 13:03:02 -0500 | [diff] [blame] | 48 | # Verify if watchdog settings are enabled and timeremaining is reduced. |
Rahul Maheshwari | 3b3843e | 2018-11-15 04:38:04 -0600 | [diff] [blame] | 49 | Wait Until Keyword Succeeds 3 min 10 sec Verify Watchdog Enabled |
Sridevi Ramesh | 0a7c0aa | 2017-06-26 13:03:02 -0500 | [diff] [blame] | 50 | |
| 51 | Wait Until Keyword Succeeds 120 sec 20 sec Is Host Rebooted |
| 52 | Wait For Host To Ping ${OS_HOST} 5min 10 |
| 53 | Wait for OS |
| 54 | |
| 55 | # Check if watchdog settings are reset when host OS is up. |
| 56 | ${properties}= Read Properties /xyz/openbmc_project/watchdog/host0 |
George Keishing | 98eaba2 | 2018-09-07 10:52:20 -0500 | [diff] [blame] | 57 | Should Be Equal As Strings ${properties["Enabled"]} ${False} |
Sridevi Ramesh | 0a7c0aa | 2017-06-26 13:03:02 -0500 | [diff] [blame] | 58 | Should Be Equal As Strings ${properties["Interval"]} ${initial_interval} |
| 59 | Should Be Equal As Strings ${properties["TimeRemaining"]} 0 |
| 60 | |
George Keishing | 98eaba2 | 2018-09-07 10:52:20 -0500 | [diff] [blame] | 61 | |
Sridevi Ramesh | 0a7c0aa | 2017-06-26 13:03:02 -0500 | [diff] [blame] | 62 | Modify And Verify Watchdog Timer Interval |
| 63 | [Documentation] Modify and verify watchdog timer interval. |
| 64 | [Tags] Modify_And_Verify_Watchdog_Timer_Interval |
| 65 | [Teardown] Set Watchdog Setting Using REST Interval ${initial_interval} |
| 66 | |
| 67 | ${initial_interval}= Read Attribute ${HOST_WATCHDOG_URI} Interval |
| 68 | ${random_int}= Evaluate random.randint(10000, 20000) modules=random |
| 69 | Set Watchdog Setting Using REST Interval ${random_int} |
| 70 | ${modified_time_interval}= Read Attribute ${HOST_WATCHDOG_URI} Interval |
| 71 | Should Be Equal As Strings ${modified_time_interval} ${random_int} |
| 72 | |
George Keishing | 98eaba2 | 2018-09-07 10:52:20 -0500 | [diff] [blame] | 73 | |
Sridevi Ramesh | 0a7c0aa | 2017-06-26 13:03:02 -0500 | [diff] [blame] | 74 | Modify and verify Watchdog TimeRemaining |
| 75 | [Documentation] Modify and verify watchdog 'TimeRemaining'. |
| 76 | [Tags] Modify_And_Verify_Watchdog_TimeRemaining |
| 77 | |
| 78 | ${random_int}= Evaluate random.randint(10000, 20000) modules=random |
| 79 | Set Watchdog Setting Using REST TimeRemaining ${random_int} |
| 80 | ${modified_timeremain}= |
| 81 | ... Read Attribute ${HOST_WATCHDOG_URI} TimeRemaining |
| 82 | Should Not Be Equal As Strings ${random_int} ${modified_timeremain} |
| 83 | |
George Keishing | 98eaba2 | 2018-09-07 10:52:20 -0500 | [diff] [blame] | 84 | |
Sridevi Ramesh | 0a7c0aa | 2017-06-26 13:03:02 -0500 | [diff] [blame] | 85 | Verify Watchdog URL When Host Is On And Off |
| 86 | [Documentation] Verify watchdog URL when host is running |
| 87 | ... and when host is off. |
| 88 | [Tags] Verify_Watchdog_URL_When_Host_Is_On_And_Off |
| 89 | |
| 90 | ${resp}= OpenBMC Get Request ${HOST_WATCHDOG_URI} |
| 91 | Should Be Equal As Strings ${resp.status_code} ${HTTP_OK} |
| 92 | |
| 93 | REST Power Off |
| 94 | ${resp}= OpenBMC Get Request ${HOST_WATCHDOG_URI} |
| 95 | Should Be Equal As Strings ${resp.status_code} ${HTTP_NOT_FOUND} |
| 96 | |
| 97 | *** Keywords *** |
| 98 | |
Steven Sombar | fac31e9 | 2017-12-15 09:40:34 -0600 | [diff] [blame] | 99 | Suite Setup Execution |
Sridevi Ramesh | 0a7c0aa | 2017-06-26 13:03:02 -0500 | [diff] [blame] | 100 | [Documentation] Do test initialization setup. |
| 101 | # Check input parameters & check if host OS is up. |
| 102 | |
| 103 | Should Not Be Empty |
| 104 | ... ${OS_HOST} msg=You must provide the host name/host IP address. |
| 105 | Should Not Be Empty |
| 106 | ... ${OS_USERNAME} msg=You must provide OS host user name. |
| 107 | Should Not Be Empty |
| 108 | ... ${OS_PASSWORD} msg=You must provide OS host user password. |
| 109 | |
| 110 | # Boot to OS. |
| 111 | REST Power On |
| 112 | |
Steven Sombar | fac31e9 | 2017-12-15 09:40:34 -0600 | [diff] [blame] | 113 | Suite Teardown Execution |
Sridevi Ramesh | 0a7c0aa | 2017-06-26 13:03:02 -0500 | [diff] [blame] | 114 | [Documentation] Restore watchdog Default setting. |
| 115 | |
| 116 | # Boot to OS. |
| 117 | REST Power On |
| 118 | Set Watchdog Setting Using REST Enabled ${False} |
| 119 | |
| 120 | Close All Connections |
| 121 | |
| 122 | Set Watchdog Setting Using REST |
| 123 | [Documentation] Set watchdog setting using REST with a given input |
| 124 | ... attribute values. |
| 125 | [Arguments] ${setting_name} ${value} |
| 126 | |
| 127 | # Description of argument(s): |
| 128 | # setting_name The name of the watchdog setting |
| 129 | # (e.g. "Enabled", "Interval", etc.). |
| 130 | # value Watchdog setting value(e.g. "Enabled":boolean, |
| 131 | # "Interval":Integer, "TimeRemaining":Integer) |
| 132 | |
| 133 | ${valueDict}= Create Dictionary data=${value} |
Steven Sombar | aaaab22 | 2018-12-19 13:16:23 -0600 | [diff] [blame] | 134 | ${resp}= OpenBMC Put Request ${HOST_WATCHDOG_URI}attr/${setting_name} |
Sridevi Ramesh | 0a7c0aa | 2017-06-26 13:03:02 -0500 | [diff] [blame] | 135 | ... data=${valueDict} |
| 136 | Should Be Equal As Strings ${resp.status_code} ${HTTP_OK} |
George Keishing | 03c13a4 | 2017-11-24 10:52:11 -0600 | [diff] [blame] | 137 | |
| 138 | |
| 139 | Watchdog Object Should Exist |
| 140 | [Documentation] Check if watchdog object exist. |
| 141 | |
George Keishing | 98253bf | 2017-12-05 02:08:15 -0600 | [diff] [blame] | 142 | ${resp}= OpenBMC Get Request ${WATCHDOG_URI}host0 |
George Keishing | 03c13a4 | 2017-11-24 10:52:11 -0600 | [diff] [blame] | 143 | Should Be Equal As Strings ${resp.status_code} ${HTTP_OK} |
| 144 | |
Rahul Maheshwari | 3b3843e | 2018-11-15 04:38:04 -0600 | [diff] [blame] | 145 | |
| 146 | Verify Watchdog Enabled |
| 147 | [Documentation] Check that watchdog settings are enabled. |
| 148 | |
| 149 | ${properties}= Read Properties /xyz/openbmc_project/watchdog/host0 |
| 150 | Should Be Equal As Strings ${properties["Enabled"]} ${True} |
| 151 | Should Not Be Equal As Strings ${properties["TimeRemaining"]} 0 |