blob: 559ad1215e6b24777fcbe3afd2551ddcd4dc4802 [file] [log] [blame]
Nagarjune94e5402022-01-19 15:26:27 -05001*** Settings ***
2
3Documentation Module to test IPMI Get BIOS POST Code Command.
4Resource ../lib/ipmi_client.robot
5Resource ../lib/boot_utils.robot
6Library ../lib/ipmi_utils.py
7Variables ../data/ipmi_raw_cmd_table.py
8
9*** Variables ***
10${power_state_change} 10
11${host_reboot_time} 240
12
13*** Test Cases ***
14
15IPMI Chassis Status On
16 [Documentation] This test case verfies system power on status
17 ... using IPMI Get Chassis status command.
18 [Tags] IPMI_Chassis_Status_On
19
20 # Check the chassis status.
21 Verify Host PowerOn Via IPMI
22 ${resp}= Run IPMI Standard Command chassis power status
23 Should Be Equal As Strings '${resp}' 'Chassis Power is on'
24
25Test Get BIOS POST Code via IPMI Raw Command
26 [Documentation] Get BIOS POST Code via IPMI raw command.
27 [Tags] Test_Get_BIOS_POST_Code_via_IPMI_Raw_Command
28
29 ${resp}= Run IPMI Standard Command raw ${IPMI_RAW_CMD['BIOS_POST_Code']['Get'][0]}
30 Sleep 10
31
32 Verify POST Code Response Length ${resp}
33
34Test Get BIOS POST Code via IPMI Raw Command After Power Cycle
35 [Documentation] Get BIOS POST Code via IPMI raw command after power cycle.
36 [Tags] Test_Get_BIOS_POST_Code_via_IPMI_Raw_Command_After_Power_Cycle
37
38 ${resp}= Run IPMI Standard Command raw ${IPMI_RAW_CMD['BIOS_POST_Code']['Get'][0]}
39 Sleep ${host_reboot_time}
40
41 Verify POST Code Response Length ${resp}
42
43Test Get BIOS POST Code via IPMI Raw Command With Host Powered Off
44 [Documentation] Get BIOS POST Code via IPMI raw command after power off.
45 [Tags] Test_Get_BIOS_POST_Code_via_IPMI_Raw_Command_With_Host_Powered_Off
46
47 ${resp}= Run IPMI Standard Command chassis power off
48 Sleep ${power_state_change}
49 Should Contain ${resp} Chassis Power Control: Down/Off
50
51 ${resp}= Run IPMI Standard Command raw ${IPMI_RAW_CMD['BIOS_POST_Code']['Get'][0]}
52 Should Contain ${resp} ${IPMI_RAW_CMD['BIOS_POST_Code']['Get'][3]}
53
54*** Keywords ***
55
56Verify Host PowerOn Via IPMI
57 [Documentation] Verify host power on operation using external IPMI command.
58 [Tags] Verify_Host_PowerOn_Via_IPMI
59
60 IPMI Power On stack_mode=skip quiet=1
61 ${ipmi_state}= Get Host State Via External IPMI
62 Valid Value ipmi_state ['on']
63
64
65Verify POST Code Response Length
66 [Documentation] Verify the BIOS POST Code response byte length.
67 [Tags] Verify_POST_Code_Response_Length
68 [Arguments] ${resp}
69
70 # Description of argument(s):
71 # resp The complete response bytes from
72 # Get BIOS POST Code command returned
73 # in one string.
74
75 @{resp_bytes}= Split String ${resp}
76 ${string_length}= Get Length ${resp_bytes}
77
78 # Convert response byte length to integer.
79 ${value}= Get Slice From List ${resp_bytes} 2 4
80 Reverse List ${value}
81 ${byte_length_string}= Evaluate "".join(${value})
82 ${byte_length_integer}= Convert To Integer ${byte_length_string} 16
83 ${true_length}= Evaluate (${string_length} - 4)
84
85 Should Be Equal ${true_length} ${byte_length_integer}
86