| 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 | 
| Sandhya Somashekar | 839a0c2 | 2019-01-31 05:05:43 -0600 | [diff] [blame] | 7 | Resource               ../lib/resource.robot | 
| Sridevi Ramesh | 0a7c0aa | 2017-06-26 13:03:02 -0500 | [diff] [blame] | 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 |  | 
| Anusha Dathatri | a630037 | 2019-02-19 00:37:30 -0600 | [diff] [blame] | 51 | Wait Until Keyword Succeeds  300 sec  20 sec  Is Host Rebooted | 
| Sridevi Ramesh | 0a7c0aa | 2017-06-26 13:03:02 -0500 | [diff] [blame] | 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 |  | 
| Anusha Dathatri | a630037 | 2019-02-19 00:37:30 -0600 | [diff] [blame] | 113 | # Enable auto reboot | 
|  | 114 | Set Auto Reboot  ${1} | 
|  | 115 |  | 
| Steven Sombar | fac31e9 | 2017-12-15 09:40:34 -0600 | [diff] [blame] | 116 | Suite Teardown Execution | 
| Sridevi Ramesh | 0a7c0aa | 2017-06-26 13:03:02 -0500 | [diff] [blame] | 117 | [Documentation]  Restore watchdog Default setting. | 
|  | 118 |  | 
|  | 119 | # Boot to OS. | 
|  | 120 | REST Power On | 
|  | 121 | Set Watchdog Setting Using REST  Enabled  ${False} | 
|  | 122 |  | 
|  | 123 | Close All Connections | 
|  | 124 |  | 
|  | 125 | Set Watchdog Setting Using REST | 
|  | 126 | [Documentation]  Set watchdog setting using REST with a given input | 
|  | 127 | ...              attribute values. | 
|  | 128 | [Arguments]  ${setting_name}  ${value} | 
|  | 129 |  | 
|  | 130 | # Description of argument(s): | 
|  | 131 | # setting_name  The name of the watchdog setting | 
|  | 132 | #               (e.g. "Enabled", "Interval", etc.). | 
|  | 133 | # value         Watchdog setting value(e.g. "Enabled":boolean, | 
|  | 134 | #               "Interval":Integer, "TimeRemaining":Integer) | 
|  | 135 |  | 
|  | 136 | ${valueDict}=  Create Dictionary  data=${value} | 
| Steven Sombar | aaaab22 | 2018-12-19 13:16:23 -0600 | [diff] [blame] | 137 | ${resp}=  OpenBMC Put Request  ${HOST_WATCHDOG_URI}attr/${setting_name} | 
| Sridevi Ramesh | 0a7c0aa | 2017-06-26 13:03:02 -0500 | [diff] [blame] | 138 | ...       data=${valueDict} | 
|  | 139 | Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK} | 
| George Keishing | 03c13a4 | 2017-11-24 10:52:11 -0600 | [diff] [blame] | 140 |  | 
|  | 141 |  | 
|  | 142 | Watchdog Object Should Exist | 
|  | 143 | [Documentation]  Check if watchdog object exist. | 
|  | 144 |  | 
| George Keishing | 98253bf | 2017-12-05 02:08:15 -0600 | [diff] [blame] | 145 | ${resp}=  OpenBMC Get Request  ${WATCHDOG_URI}host0 | 
| George Keishing | 03c13a4 | 2017-11-24 10:52:11 -0600 | [diff] [blame] | 146 | Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK} |