blob: c101abd01eb8e0edf211cc9ce82156bd718ed101 [file] [log] [blame]
*** Settings ***
Documentation This suite tests checkstop operations through OS.
Resource ../lib/utils.robot
Resource ../lib/openbmc_ffdc.robot
Resource ../lib/ras/host_utils.robot
Resource ../lib/resource.txt
Resource ../lib/state_manager.robot
Test Setup RAS Test Setup
Test Teardown FFDC On Test Case Fail
*** Variables ***
${HOST_SETTINGS} ${SETTINGS_URI}host0
*** Test Cases ***
Verify Channel Checkstop Through OS With Auto Reboot
[Documentation] Verify Channel Checkstop (MBS FIR REG INT PROTOCOL ERROR)
... through OS With Auto Reboot settings enabled.
[Tags] Verify_Channel_Checkstop_Through_OS_With_Auto_Reboot
Verify Checkstop Insertion With Auto Reboot
... Centaur 2011400 4000000000000000
Verify Host Reboot On Host Booted System With Auto Reboot Enabled
[Documentation] Verify host reboot after host watchdog error on host
... booted system with auto reboot enabled.
[Tags] Verify_Host_Reboot_On_Host_Booted_System_With_Auto_Reboot_Enabled
Initiate Host Boot
Wait for OS ${OS_HOST} ${OS_USERNAME} ${OS_PASSWORD}
Set Auto Reboot ${1}
Trigger Host Watchdog Error
Wait Until Keyword Succeeds 3 min 5 sec Is Host Rebooted
Wait for OS ${OS_HOST} ${OS_USERNAME} ${OS_PASSWORD}
Verify Host Quiesced On Host Booted System With Auto Reboot Disabled
[Documentation] Verify host quiesced state after host watchdog error on
... host booted system with auto reboot disabled.
[Tags] Verify_Host_Quiesced_On_Host_Booted_System_With_Auto_Reboot_Disabled
Initiate Host Boot
Wait for OS ${OS_HOST} ${OS_USERNAME} ${OS_PASSWORD}
Set Auto Reboot ${0}
Trigger Host Watchdog Error
Wait Until Keyword Succeeds 3 min 5 sec Is Host Quiesced
Recover Quiesced Host
*** Keywords ***
Inject Checkstop Through OS
[Documentation] Inject checkstop on processor/centaur through OS.
... Test sequence:
... 1. Boot To OS
... 2. Clear any existing gard records
... 3. Inject Checkstop on processor/centaur
[Arguments] ${chip_type} ${fru} ${address}
# Description of arguments:
# chip_type The chip type (Processor/Centaur).
# fru FRU value (e.g. 2011400).
# address chip address (e.g 4000000000000000).
Login To OS Host ${OS_HOST} ${OS_USERNAME} ${OS_PASSWORD}
# Get core values are present through OS.
Get Cores Values From OS
Gard Operations On OS clear all
# Fetch Processor/Centaur chip value based on the input chip_type.
${output}= Get ChipID From OS ${chip_type}
${chip_values}= Split String ${output}
${chip_value}= Get From List ${chip_values} 0
Putscom Through OS ${chip_value} ${fru} ${address}
Verify And Clear Gard Records On OS
[Documentation] Verify And Clear gard records on OS.
Login To OS Host ${OS_HOST} ${OS_USERNAME} ${OS_PASSWORD}
${output}= Gard Operations On OS list
Should Not Contain ${output} 'No GARD entries to display'
Gard Operations On OS clear all
Verify Checkstop Insertion With Auto Reboot
[Documentation] Inject and verify checkstop on processor/centaur through
... OS with auto reboot.
... Test sequence:
... 1. Enable Auto Reboot Setting
... 2. Inject Checkstop on processor/centaur
... 3. Check If HOST rebooted and OS is up
... 4. Verify & clear gard records
[Arguments] ${chip_type} ${fru} ${address}
# Description of arguments:
# chip_type The chip type (Processor/Centaur).
# fru FRU value (e.g. 2011400).
# address chip address (e.g 4000000000000000).
Set Auto Reboot ${1}
Inject Checkstop Through OS ${chip_type} ${fru} ${address}
Wait Until Keyword Succeeds 120 sec 20 sec Is Host Rebooted
Wait for OS ${OS_HOST} ${OS_USERNAME} ${OS_PASSWORD}
Verify And Clear Gard Records On OS
RAS Test SetUp
[Documentation] Validates input parameters.
Should Not Be Empty
... ${OS_HOST} msg=You must provide DNS name/IP of the OS host.
Should Not Be Empty
... ${OS_USERNAME} msg=You must provide OS host user name.
Should Not Be Empty
... ${OS_PASSWORD} msg=You must provide OS host user password.