blob: f3b57883f17dd036d398384bcabd1b86f46d4976 [file] [log] [blame]
Sridevi Ramesh1495bc42020-02-04 03:13:33 -06001*** Settings ***
2
3Documentation Module to test PLDM BIOS commands.
4
5Library Collections
6Library String
7Library ../lib/pldm_utils.py
8Variables ../data/pldm_variables.py
9Resource ../lib/openbmc_ffdc.robot
10
11Test Setup Printn
12Test Teardown FFDC On Test Case Fail
Sridevi Ramesh2ab3d382021-03-29 04:16:01 -050013Suite Setup PLDM BIOS Suite Setup
Sridevi Ramesh1495bc42020-02-04 03:13:33 -060014Suite Teardown PLDM BIOS Suite Cleanup
15
16*** Test Cases ***
17
18Verify GetDateTime
Sridevi Ramesh2ab3d382021-03-29 04:16:01 -050019
Sridevi Ramesh1495bc42020-02-04 03:13:33 -060020 [Documentation] Verify host date & time.
21 [Tags] Verify_GetDateTime
22
23 # Example output:
Sridevi Ramesh961050b2020-11-12 11:04:30 -060024 # {
25 # "Response": "2020-11-07 07:10:10"
26 # }
Sridevi Ramesh1495bc42020-02-04 03:13:33 -060027
28 ${pldm_output}= Pldmtool bios GetDateTime
Sridevi Ramesh961050b2020-11-12 11:04:30 -060029 @{date_time}= Split String ${pldm_output['Response']} ${SPACE}
Sridevi Ramesh1495bc42020-02-04 03:13:33 -060030 @{time}= Split String ${date_time}[1] :
31
32 # verify date & time.
Sridevi Ramesh961050b2020-11-12 11:04:30 -060033 ${utc}= Get Current Date UTC exclude_millis=True
34 @{current_dmy}= Split String ${utc} ${SPACE}
35 @{current_time}= Split String ${current_dmy[1]} :
Sridevi Ramesh1495bc42020-02-04 03:13:33 -060036
Sridevi Ramesh961050b2020-11-12 11:04:30 -060037 # Example output:
38 # 2020-11-25 07:34:30
39
40 Should Contain ${current_dmy[0]} ${date_time[0]}
Sridevi Ramesh1495bc42020-02-04 03:13:33 -060041
Sridevi Ramesh2ab3d382021-03-29 04:16:01 -050042
Sridevi Ramesh1495bc42020-02-04 03:13:33 -060043Verify SetDateTime
Sridevi Ramesh2ab3d382021-03-29 04:16:01 -050044
Sridevi Ramesh1495bc42020-02-04 03:13:33 -060045 [Documentation] Verify set date & time for the host.
46 [Tags] Verify_SetDateTime
47
48 # Example output:
Sridevi Ramesh961050b2020-11-12 11:04:30 -060049 # {
50 # "Response": "SUCCESS"
51 # }
Sridevi Ramesh1495bc42020-02-04 03:13:33 -060052
53 ${current_date_time}= Get Current Date UTC exclude_millis=True
Sridevi Ramesh961050b2020-11-12 11:04:30 -060054 # Example output:
55 # 2020-11-25 07:34:30
Sridevi Ramesh1495bc42020-02-04 03:13:33 -060056
57 ${date}= Add Time To Date ${current_date_time} 400 days exclude_millis=True
58 ${upgrade_date}= Evaluate re.sub(r'-* *:*', "", '${date}') modules=re
59
60 ${time}= Add Time To Date ${current_date_time} 01:01:00 exclude_millis=True
61 ${upgrade_time}= Evaluate re.sub(r'-* *:*', "", '${time}') modules=re
62
63 # Set date.
64 ${cmd_set_date}= Evaluate $CMD_SETDATETIME % '${upgrade_date}'
65 ${pldm_output}= Pldmtool ${cmd_set_date}
Sridevi Ramesh961050b2020-11-12 11:04:30 -060066 Valid Value pldm_output['Response'] ['SUCCESS']
Sridevi Ramesh1495bc42020-02-04 03:13:33 -060067
68 # Set time.
69 ${cmd_set_time}= Evaluate $CMD_SETDATETIME % '${upgrade_time}'
70 ${pldm_output}= Pldmtool ${cmd_set_time}
Sridevi Rameshfe52e402020-02-05 00:15:24 -060071
Sridevi Ramesh2ab3d382021-03-29 04:16:01 -050072
Sridevi Rameshfe52e402020-02-05 00:15:24 -060073Verify GetBIOSTable For StringTable
Sridevi Ramesh2ab3d382021-03-29 04:16:01 -050074
Sridevi Rameshfe52e402020-02-05 00:15:24 -060075 [Documentation] Verify GetBIOSTable for table type string table.
76 [Tags] Verify_GetBIOSTable_For_StringTable
77
Sridevi Rameshf60581b2020-04-07 05:11:12 -050078 # Example pldm_output:
Sridevi Rameshfe52e402020-02-05 00:15:24 -060079 # [biosstringhandle]: BIOSString
80 # [0]: Allowed
81 # [1]: Disabled
82 # [2]: Enabled
83 # [3]: Not Allowed
84 # [4]: Perm
85 # [5]: Temp
Sridevi Ramesh297d41b2021-02-02 09:16:55 -060086 # [6]: pvm_fw_boot_side
87 # [7]: pvm_inband_code_update
88 # [8]: pvm_os_boot_side
89 # [9]: pvm_pcie_error_inject
90 # [10]: pvm_surveillance
91 # [11]: pvm_system_name
92 # [12]: vmi_if_count
Sridevi Rameshfe52e402020-02-05 00:15:24 -060093
Sridevi Rameshf60581b2020-04-07 05:11:12 -050094 ${pldm_output}= Pldmtool bios GetBIOSTable --type StringTable
Sridevi Ramesh961050b2020-11-12 11:04:30 -060095 @{keys}= Get Dictionary Keys ${pldm_output}
96 ${string_list}= Create List
97 FOR ${key} IN @{keys}
98 Append To List ${string_list} ${pldm_output['${key}']}
99 END
Sridevi Ramesh57537452021-01-18 03:25:05 -0600100 Valid List string_list required_values=${RESPONSE_LIST_GETBIOSTABLE_ATTRTABLE}
Sridevi Rameshf60581b2020-04-07 05:11:12 -0500101
102
103Verify GetBIOSTable For AttributeTable
Sridevi Ramesh2ab3d382021-03-29 04:16:01 -0500104
Sridevi Rameshf60581b2020-04-07 05:11:12 -0500105 [Documentation] Verify if attribute table content exist for
106 ... GetBIOSTable with table type attribute table.
107 [Tags] Verify_GetBIOSTable_For_AttributeTable
108
109 # Example pldm_output:
110 # [pldm_attributetable]: True
111 # [attributehandle]: 0
112 # [ AttributeNameHandle]: 20(vmi-if1-ipv4-method)
113 # [ attributetype]: BIOSStringReadOnly
114 # [ StringType]: 0x01
115 # [ minimumstringlength]: 1
116 # [ maximumstringlength]: 100
117 # [ defaultstringlength]: 15
Sridevi Rameshf60581b2020-04-07 05:11:12 -0500118
Sridevi Ramesh2ab3d382021-03-29 04:16:01 -0500119 ${count}= Get Length ${attr_table_data}
Sridevi Ramesh961050b2020-11-12 11:04:30 -0600120 ${attr_list}= Create List
121 FOR ${i} IN RANGE ${count}
Sridevi Ramesh2ab3d382021-03-29 04:16:01 -0500122 ${data}= Set Variable ${attr_table_data}[${i}][AttributeNameHandle]
Sridevi Ramesh961050b2020-11-12 11:04:30 -0600123 ${sub_string}= Get Substring ${data} 3 -1
124 Append To List ${attr_list} ${sub_string}
125 END
126 Valid List attr_list required_values=${RESPONSE_LIST_GETBIOSTABLE_ATTRTABLE}
Sridevi Rameshf60581b2020-04-07 05:11:12 -0500127
Sridevi Ramesh2ab3d382021-03-29 04:16:01 -0500128
Sridevi Rameshf60581b2020-04-07 05:11:12 -0500129Verify GetBIOSTable For AttributeValueTable
Sridevi Ramesh2ab3d382021-03-29 04:16:01 -0500130
Sridevi Rameshf60581b2020-04-07 05:11:12 -0500131 [Documentation] Verify if attribute value table content exist for
132 ... GetBIOSTable with table type attribute value table.
133 [Tags] Verify_GetBIOSTable_For_AttributeValueTable
134
135 # Example pldm_output:
136 # [pldm_attributevaluetable]: True
137 # [attributehandle]: 0
138 # [ attributetype]: BIOSStringReadOnly
139 # [ currentstringlength]: 15
Sridevi Rameshf60581b2020-04-07 05:11:12 -0500140
Sridevi Ramesh2ab3d382021-03-29 04:16:01 -0500141 ${count}= Get Length ${attr_table_data}
Sridevi Ramesh961050b2020-11-12 11:04:30 -0600142 ${attr_val_list}= Create List
143 FOR ${i} IN RANGE ${count}
Sridevi Ramesh2ab3d382021-03-29 04:16:01 -0500144 Append To List ${attr_val_list} ${attr_table_data}[${i}][AttributeType]
Sridevi Ramesh961050b2020-11-12 11:04:30 -0600145 END
146 Valid List attr_val_list required_values=${RESPONSE_LIST_GETBIOSTABLE_ATTRVALTABLE}
Sridevi Rameshfe52e402020-02-05 00:15:24 -0600147
Sridevi Ramesh57537452021-01-18 03:25:05 -0600148
Sridevi Ramesh57537452021-01-18 03:25:05 -0600149Verify GetBIOSAttributeCurrentValueByHandle
150
151 [Documentation] Verify GetBIOSAttributeCurrentValueByHandle with the
152 ... various BIOS attribute handle and its values.
153 [Tags] Verify_GetBIOSAttributeCurrentValueByHandle
154
155 # Example output:
156 #
157 # pldmtool bios GetBIOSAttributeCurrentValueByHandle -a pvm_fw_boot_side
158 # {
159 # "CurrentValue": "Temp"
160 # }
161
Sridevi Ramesh2ab3d382021-03-29 04:16:01 -0500162 ${attr_val_data}= GetBIOSEnumAttributeOptionalValues ${attr_table_data}
Sridevi Ramesh57537452021-01-18 03:25:05 -0600163 @{attr_handles}= Get Dictionary Keys ${attr_val_data}
164 FOR ${i} IN @{attr_handles}
165 ${cur_attr}= Pldmtool bios GetBIOSAttributeCurrentValueByHandle -a ${i}
166 @{attr_val_list}= Set Variable ${attr_val_data}[${i}]
167 Run Keyword If '${cur_attr['CurrentValue']}' not in @{attr_val_list}
168 ... Fail Invalid GetBIOSAttributeCurrentValueByHandle value found.
169 END
170
Sridevi Ramesh2ab3d382021-03-29 04:16:01 -0500171
Sridevi Ramesh1495bc42020-02-04 03:13:33 -0600172*** Keywords ***
173
Sridevi Ramesh2ab3d382021-03-29 04:16:01 -0500174PLDM BIOS Suite Setup
175
176 [Documentation] Perform PLDM BIOS suite setup.
177
178 ${pldm_output}= Pldmtool bios GetBIOSTable --type AttributeTable
179 Set Global Variable ${attr_table_data} ${pldm_output}
180
181
Sridevi Ramesh1495bc42020-02-04 03:13:33 -0600182PLDM BIOS Suite Cleanup
Sridevi Ramesh57537452021-01-18 03:25:05 -0600183
Sridevi Ramesh2ab3d382021-03-29 04:16:01 -0500184 [Documentation] Perform PLDM BIOS suite cleanup.
Sridevi Ramesh1495bc42020-02-04 03:13:33 -0600185
186 ${result}= Get Current Date UTC exclude_millis=True
187 ${current_date_time}= Evaluate re.sub(r'-* *:*', "", '${result}') modules=re
188 ${cmd_set_date_time}= Evaluate $CMD_SETDATETIME % '${current_date_time}'
189 ${pldm_output}= Pldmtool ${cmd_set_date_time}
Sridevi Ramesh961050b2020-11-12 11:04:30 -0600190 Valid Value pldm_output['Response'] ['SUCCESS']