Enable test cases for testing host auto reboot.
What test cases are added
- Validate host quiesce state with auto reboot.
- Validate host quiesce state without auto reboot.
- Validate host quiesce state with auto reboot.
during boot.
- Validate host quiesce state without auto reboot
during boot.
Resolves openbmc/openbmc-test-automation#322
Change-Id: I098aff9344dffc036e32192bcdb80a8750be5ce6
Signed-off-by: Rahul Maheshwari <rahulmaheshwari@in.ibm.com>
diff --git a/lib/utils.robot b/lib/utils.robot
index dd1e061..66bf1ec 100755
--- a/lib/utils.robot
+++ b/lib/utils.robot
@@ -761,3 +761,17 @@
${core_pattern}= Execute Command On BMC
... echo '/tmp/core_%e.%p' | tee /proc/sys/kernel/core_pattern
Should Be Equal As Strings ${core_pattern} /tmp/core_%e.%p
+
+Trigger Host Watchdog Error
+ [Documentation] Inject host watchdog error using BMC.
+ [Arguments] ${milliseconds}=1000 ${sleep_time}=5s
+ # Description of arguments:
+ # milliseconds The time watchdog timer value in milliseconds (e.g. 1000 = 1 second).
+ # sleep_time Time delay for host watchdog error to get injected.
+ # Default is 5 seconds.
+
+ Execute Command On BMC
+ ... /usr/sbin/mapper call /org/openbmc/watchdog/host0 org.openbmc.Watchdog set i ${milliseconds}
+ Execute Command On BMC
+ ... /usr/sbin/mapper call /org/openbmc/watchdog/host0 org.openbmc.Watchdog start
+ Sleep ${sleep_time}
diff --git a/tests/test_host_auto_reboot.robot b/tests/test_host_auto_reboot.robot
new file mode 100644
index 0000000..e19b5e1
--- /dev/null
+++ b/tests/test_host_auto_reboot.robot
@@ -0,0 +1,86 @@
+*** Settings ***
+
+Documentation Test auto reboot functionality of host.
+
+Resource ../lib/openbmc_ffdc.robot
+Resource ../lib/rest_client.robot
+Resource ../lib/state_manager.robot
+
+Test Setup Open Connection And Log In
+Test Teardown Post Testcase Execution
+
+*** Variables ***
+
+
+*** Test Cases ***
+
+Verify Host Quiesce State Without Auto Reboot
+ # Description of template fields:
+ # Auto Reboot Host State Expected Host Action
+ no Off No Reboot
+ [Documentation] Validate "Quiesce" state without auto reboot.
+ [Tags] Verify_Host_Quiesce_State_Without_Auto_Reboot
+ [Template] Verify Host Quiesce State
+
+Verify Host Quiesce State With Auto Reboot
+ # Description of template fields:
+ # Auto Reboot Host State Expected Host Action
+ yes Off Reboot
+ [Documentation] Validate "Quiesce" state with auto reboot.
+ [Tags] Verify_Host_Quiesce_State_With_Auto_Reboot
+ [Template] Verify Host Quiesce State
+
+Verify Host Quiesce State Without Auto Reboot During Boot
+ # Description of template fields:
+ # Auto Reboot Host State Expected Host Action
+ no Booting No Reboot
+ [Documentation] Validate "Quiesce" state during IPL.
+ [Tags] Verify_Host_Quiesce_State_Without_Auto_Reboot_During_Boot
+ [Template] Verify Host Quiesce State
+
+Verify Host Quiesce State With Auto Reboot During Boot
+ # Description of template fields:
+ # Auto Reboot Host State Expected Host Action
+ yes Booting Reboot
+ [Documentation] Validate "Quiesce" state during IPL.
+ [Tags] Verify_Host_Quiesce_State_With_Auto_Reboot_During_Boot
+ [Template] Verify Host Quiesce State
+
+
+*** Keywords ***
+
+Verify Host Quiesce State
+ [Documentation] Inject watchdog error on host to reach "Quiesce" state.
+ ... Later recover host from this state.
+ [Arguments] ${auto_reboot} ${host_state} ${action}
+ # Description of Arguments:
+ # auto_reboot Auto reboot setting ("yes" or "no").
+ # host_state State of host before injecting error.
+ # action Action of host due to error ("No Reboot" or "Reboot").
+
+ Set Auto Reboot ${auto_reboot}
+
+ Run Keyword If '${host_state}' == 'Off' Initiate Host PowerOff
+ ... ELSE IF '${host_state}' == 'Booting'
+ ... Run Keywords Initiate Host PowerOff AND Initiate Host Boot
+
+ Trigger Host Watchdog Error
+ ${resp}= Run Keyword And Return Status Is Host Rebooted
+
+ Run Keyword If '${action}' == 'No Reboot'
+ ... Run Keywords Should Be Equal ${resp} ${False} AND
+ ... Wait Until Keyword Succeeds 3 min 5 sec Is Host Quiesced AND
+ ... Recover Quiesced Host
+ ... ELSE IF '${action}' == 'Reboot'
+ ... Wait Until Keyword Succeeds 3 min 5 sec Is Host Rebooted
+
+
+Post Testcase Execution
+ [Documentation] Do the post test teardown.
+ ... 1. Capture FFDC on test failure.
+ ... 2. Set default value for auto reboot.
+ ... 3. Close all open SSH connections.
+
+ FFDC On Test Case Fail
+ Set Auto Reboot yes
+ Close All Connections