blob: 74626a6f586ad17c6488c03c29691c9e732a31c5 [file] [log] [blame]
Sridevi Ramesh2ab3d382021-03-29 04:16:01 -05001*** Settings ***
2
3Documentation Module to test PLDM BIOS attribute types.
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
13Suite Setup PLDM BIOS Attribute Suite Setup
14Suite Teardown PLDM BIOS Attribute Suite Cleanup
15
16
17*** Variables ***
18
19${bios_original_data} ${EMPTY}
20${attr_table_data} ${EMPTY}
21
22
23*** Test Cases ***
24
25Verify Get BIOS Attribute With Invalid Attribute Name
26
27 [Documentation] Verify get BIOS attribute with invalid attribute name.
28 [Tags] Verify_Get_BIOS_Attribute_With_Invalid_Attribute_Name
29
30 ${random_attr}= Generate Random String 8 [LETTERS][NUMBERS]
31 ${pldm_output}= pldmtool bios GetBIOSAttributeCurrentValueByHandle -a ${random_attr}
32
33 # Example output:
34 #
35 # pldmtool bios GetBIOSAttributeCurrentValueByHandle -a hjkhkj
36 # Can not find the attribute hjkhkj
37 #
38
39 Should Contain ${pldm_output} Can not find the attribute
40
41
42Verify Set BIOS Attribute With Invalid Attribute Name
43
44 [Documentation] Verify set BIOS attribute with invalid attribute name.
45 [Tags] Verify_Set_BIOS_Attribute_With_Invalid_Attribute_Name
46
47 ${random_str}= Generate Random String 8 [LETTERS][NUMBERS]
48 ${pldm_output}= pldmtool bios SetBIOSAttributeCurrentValue -a ${random_str} -d ${random_str}
49
50 # Example output:
51 #
52 # pldmtool bios SetBIOSAttributeCurrentValue -a hjkhkj -d 0
53 # Could not find attribute :hjkhkj
54 #
55
56 Should Contain ${pldm_output} Could not find attribute
57
58
59Verify Set Invalid Optional Value For BIOS Enumeration Attribute Type
60
61 [Documentation] Verify set invalid optional value for BIOS enumeration attribute type.
62 [Tags] Verify_Set_Invalid_Optional_Value_For_BIOS_Enumeration_Attribute_Type
63
64 ${attr_val_data}= GetBIOSEnumAttributeOptionalValues ${attr_table_data}
65 @{attr_handles}= Get Dictionary Keys ${attr_val_data}
66 ${enum_attr}= Evaluate random.choice(${attr_handles}) modules=random
67
68 # Example output:
69 #
70 # pldmtool bios SetBIOSAttributeCurrentValue -a pvm_os_boot_side -d hhhhhj
71 # Set Attribute Error: It's not a possible value
72 #
73
74 ${pldm_output}= pldmtool bios SetBIOSAttributeCurrentValue -a ${enum_attr} -d 0
75 Should Contain ${pldm_output} Set Attribute Error
76
77
78Verify Set Out Of Range Integer Value For BIOS Integer Attribute Type
79
80 [Documentation] Verify set out of range integer value for BIOS integer attribute type.
81 [Tags] Verify_Set_Out_Of_Range_Integer_Value_For_BIOS_Integer_Attribute_Type
82
83 ${attr_val_data}= GetBIOSStrAndIntAttributeHandles BIOSInteger ${attr_table_data}
84 @{attr_handles}= Get Dictionary Keys ${attr_val_data}
85 ${int_attr}= Evaluate random.choice(${attr_handles}) modules=random
86 ${count}= Evaluate ${attr_val_data['${int_attr}']["UpperBound"]} + 5
87
88 # Example output:
89 #
90 # pldmtool bios SetBIOSAttributeCurrentValue -a vmi_if_count -d 12
91 # Response Message Error: rc=0,cc=2
92 #
93
94 ${pldm_output}= pldmtool bios SetBIOSAttributeCurrentValue -a ${int_attr} -d ${count}
95 Should Contain ${pldm_output} Response Message Error
96
97
98Verify Set Out Of Range String Value For BIOS String Attribute Type
99
100 [Documentation] Verify set out of range string value for BIOS string attribute type.
101 [Tags] Verify_Set_Out_Of_Range_String_Value_For_BIOS_String_Attribute_Type
102
103 ${attr_val_data}= GetBIOSStrAndIntAttributeHandles BIOSString ${attr_table_data}
104 @{attr_handles}= Get Dictionary Keys ${attr_val_data}
105 ${str_attr}= Evaluate random.choice(${attr_handles}) modules=random
106 ${count}= Evaluate ${attr_val_data['${str_attr}']["MaximumStringLength"]} + 5
107 ${random_value}= Generate Random String ${count} [LETTERS][NUMBERS]
108
109 # Example output:
110 #
111 # pldmtool bios SetBIOSAttributeCurrentValue -a vmi_if0_ipv4_ipaddr -d 1234566788999
112 # Response Message Error: rc=0,cc=2
113 #
114
115 ${pldm_output}= pldmtool bios SetBIOSAttributeCurrentValue -a ${str_attr} -d ${random_value}
116 Should Contain ${pldm_output} Response Message Error
117
118
119Verify Set BIOS String Attribute Type
120
121 [Documentation] Verify set BIOS string attribute type for various BIOS
122 ... attribute handle with random values with in the range.
123 [Tags] Verify_Set_BIOS_String_Attribute_Type
124
125 ${attr_val_data}= GetBIOSStrAndIntAttributeHandles BIOSString ${attr_table_data}
126
127 # Example output:
128 #
129 # pldmtool bios SetBIOSAttributeCurrentValue -a vmi_hostname -d BMC
130 # {
131 # "Response": "SUCCESS"
132 # }
133
134 @{attr_handles}= Get Dictionary Keys ${attr_val_data}
135 FOR ${i} IN @{attr_handles}
136 ${random_value}= GetRandomBIOSIntAndStrValues ${i} ${attr_val_data['${i}']["MaximumStringLength"]}
137 ${attr_val_list}= Create List
138 Append To List ${attr_val_list} ${random_value}
139 Validate Set BIOS Attributes With Optional Values ${i} @{attr_val_list}
140 END
141
142
143Verify Set BIOS Integer Attribute Type
144
145 [Documentation] Verify set BIOS integer attribute type for various BIOS
146 ... attribute handle with random values with in the range.
147 [Tags] Verify_Set_BIOS_Integer_Attribute_Type
148
149 ${attr_val_data}= GetBIOSStrAndIntAttributeHandles BIOSInteger ${attr_table_data}
150
151 # Example output:
152 #
153 # pldmtool bios SetBIOSAttributeCurrentValue -a vmi_if_count -d 1
154 # {
155 # "Response": "SUCCESS"
156 # }
157
158 @{attr_handles}= Get Dictionary Keys ${attr_val_data}
159
160 FOR ${i} IN @{attr_handles}
161 ${random_value}= GetRandomBIOSIntAndStrValues ${i} ${attr_val_data['${i}']["UpperBound"]}
162 ${attr_val_list}= Create List
163 Append To List ${attr_val_list} ${random_value}
164 Validate Set BIOS Attributes With Optional Values ${i} @{attr_val_list}
165 END
166
167
168Verify Set BIOS Enumeration Attribute Type
169
170 [Documentation] Verify set BIOS enumeration attribute type for various BIOS
171 ... attribute handle with random values with in the range of
172 ... default optional values.
173 [Tags] Verify_BIOS_Enumeration_Attribute_Type
174
175 ${attr_val_data}= GetBIOSEnumAttributeOptionalValues ${attr_table_data}
176
177 # Example output:
178 #
179 # pldmtool bios SetBIOSAttributeCurrentValue -a pvm_default_os_type -d AIX
180 # {
181 # "Response": "SUCCESS"
182 # }
183
184 @{attr_handles}= Get Dictionary Keys ${attr_val_data}
185 FOR ${i} IN @{attr_handles}
186 @{attr_val_list}= Set Variable ${attr_val_data}[${i}]
187 Validate Set BIOS Attributes With Optional Values ${i} @{attr_val_list}
188 END
189
190
191Verify Restore BIOS Attribute Values
192
193 [Documentation] Restore all BIOS attribute values with its default values and verify.
194 [Tags] Verify_Restore_BIOS_Attribute_Values
195
196 ${bios_default_data}= GetBIOSAttrDefaultValues ${attr_table_data}
197 Validate Set All BIOS Attributes Values ${bios_default_data}
198
199
200*** Keywords ***
201
202PLDM BIOS Attribute Suite Setup
203
204 [Documentation] Perform PLDM BIOS attribute suite setup.
205
206 ${pldm_output}= Pldmtool bios GetBIOSTable --type AttributeTable
207 Set Global Variable ${attr_table_data} ${pldm_output}
208
209 ${data}= GetBIOSAttrOriginalValues ${pldm_output}
210 Set Global Variable ${bios_original_data} ${data}
211
212
213PLDM BIOS Attribute Suite Cleanup
214
215 [Documentation] Perform PLDM BIOS attribute suite cleanup.
216
217 Validate Set All BIOS Attributes Values ${bios_original_data}
218
219
220Validate Set BIOS Attributes With Optional Values
221
222 [Documentation] Set BIOS attribute with the available attribute handle
223 ... values and revert back to original attribute handle value.
224 [Arguments] ${attr_handle} @{attr_val_list}
225
226 # Description of argument(s):
227 # attr_handle BIOS attribute handle (e.g. pvm_system_power_off_policy).
228 # attr_val_list List of the attribute values for the given attribute handle
229 # (e.g. ['"Power Off"', '"Stay On"', 'Automatic']).
230
231 FOR ${j} IN @{attr_val_list}
232 ${pldm_resp}= pldmtool bios SetBIOSAttributeCurrentValue -a ${attr_handle} -d ${j}
233 Valid Value pldm_resp['Response'] ['SUCCESS']
234
235 # Compare BIOS attribute values after set operation.
236 ${output}= pldmtool bios GetBIOSAttributeCurrentValueByHandle -a ${attr_handle}
237 ${value1}= Convert To String ${output["CurrentValue"]}
238 ${value2}= Convert To String ${j}
239 ${value2}= Replace String ${value2} " ${EMPTY}
240 Should Be Equal ${value1.strip()} ${value2.strip()}
241
242 END
243
244
245Validate Set All BIOS Attributes Values
246
247 [Documentation] Validate Set BIOS Attributes Values.
248 [Arguments] ${bios_attr_data}
249
250 # Description of argument(s):
251 # bios_attr_data Dictionary containing BIOS attribute name and values.
252
253 @{keys}= Get Dictionary Keys ${bios_attr_data}
254
255 FOR ${key} IN @{keys}
256 ${pldm_resp}= pldmtool bios SetBIOSAttributeCurrentValue -a ${key} -d ${bios_attr_data['${key}']}
257 Valid Value pldm_resp['Response'] ['SUCCESS']
258
259 # Compare BIOS attribute values after set operation.
260 ${output}= pldmtool bios GetBIOSAttributeCurrentValueByHandle -a ${key}
261 ${value1}= Convert To String ${output["CurrentValue"]}
262 ${value2}= Convert To String ${bios_attr_data['${key}']}
263 ${value2}= Replace String ${value2} " ${EMPTY}
264 Should Be Equal ${value1.strip()} ${value2.strip()}
265 END