*** Settings ***

Documentation       Test reset reload functionality of BMC.

Resource            ../lib/rest_client.robot
Resource            ../lib/state_manager.robot
Resource            ../lib/openbmc_ffdc.robot
Resource            ../lib/utils.robot
Resource            ../lib/boot_utils.robot
Resource            ../lib/open_power_utils.robot
Library             ../lib/bmc_ssh_utils.py

Test Setup          Open Connection And Log In
Test Teardown       Test Teardown Execution

*** Variables ***

${LOOP_COUNT}  ${1}

*** Test Cases ***

Verify BMC Reset Reload With System On
    [Documentation]  Validate chassis "ON" and host "Running" state is
    ...  unchanged after BMC reset reload.
    [Tags]  Verify_BMC_Reset_Reload_With_System_On

    Initiate Host Boot

    Trigger Reset Reload via BMC Reboot

    ${rr_status}=  Check Reset Reload Status
    Should Be Equal  ${rr_status}  Yes

    Wait Until Keyword Succeeds  5 min  10 sec  Is OS Booted


Test Reset Reload When Host Booted
    [Documentation]  Reset reload when host is booted.
    [Tags]  Test_Reset_Reload_When_Host_Booted

    Repeat Keyword  ${LOOP_COUNT} times  Reboot BMC And Check For Errors


*** Keywords ***

Reboot BMC And Check For Errors
    [Documentation]  Boot to OS, reboot BMC and verify OCC and logs.

    OBMC Reboot (run)

    Verify OCC State  ${1}

    ${journal_log}=  BMC Execute Command
    ...  journalctl -b --no-pager | egrep 'SEGV|core-dump'  ignore_err=1

    Should Be Empty  ${journal_log[0]}


Check Reset Reload Status
    [Documentation]  Returns reset reload status based on file presence.

    ${rr_status}  ${stderr}  ${rc}=  BMC Execute Command
    ...  test -e /run/openbmc/chassis@0-on && echo "Yes" || echo "No"
    [Return]  ${rr_status}


Trigger Reset Reload via BMC Reboot
    [Documentation]  Initiate Reset reload using BMC Reboot.

    Initiate BMC Reboot
    Wait Until Keyword Succeeds  10 min  10 sec  Is BMC Ready


Test Teardown Execution
    [Documentation]  Do the post test teardown.
    ...  1. Capture FFDC on test failure.
    ...  2. Close all open SSH connections.

    FFDC On Test Case Fail
    Close All Connections
