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