blob: 8605c9022a0d587aeb473fa0cc3baf0e16ec1525 [file] [log] [blame]
*** Settings ***
Documentation Module to test IPMI Get BIOS POST Code Command.
Resource ../lib/ipmi_client.robot
Resource ../lib/boot_utils.robot
Library ../lib/ipmi_utils.py
Variables ../data/ipmi_raw_cmd_table.py
*** Variables ***
${power_state_change} 10
${host_reboot_time} 360
*** Test Cases ***
IPMI Chassis Status On
[Documentation] This test case verifies system power on status
... using IPMI Get Chassis status command.
[Tags] IPMI_Chassis_Status_On
# Check the chassis status.
Verify Host PowerOn Via IPMI
${resp}= Run IPMI Standard Command chassis power status
Should Be Equal As Strings '${resp}' 'Chassis Power is on'
Test Get BIOS POST Code via IPMI Raw Command
[Documentation] Get BIOS POST Code via IPMI raw command.
[Tags] Test_Get_BIOS_POST_Code_via_IPMI_Raw_Command
${resp}= Run IPMI Standard Command raw ${IPMI_RAW_CMD['BIOS_POST_Code']['Get'][0]}
Sleep 10
Verify POST Code Response Length ${resp}
Test Get BIOS POST Code via IPMI Raw Command After Power Cycle
[Documentation] Get BIOS POST Code via IPMI raw command after power cycle.
[Tags] Test_Get_BIOS_POST_Code_via_IPMI_Raw_Command_After_Power_Cycle
${resp}= Run IPMI Standard Command chassis power cycle
Sleep ${power_state_change}
Should Contain ${resp} Chassis Power Control: Cycle
sleep ${host_reboot_time}
${ipmi_state}= Get Host State Via External IPMI
Valid Value ipmi_state ['on']
${resp}= Run IPMI Standard Command raw ${IPMI_RAW_CMD['BIOS_POST_Code']['Get'][0]}
Sleep ${host_reboot_time}
Verify POST Code Response Length ${resp}
Test Get BIOS POST Code via IPMI Raw Command With Host Powered Off
[Documentation] Get BIOS POST Code via IPMI raw command after power off.
[Tags] Test_Get_BIOS_POST_Code_via_IPMI_Raw_Command_With_Host_Powered_Off
${resp}= Run IPMI Standard Command chassis power off
Sleep ${power_state_change}
Should Contain ${resp} Chassis Power Control: Down/Off
${resp}= Run IPMI Standard Command raw ${IPMI_RAW_CMD['BIOS_POST_Code']['Get'][0]} fail_on_err=0
Should Contain ${resp} ${IPMI_RAW_CMD['BIOS_POST_Code']['Get'][3]}
# Turn host back on.
IPMI Power On stack_mode=skip quiet=1
Verify Host PowerOn Via IPMI
${resp}= Run IPMI Standard Command chassis power status
Should Be Equal As Strings '${resp}' 'Chassis Power is on'
*** Keywords ***
Verify Host PowerOn Via IPMI
[Documentation] Verify host power on operation using external IPMI command.
[Tags] Verify_Host_PowerOn_Via_IPMI
IPMI Power On stack_mode=skip quiet=1
${ipmi_state}= Get Host State Via External IPMI
Valid Value ipmi_state ['on']
Verify POST Code Response Length
[Documentation] Verify the BIOS POST Code response byte length.
[Tags] Verify_POST_Code_Response_Length
[Arguments] ${resp}
# Description of argument(s):
# resp The complete response bytes from
# Get BIOS POST Code command returned
# in one string.
@{resp_bytes}= Split String ${resp}
${string_length}= Get Length ${resp_bytes}
# Convert response byte length to integer.
${value}= Get Slice From List ${resp_bytes} 2 4
Reverse List ${value}
${byte_length_string}= Evaluate "".join(${value})
${byte_length_integer}= Convert To Integer ${byte_length_string} 16
${true_length}= Evaluate (${string_length} - 4)
Should Be Equal ${true_length} ${byte_length_integer}