1*** Settings ***
2
3Documentation    Module to test IPMI SEL functionality.
4Resource         ../lib/ipmi_client.robot
5Resource         ../lib/openbmc_ffdc.robot
6Variables        ../data/ipmi_raw_cmd_table.py
7
8Test Teardown    FFDC On Test Case Fail
9
10
11*** Test Cases ***
12
13Verify IPMI SEL Version
14    [Documentation]  Verify IPMI SEL's version info.
15    [Tags]  Verify_IPMI_SEL_Version
16    ${version_info}=  Get IPMI SEL Setting  Version
17    ${setting_status}=  Fetch From Left  ${version_info}  (
18    ${setting_status}=  Evaluate  $setting_status.replace(' ','')
19
20    Should Be True  ${setting_status} >= 1.5
21    Should Contain  ${version_info}  v2 compliant  case_insensitive=True
22
23
24Verify Empty SEL
25    [Documentation]  Verify empty SEL list.
26    [Tags]  Verify_Empty_SEL
27
28    Run IPMI Standard Command  sel clear
29    Sleep  5s
30
31    ${resp}=  Run IPMI Standard Command  sel list
32    Should Contain  ${resp}  SEL has no entries  case_insensitive=True
33
34
35Verify Add SEL Entry
36    [Documentation]  Verify add SEL entry.
37    [Tags]  Verify_Add_SEL_Entry
38    [Teardown]  Run Keywords  FFDC On Test Case Fail  AND  Run IPMI Standard Command  sel clear
39
40    Run IPMI Standard Command  sel clear
41    Sleep  5s
42
43    Create SEL
44    # Get last SEL entry.
45    ${resp}=  Run IPMI Standard Command  sel elist last 1
46    Run Keywords  Should Contain  ${resp}  Temperature #0x17  AND
47    ...  Should Contain  ${resp}  Asserted
48    ...  msg=Add SEL Entry failed.
49
50
51Verify Reserve SEL
52    [Documentation]  Verify reserve SEL.
53    [Tags]  Verify_Reserve_SEL
54
55    ${resp}=  Run IPMI Standard Command
56    ...  raw ${IPMI_RAW_CMD['SEL_entry']['Reserve'][0]}
57    ${reserve_id}=  Split String  ${resp}
58
59    # Execute clear SEL raw command with Reservation ID.
60    # Command will not execute unless the correct Reservation ID value is provided.
61    Run IPMI Standard Command
62    ...  raw 0x0a 0x47 0x${reserve_id[0]} 0x${reserve_id[1]} 0x43 0x4c 0x52 0xaa
63
64
65*** Keywords ***
66
67Create SEL
68    [Documentation]  Create a SEL.
69
70    # Create a SEL.
71    # Example:
72    # a | 02/14/2020 | 01:16:58 | Temperature #0x17 |  | Asserted
73    Run IPMI Standard Command
74    ...  raw ${IPMI_RAW_CMD['SEL_entry']['Add'][0]}
75