1*** Settings ***
2Documentation   Module to test OS reboot functionality.
3
4Resource        ../../lib/bmc_redfish_resource.robot
5Resource        ../../lib/openbmc_ffdc.robot
6Resource        ../../lib/boot_utils.robot
7
8Suite Setup     Run Key  Start SOL Console Logging
9Test Setup      Redfish.Login
10Test Teardown   Test Teardown Execution
11
12*** Variables ***
13
14# User defined boot test iteration.
15${BOOT_LOOP_COUNT}   ${1}
16
17*** Test Cases ***
18
19Host Reboot Loop
20    [Documentation]  Boot OS and trigger reboot and expect
21    ...              OS to boot back.
22    [Tags]  Host_Reboot_Loop
23
24    # 1. Boot OS
25    # 2. Verify OS is booted
26    # 3. Issue "reboot" from OS
27    # 4. Verify if OS is booted back
28
29    # By default run test for 1 loop, else user input iteration.
30    # Fails immediately if any of the execution rounds fail.
31
32    # Note: Host Reboot is implemented by the OBMC Boot Test tool.
33    # OBMC Boot Test will take the necessary steps to get the OBMC
34    # to a host powered on state before attempting the Host Reboot.
35    Repeat Keyword  ${BOOT_LOOP_COUNT} times  RF SYS GracefulRestart
36
37*** Keywords ***
38
39Test Teardown Execution
40    [Documentation]  Do the post test teardown.
41    # 1. Capture FFDC on test failure.
42    # 2. Stop SOL logging.
43    # 3. Close all open SSH connections.
44
45    FFDC On Test Case Fail
46
47    ${keyword_buf}=  Catenate  Stop SOL Console Logging
48    ...  \ targ_file_path=${EXECDIR}${/}logs${/}SOL.log
49    Run Key  ${keyword_buf}
50
51    Close All Connections
52