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