blob: 3eaa3de2c049512c3e40c7b504dc618b8ac02300 [file] [log] [blame]
*** Settings ***
Documentation Module to test IPMI SEL functionality.
Resource ../lib/ipmi_client.robot
Resource ../lib/openbmc_ffdc.robot
Variables ../data/ipmi_raw_cmd_table.py
Test Teardown FFDC On Test Case Fail
*** Variables ***
${sensor_number} 0x17
*** Test Cases ***
Verify IPMI SEL Version
[Documentation] Verify IPMI SEL's version info.
[Tags] Verify_IPMI_SEL_Version
${version_info}= Get IPMI SEL Setting Version
${setting_status}= Fetch From Left ${version_info} (
${setting_status}= Evaluate $setting_status.replace(' ','')
Should Be True ${setting_status} >= 1.5
Should Contain ${version_info} v2 compliant case_insensitive=True
Verify Empty SEL
[Documentation] Verify IPMI sel clear command clears the SEL entry.
[Tags] Verify_Empty_SEL
# Generate an error log and verify there is one atleast.
Create Test PEL Log
${resp}= Run IPMI Standard Command sel elist last 1
Log To Console ${resp}
Should Contain Any ${resp} system hardware failure Asserted
... msg=Add SEL Entry failed.
# Send SEL clear command and verify if it really clears up the SEL entry.
Run IPMI Standard Command sel clear
Sleep 5s
${resp}= Run IPMI Standard Command sel list
Should Contain ${resp} SEL has no entries case_insensitive=True
Verify Add SEL Entry
[Documentation] Verify add SEL entry.
[Tags] Verify_Add_SEL_Entry
[Teardown] Run Keywords FFDC On Test Case Fail AND Run IPMI Standard Command sel clear
Run IPMI Standard Command sel clear
Sleep 5s
# The IPMI raw command to generate Temp sensor error is no longer working.
# Our aim is to check if the SEL command is listed in IPMI or not.
# Original keyword "Create SEL" for reference
Create Test PEL Log
# Get last SEL entry.
${resp}= Run IPMI Standard Command sel elist last 1
# output:
# 1 | 11/17/2021 | 07:49:20 | System Event #0x01 | Undetermined system hardware failure | Asserted
Run Keywords Should Contain ${resp} system hardware failure AND
... Should Contain ${resp} Asserted msg=Add SEL Entry failed.
Verify Reserve SEL
[Documentation] Verify reserve SEL.
[Tags] Verify_Reserve_SEL
${resp}= Run IPMI Standard Command
... raw ${IPMI_RAW_CMD['SEL_entry']['Reserve'][0]}
${reserve_id}= Split String ${resp}
# Execute clear SEL raw command with Reservation ID.
# Command will not execute unless the correct Reservation ID value is provided.
Run IPMI Standard Command
... raw 0x0a 0x47 0x${reserve_id[0]} 0x${reserve_id[1]} 0x43 0x4c 0x52 0xaa
*** Keywords ***
Create SEL
[Documentation] Create a SEL.
# Create a SEL.
# Example:
# a | 02/14/2020 | 01:16:58 | Temperature #0x17 | | Asserted
Run IPMI Command
... 0x0a 0x44 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x04 0x01 ${sensor_number} 0x00 0xa0 0x04 0x07