blob: 058a08ce4f91f0a8b8f6de49e3ac1f377a7e5ec3 [file] [log] [blame]
*** Settings ***
Documentation Suite for testing non sensors.
Library ../lib/state_map.py
Resource ../lib/utils.robot
Resource ../lib/boot_utils.robot
Resource ../lib/state_manager.robot
Resource ../lib/openbmc_ffdc.robot
Test Teardown Post Test Case Execution
*** Variables ***
${stack_mode} skip
*** Test Cases ***
Verify Boot AttemptsLeft At Standby
[Documentation] Verify system boot attempts on various boot states.
[Tags] Verify_Boot_AttemptsLeft_At_Standby
[Template] Validate Boot AttemptsLeft
# Example: Expected state
# "data": {
# "/xyz/openbmc_project/state/host0": {
# "AttemptsLeft": 3,
# "BootProgress": "xyz.openbmc_project.State.Boot.Progress.ProgressStages.Unspecified",
# "CurrentHostState": "xyz.openbmc_project.State.Host.HostState.Off",
# "OperatingSystemState": "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.Inactive",
# "RequestedHostTransition": "xyz.openbmc_project.State.Host.Transition.Off"
# }
# }
# System at standby AttemptsLeft
Reboot 3
Verify Boot AttemptsLeft At Host Booted
[Tags] Verify_Boot_AttemptsLeft_At_Host_Booted
[Template] Validate Boot AttemptsLeft
# System at standby AttemptsLeft
Booted 3
Verify Boot AttemptsLeft When Host Reboot
[Tags] Verify_Boot_AttemptsLeft_When_Host_Reboot
[Template] Validate Boot AttemptsLeft
# System at standby AttemptsLeft
RebootHost 2
Verify Boot AttemptsLeft When Power Off
[Tags] Validate Boot AttemptsLeft_When_Power_Off
[Template] Validate Boot AttemptsLeft
# System at standby AttemptsLeft
Ready 2
Verify Boot Sensor States At Ready
[Documentation] Verify system boot states at "Ready" state.
[Tags] Verify_Boot_Sensor_States_At_Ready
[Template] Valid Boot States
# Example: Expected state
# "data": {
# "/xyz/openbmc_project/state/bmc0": {
# "CurrentBMCState": "xyz.openbmc_project.State.BMC.BMCState.Ready",
# "RequestedBMCTransition": "xyz.openbmc_project.State.BMC.Transition.None"
# },
# "/xyz/openbmc_project/state/chassis0": {
# "CurrentPowerState": "xyz.openbmc_project.State.Chassis.PowerState.Off",
# "RequestedPowerTransition": "xyz.openbmc_project.State.Chassis.Transition.Off"
# },
# "/xyz/openbmc_project/state/host0": {
# "AttemptsLeft": 3,
# "BootProgress": "xyz.openbmc_project.State.Boot.Progress.ProgressStages.Unspecified",
# "CurrentHostState": "xyz.openbmc_project.State.Host.HostState.Off",
# "OperatingSystemState": "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.Inactive",
# "RequestedHostTransition": "xyz.openbmc_project.State.Host.Transition.Off"
# }
# }
# System at standby.
Off
Verify Boot Sensor States On Reboot Ready
[Documentation] Verify system boot states at "Ready" state.
[Tags] Verify_Boot_Sensor_States_On_Reboot_Ready
[Template] Valid Boot States
# Example: Expected state
# "data": {
# "/xyz/openbmc_project/state/bmc0": {
# "CurrentBMCState": "xyz.openbmc_project.State.BMC.BMCState.Ready",
# "RequestedBMCTransition": "xyz.openbmc_project.State.BMC.Transition.None"
# },
# "/xyz/openbmc_project/state/chassis0": {
# "CurrentPowerState": "xyz.openbmc_project.State.Chassis.PowerState.Off",
# "RequestedPowerTransition": "xyz.openbmc_project.State.Chassis.Transition.Off"
# },
# "/xyz/openbmc_project/state/host0": {
# "AttemptsLeft": 3,
# "BootProgress": "xyz.openbmc_project.State.Boot.Progress.ProgressStages.Unspecified",
# "CurrentHostState": "xyz.openbmc_project.State.Host.HostState.Off",
# "OperatingSystemState": "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.Inactive",
# "RequestedHostTransition": "xyz.openbmc_project.State.Host.Transition.Off"
# }
# }
# BMC on reset to standby.
Reboot
Verify Boot Sensor States At Running
[Documentation] Verify system boot states at "Running" state.
[Tags] Verify_Boot_Sensor_States_At_Running
[Template] Valid Boot States
# Example: Expected state
# "data": {
# "/xyz/openbmc_project/state/bmc0": {
# "CurrentBMCState": "xyz.openbmc_project.State.BMC.BMCState.Ready",
# "RequestedBMCTransition": "xyz.openbmc_project.State.BMC.Transition.None"
# },
# "/xyz/openbmc_project/state/chassis0": {
# "CurrentPowerState": "xyz.openbmc_project.State.Chassis.PowerState.On",
# "RequestedPowerTransition": "xyz.openbmc_project.State.Chassis.Transition.Off"
# },
# "/xyz/openbmc_project/state/host0": {
# "AttemptsLeft": 2,
# "BootProgress": "xyz.openbmc_project.State.Boot.Progress.ProgressStages.MotherboardInit",
# "CurrentHostState": "xyz.openbmc_project.State.Host.HostState.Running",
# "OperatingSystemState": "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.Inactive",
# "RequestedHostTransition": "xyz.openbmc_project.State.Host.Transition.On"
# }
# }
# System at Running state but during initial state.
Running
Verify Boot Sensor States At Host Booted
[Documentation] Verify system boot states when host is booted.
[Tags] Verify_Boot_Sensor_States_At_Host_Booted
[Template] Valid Boot States
# Example: Expected state
# "data": {
# "/xyz/openbmc_project/state/bmc0": {
# "CurrentBMCState": "xyz.openbmc_project.State.BMC.BMCState.Ready",
# "RequestedBMCTransition": "xyz.openbmc_project.State.BMC.Transition.None"
# },
# "/xyz/openbmc_project/state/chassis0": {
# "CurrentPowerState": "xyz.openbmc_project.State.Chassis.PowerState.On",
# "RequestedPowerTransition": "xyz.openbmc_project.State.Chassis.Transition.Off"
# },
# "/xyz/openbmc_project/state/host0": {
# "AttemptsLeft": 3,
# "BootProgress": "xyz.openbmc_project.State.Boot.Progress.ProgressStages.OSStart",
# "CurrentHostState": "xyz.openbmc_project.State.Host.HostState.Running",
# "OperatingSystemState": "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.BootComplete",
# "RequestedHostTransition": "xyz.openbmc_project.State.Host.Transition.On"
# }
# }
# System when host is booted.
Booted
Verify Boot Sensor States RR on Host Booted
[Documentation] Verify system boot states post BMC reset.
[Tags] Verify_Boot_Sensor_States_RR_on_Host_Booted
[Template] Valid Boot States
# Example: Expected state
# "data": {
# "/xyz/openbmc_project/state/bmc0": {
# "CurrentBMCState": "xyz.openbmc_project.State.BMC.BMCState.Ready",
# "RequestedBMCTransition": "xyz.openbmc_project.State.BMC.Transition.None"
# },
# "/xyz/openbmc_project/state/chassis0": {
# "CurrentPowerState": "xyz.openbmc_project.State.Chassis.PowerState.On",
# "RequestedPowerTransition": "xyz.openbmc_project.State.Chassis.Transition.Off"
# },
# "/xyz/openbmc_project/state/host0": {
# "AttemptsLeft": 3,
# "BootProgress": "xyz.openbmc_project.State.Boot.Progress.ProgressStages.OSStart",
# "CurrentHostState": "xyz.openbmc_project.State.Host.HostState.Running",
# "OperatingSystemState": "xyz.openbmc_project.State.OperatingSystem.Status.OSStatus.BootComplete",
# "RequestedHostTransition": "xyz.openbmc_project.State.Host.Transition.On"
# }
# }
# System when host is booted.
ResetReload
*** Keywords ***
Validate Boot AttemptsLeft
[Documentation] Verify boot attempts for a given system state.
[Arguments] ${sys_state} ${expected_attempts_left}
# Description of argument(s):
# sys_state A user-defined boot state (e.g. "Off", "On", etc).
# See VALID_BOOT_STATES in state_map.py.
# expected_attempts_left Boot attempts left.
Choose Boot And Run ${sys_state}
${atempts_left}= Read Attribute ${HOST_STATE_URI} AttemptsLeft
Should Be True ${atempts_left} == ${expected_attempts_left}
Valid Boot States
[Documentation] Verify boot states for a given system state.
[Arguments] ${sys_state}
# Description of argument(s):
# sys_state A user-defined boot state (e.g. "Off", "On", etc).
# See VALID_BOOT_STATES in state_map.py.
Choose Boot And Run ${sys_state}
${boot_states}= Get Boot State
${valid_state}= Valid Boot State ${sys_state} ${boot_states}
Should Be True ${valid_state}
Choose Boot And Run
[Documentation] Choose system boot type.
[Arguments] ${option}
# Description of argument(s):
# option Boot type (e.g. "Off", "On", "Reboot", etc.).
Run Keyword If '${option}' == 'Off'
... Initiate Host PowerOff
... ELSE IF '${option}' == 'Reboot'
... Run Keywords Initiate Host PowerOff AND Initiate BMC Reboot
... AND Wait For BMC Ready
... ELSE IF '${option}' == 'Running'
... Power On Till Chassis Is On
... ELSE IF '${option}' == 'Booted'
... Initiate Host Boot
... ELSE IF '${option}' == 'RebootHost'
... Initiate Host Reboot
... ELSE IF '${option}' == 'ResetReload'
... Reboot Host And Expect Runtime
Power On Till Chassis Is On
[Documentation] Initiate power on and check till chassis state is just
... turned "On".
# TODO: Move to smart power off once ready.
Initiate Host PowerOff
Initiate Host Boot wait=${0}
Wait Until Keyword Succeeds 2 min 10 sec Is Chassis On
# TODO: Find better mechanism instead of wait.
Sleep 20 Sec
Reboot Host And Expect Runtime
[Documentation] Initiate reset reload when host is booted.
Initiate BMC Reboot
Wait Until Keyword Succeeds 10 min 10 sec Is OS Booted
Post Test Case Execution
[Documentation] Do the post test teardown.
# - Capture FFDC on test failure.
# - Delete error logs.
# - Close all open SSH connections.
# - Clear all REST sessions.
FFDC On Test Case Fail
Delete Error Logs
Close All Connections