| *** 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. |