*** Settings ***
Documentation    Verify that the BMC boots between code updates of different
...              BMC version. Verify with N, the current version, downgrade
...              and verify with N-1, update and verify N again, and finally
...              update and verify with N+1.

Library           ../../lib/code_update_utils.py
Library           ../../lib/gen_robot_valid.py
Variables         ../../data/variables.py
Resource          ../../lib/boot_utils.robot
Resource          ../../lib/code_update_utils.robot
Resource          ../../lib/openbmc_ffdc.robot

Suite Setup       Suite Setup Execution

Test Teardown     FFDC On Test Case Fail

*** Variables ***

${QUIET}                        ${1}
${IMAGE_FILE_PATH}              ${EMPTY}
${N_MINUS_ONE_IMAGE_FILE_PATH}  ${EMPTY}
${N_PLUS_ONE_IMAGE_FILE_PATH}   ${EMPTY}
${SKIP_UPDATE_IF_ACTIVE}        false

*** Test Cases ***

BMC Multi Code Update
    [Documentation]  Do four code updates in a row. Update to N, N-1, N, and
    ...              then N+1.
    [Tags]  BMC_Multi_Code_Update
    [Template]  Code Update And Reboot BMC

    # Image File Path
    ${IMAGE_FILE_PATH}
    ${N_MINUS_ONE_IMAGE_FILE_PATH}
    ${IMAGE_FILE_PATH}
    ${N_PLUS_ONE_IMAGE_FILE_PATH}


*** Keywords ***

Suite Setup Execution
    [Documentation]  Do test suite setup tasks.

    Valid Value  IMAGE_FILE_PATH
    Valid Value  N_MINUS_ONE_IMAGE_FILE_PATH
    Valid Value  N_PLUS_ONE_IMAGE_FILE_PATH


Code Update And Reboot BMC
    [Documentation]  Update the given image, and then verify update.
    [Arguments]  ${image_file_path}

    # Description of argument(s):
    # image_file_path   Path to the bmc image file.

    Upload And Activate Image  ${image_file_path}
    ...  skip_if_active=${SKIP_UPDATE_IF_ACTIVE}
    OBMC Reboot (off)  stack_mode=normal
    Verify Running BMC Image  ${image_file_path}
