12ab3d388SSridevi Ramesh*** Settings *** 22ab3d388SSridevi Ramesh 32ab3d388SSridevi RameshDocumentation Module to test PLDM BIOS attribute types. 42ab3d388SSridevi Ramesh 52ab3d388SSridevi RameshLibrary Collections 62ab3d388SSridevi RameshLibrary String 72ab3d388SSridevi RameshLibrary ../lib/pldm_utils.py 82ab3d388SSridevi RameshVariables ../data/pldm_variables.py 92ab3d388SSridevi RameshResource ../lib/openbmc_ffdc.robot 102ab3d388SSridevi Ramesh 112ab3d388SSridevi RameshTest Setup Printn 122ab3d388SSridevi RameshTest Teardown FFDC On Test Case Fail 132ab3d388SSridevi RameshSuite Setup PLDM BIOS Attribute Suite Setup 142ab3d388SSridevi RameshSuite Teardown PLDM BIOS Attribute Suite Cleanup 152ab3d388SSridevi Ramesh 16*6fb70d98SMatt FischerTest Tags Pldm_Bios_Attributes 172ab3d388SSridevi Ramesh 182ab3d388SSridevi Ramesh*** Variables *** 192ab3d388SSridevi Ramesh 202ab3d388SSridevi Ramesh${bios_original_data} ${EMPTY} 212ab3d388SSridevi Ramesh${attr_table_data} ${EMPTY} 222ab3d388SSridevi Ramesh 232ab3d388SSridevi Ramesh 242ab3d388SSridevi Ramesh*** Test Cases *** 252ab3d388SSridevi Ramesh 262ab3d388SSridevi RameshVerify Get BIOS Attribute With Invalid Attribute Name 272ab3d388SSridevi Ramesh [Documentation] Verify get BIOS attribute with invalid attribute name. 282ab3d388SSridevi Ramesh [Tags] Verify_Get_BIOS_Attribute_With_Invalid_Attribute_Name 292ab3d388SSridevi Ramesh 302ab3d388SSridevi Ramesh ${random_attr}= Generate Random String 8 [LETTERS][NUMBERS] 312ab3d388SSridevi Ramesh ${pldm_output}= pldmtool bios GetBIOSAttributeCurrentValueByHandle -a ${random_attr} 322ab3d388SSridevi Ramesh 332ab3d388SSridevi Ramesh # Example output: 342ab3d388SSridevi Ramesh # 352ab3d388SSridevi Ramesh # pldmtool bios GetBIOSAttributeCurrentValueByHandle -a hjkhkj 362ab3d388SSridevi Ramesh # Can not find the attribute hjkhkj 372ab3d388SSridevi Ramesh # 382ab3d388SSridevi Ramesh 392ab3d388SSridevi Ramesh Should Contain ${pldm_output} Can not find the attribute 402ab3d388SSridevi Ramesh 412ab3d388SSridevi Ramesh 422ab3d388SSridevi RameshVerify Set BIOS Attribute With Invalid Attribute Name 432ab3d388SSridevi Ramesh [Documentation] Verify set BIOS attribute with invalid attribute name. 442ab3d388SSridevi Ramesh [Tags] Verify_Set_BIOS_Attribute_With_Invalid_Attribute_Name 452ab3d388SSridevi Ramesh 462ab3d388SSridevi Ramesh ${random_str}= Generate Random String 8 [LETTERS][NUMBERS] 472ab3d388SSridevi Ramesh ${pldm_output}= pldmtool bios SetBIOSAttributeCurrentValue -a ${random_str} -d ${random_str} 482ab3d388SSridevi Ramesh 492ab3d388SSridevi Ramesh # Example output: 502ab3d388SSridevi Ramesh # 512ab3d388SSridevi Ramesh # pldmtool bios SetBIOSAttributeCurrentValue -a hjkhkj -d 0 522ab3d388SSridevi Ramesh # Could not find attribute :hjkhkj 532ab3d388SSridevi Ramesh # 542ab3d388SSridevi Ramesh 552ab3d388SSridevi Ramesh Should Contain ${pldm_output} Could not find attribute 562ab3d388SSridevi Ramesh 572ab3d388SSridevi Ramesh 582ab3d388SSridevi RameshVerify Set Invalid Optional Value For BIOS Enumeration Attribute Type 592ab3d388SSridevi Ramesh [Documentation] Verify set invalid optional value for BIOS enumeration attribute type. 602ab3d388SSridevi Ramesh [Tags] Verify_Set_Invalid_Optional_Value_For_BIOS_Enumeration_Attribute_Type 612ab3d388SSridevi Ramesh 622ab3d388SSridevi Ramesh ${attr_val_data}= GetBIOSEnumAttributeOptionalValues ${attr_table_data} 632ab3d388SSridevi Ramesh @{attr_handles}= Get Dictionary Keys ${attr_val_data} 642ab3d388SSridevi Ramesh ${enum_attr}= Evaluate random.choice(${attr_handles}) modules=random 652ab3d388SSridevi Ramesh 662ab3d388SSridevi Ramesh # Example output: 672ab3d388SSridevi Ramesh # 682ab3d388SSridevi Ramesh # pldmtool bios SetBIOSAttributeCurrentValue -a pvm_os_boot_side -d hhhhhj 692ab3d388SSridevi Ramesh # Set Attribute Error: It's not a possible value 702ab3d388SSridevi Ramesh # 712ab3d388SSridevi Ramesh 722ab3d388SSridevi Ramesh ${pldm_output}= pldmtool bios SetBIOSAttributeCurrentValue -a ${enum_attr} -d 0 732ab3d388SSridevi Ramesh Should Contain ${pldm_output} Set Attribute Error 742ab3d388SSridevi Ramesh 752ab3d388SSridevi Ramesh 762ab3d388SSridevi RameshVerify Set Out Of Range Integer Value For BIOS Integer Attribute Type 772ab3d388SSridevi Ramesh [Documentation] Verify set out of range integer value for BIOS integer attribute type. 782ab3d388SSridevi Ramesh [Tags] Verify_Set_Out_Of_Range_Integer_Value_For_BIOS_Integer_Attribute_Type 792ab3d388SSridevi Ramesh 802ab3d388SSridevi Ramesh ${attr_val_data}= GetBIOSStrAndIntAttributeHandles BIOSInteger ${attr_table_data} 812ab3d388SSridevi Ramesh @{attr_handles}= Get Dictionary Keys ${attr_val_data} 822ab3d388SSridevi Ramesh ${int_attr}= Evaluate random.choice(${attr_handles}) modules=random 832ab3d388SSridevi Ramesh ${count}= Evaluate ${attr_val_data['${int_attr}']["UpperBound"]} + 5 842ab3d388SSridevi Ramesh 852ab3d388SSridevi Ramesh # Example output: 862ab3d388SSridevi Ramesh # 872ab3d388SSridevi Ramesh # pldmtool bios SetBIOSAttributeCurrentValue -a vmi_if_count -d 12 882ab3d388SSridevi Ramesh # Response Message Error: rc=0,cc=2 892ab3d388SSridevi Ramesh # 902ab3d388SSridevi Ramesh 912ab3d388SSridevi Ramesh ${pldm_output}= pldmtool bios SetBIOSAttributeCurrentValue -a ${int_attr} -d ${count} 922ab3d388SSridevi Ramesh Should Contain ${pldm_output} Response Message Error 932ab3d388SSridevi Ramesh 942ab3d388SSridevi Ramesh 952ab3d388SSridevi RameshVerify Set Out Of Range String Value For BIOS String Attribute Type 962ab3d388SSridevi Ramesh [Documentation] Verify set out of range string value for BIOS string attribute type. 972ab3d388SSridevi Ramesh [Tags] Verify_Set_Out_Of_Range_String_Value_For_BIOS_String_Attribute_Type 982ab3d388SSridevi Ramesh 992ab3d388SSridevi Ramesh ${attr_val_data}= GetBIOSStrAndIntAttributeHandles BIOSString ${attr_table_data} 1002ab3d388SSridevi Ramesh @{attr_handles}= Get Dictionary Keys ${attr_val_data} 1012ab3d388SSridevi Ramesh ${str_attr}= Evaluate random.choice(${attr_handles}) modules=random 1022ab3d388SSridevi Ramesh ${count}= Evaluate ${attr_val_data['${str_attr}']["MaximumStringLength"]} + 5 1032ab3d388SSridevi Ramesh ${random_value}= Generate Random String ${count} [LETTERS][NUMBERS] 1042ab3d388SSridevi Ramesh 1052ab3d388SSridevi Ramesh # Example output: 1062ab3d388SSridevi Ramesh # 1072ab3d388SSridevi Ramesh # pldmtool bios SetBIOSAttributeCurrentValue -a vmi_if0_ipv4_ipaddr -d 1234566788999 1082ab3d388SSridevi Ramesh # Response Message Error: rc=0,cc=2 1092ab3d388SSridevi Ramesh # 1102ab3d388SSridevi Ramesh 1112ab3d388SSridevi Ramesh ${pldm_output}= pldmtool bios SetBIOSAttributeCurrentValue -a ${str_attr} -d ${random_value} 1122ab3d388SSridevi Ramesh Should Contain ${pldm_output} Response Message Error 1132ab3d388SSridevi Ramesh 1142ab3d388SSridevi Ramesh 1152ab3d388SSridevi RameshVerify Set BIOS String Attribute Type 1162ab3d388SSridevi Ramesh [Documentation] Verify set BIOS string attribute type for various BIOS 1172ab3d388SSridevi Ramesh ... attribute handle with random values with in the range. 1182ab3d388SSridevi Ramesh [Tags] Verify_Set_BIOS_String_Attribute_Type 1192ab3d388SSridevi Ramesh 1202ab3d388SSridevi Ramesh ${attr_val_data}= GetBIOSStrAndIntAttributeHandles BIOSString ${attr_table_data} 1212ab3d388SSridevi Ramesh 1222ab3d388SSridevi Ramesh # Example output: 1232ab3d388SSridevi Ramesh # 1242ab3d388SSridevi Ramesh # pldmtool bios SetBIOSAttributeCurrentValue -a vmi_hostname -d BMC 1252ab3d388SSridevi Ramesh # { 1262ab3d388SSridevi Ramesh # "Response": "SUCCESS" 1272ab3d388SSridevi Ramesh # } 1282ab3d388SSridevi Ramesh 1292ab3d388SSridevi Ramesh @{attr_handles}= Get Dictionary Keys ${attr_val_data} 1302ab3d388SSridevi Ramesh FOR ${i} IN @{attr_handles} 1312ab3d388SSridevi Ramesh ${random_value}= GetRandomBIOSIntAndStrValues ${i} ${attr_val_data['${i}']["MaximumStringLength"]} 1322ab3d388SSridevi Ramesh ${attr_val_list}= Create List 1332ab3d388SSridevi Ramesh Append To List ${attr_val_list} ${random_value} 1342ab3d388SSridevi Ramesh Validate Set BIOS Attributes With Optional Values ${i} @{attr_val_list} 1352ab3d388SSridevi Ramesh END 1362ab3d388SSridevi Ramesh 1372ab3d388SSridevi Ramesh 1382ab3d388SSridevi RameshVerify Set BIOS Integer Attribute Type 1392ab3d388SSridevi Ramesh [Documentation] Verify set BIOS integer attribute type for various BIOS 1402ab3d388SSridevi Ramesh ... attribute handle with random values with in the range. 1412ab3d388SSridevi Ramesh [Tags] Verify_Set_BIOS_Integer_Attribute_Type 1422ab3d388SSridevi Ramesh 1432ab3d388SSridevi Ramesh ${attr_val_data}= GetBIOSStrAndIntAttributeHandles BIOSInteger ${attr_table_data} 1442ab3d388SSridevi Ramesh 1452ab3d388SSridevi Ramesh # Example output: 1462ab3d388SSridevi Ramesh # 1472ab3d388SSridevi Ramesh # pldmtool bios SetBIOSAttributeCurrentValue -a vmi_if_count -d 1 1482ab3d388SSridevi Ramesh # { 1492ab3d388SSridevi Ramesh # "Response": "SUCCESS" 1502ab3d388SSridevi Ramesh # } 1512ab3d388SSridevi Ramesh 1522ab3d388SSridevi Ramesh @{attr_handles}= Get Dictionary Keys ${attr_val_data} 1532ab3d388SSridevi Ramesh 1542ab3d388SSridevi Ramesh FOR ${i} IN @{attr_handles} 1552ab3d388SSridevi Ramesh ${random_value}= GetRandomBIOSIntAndStrValues ${i} ${attr_val_data['${i}']["UpperBound"]} 1562ab3d388SSridevi Ramesh ${attr_val_list}= Create List 1572ab3d388SSridevi Ramesh Append To List ${attr_val_list} ${random_value} 1582ab3d388SSridevi Ramesh Validate Set BIOS Attributes With Optional Values ${i} @{attr_val_list} 1592ab3d388SSridevi Ramesh END 1602ab3d388SSridevi Ramesh 1612ab3d388SSridevi Ramesh 1622ab3d388SSridevi RameshVerify Set BIOS Enumeration Attribute Type 1632ab3d388SSridevi Ramesh [Documentation] Verify set BIOS enumeration attribute type for various BIOS 1642ab3d388SSridevi Ramesh ... attribute handle with random values with in the range of 1652ab3d388SSridevi Ramesh ... default optional values. 166b98036a9SGeorge Keishing [Tags] Verify_Set_BIOS_Enumeration_Attribute_Type 1672ab3d388SSridevi Ramesh 1682ab3d388SSridevi Ramesh ${attr_val_data}= GetBIOSEnumAttributeOptionalValues ${attr_table_data} 1692ab3d388SSridevi Ramesh 1702ab3d388SSridevi Ramesh # Example output: 1712ab3d388SSridevi Ramesh # 1722ab3d388SSridevi Ramesh # pldmtool bios SetBIOSAttributeCurrentValue -a pvm_default_os_type -d AIX 1732ab3d388SSridevi Ramesh # { 1742ab3d388SSridevi Ramesh # "Response": "SUCCESS" 1752ab3d388SSridevi Ramesh # } 1762ab3d388SSridevi Ramesh 1772ab3d388SSridevi Ramesh @{attr_handles}= Get Dictionary Keys ${attr_val_data} 1782ab3d388SSridevi Ramesh FOR ${i} IN @{attr_handles} 1792ab3d388SSridevi Ramesh @{attr_val_list}= Set Variable ${attr_val_data}[${i}] 1802ab3d388SSridevi Ramesh Validate Set BIOS Attributes With Optional Values ${i} @{attr_val_list} 1812ab3d388SSridevi Ramesh END 1822ab3d388SSridevi Ramesh 1832ab3d388SSridevi Ramesh*** Keywords *** 1842ab3d388SSridevi Ramesh 1852ab3d388SSridevi RameshPLDM BIOS Attribute Suite Setup 1862ab3d388SSridevi Ramesh [Documentation] Perform PLDM BIOS attribute suite setup. 1872ab3d388SSridevi Ramesh 1882ab3d388SSridevi Ramesh ${pldm_output}= Pldmtool bios GetBIOSTable --type AttributeTable 1892ab3d388SSridevi Ramesh Set Global Variable ${attr_table_data} ${pldm_output} 1902ab3d388SSridevi Ramesh 1912ab3d388SSridevi Ramesh ${data}= GetBIOSAttrOriginalValues ${pldm_output} 1922ab3d388SSridevi Ramesh Set Global Variable ${bios_original_data} ${data} 1932ab3d388SSridevi Ramesh 1942ab3d388SSridevi Ramesh 1952ab3d388SSridevi RameshPLDM BIOS Attribute Suite Cleanup 1962ab3d388SSridevi Ramesh [Documentation] Perform PLDM BIOS attribute suite cleanup. 1972ab3d388SSridevi Ramesh 198e18030c5SGeorge Keishing Run Keyword And Ignore Error 199e18030c5SGeorge Keishing ... Validate Set All BIOS Attributes Values ${bios_original_data} 2002ab3d388SSridevi Ramesh 2012ab3d388SSridevi Ramesh 2022ab3d388SSridevi RameshValidate Set BIOS Attributes With Optional Values 2032ab3d388SSridevi Ramesh [Documentation] Set BIOS attribute with the available attribute handle 2042ab3d388SSridevi Ramesh ... values and revert back to original attribute handle value. 2052ab3d388SSridevi Ramesh [Arguments] ${attr_handle} @{attr_val_list} 2062ab3d388SSridevi Ramesh 2072ab3d388SSridevi Ramesh # Description of argument(s): 2082ab3d388SSridevi Ramesh # attr_handle BIOS attribute handle (e.g. pvm_system_power_off_policy). 2092ab3d388SSridevi Ramesh # attr_val_list List of the attribute values for the given attribute handle 2102ab3d388SSridevi Ramesh # (e.g. ['"Power Off"', '"Stay On"', 'Automatic']). 2112ab3d388SSridevi Ramesh 2122ab3d388SSridevi Ramesh FOR ${j} IN @{attr_val_list} 2132ab3d388SSridevi Ramesh ${pldm_resp}= pldmtool bios SetBIOSAttributeCurrentValue -a ${attr_handle} -d ${j} 2142ab3d388SSridevi Ramesh Valid Value pldm_resp['Response'] ['SUCCESS'] 2152ab3d388SSridevi Ramesh 2162ab3d388SSridevi Ramesh # Compare BIOS attribute values after set operation. 2172ab3d388SSridevi Ramesh ${output}= pldmtool bios GetBIOSAttributeCurrentValueByHandle -a ${attr_handle} 2182ab3d388SSridevi Ramesh ${value1}= Convert To String ${output["CurrentValue"]} 2192ab3d388SSridevi Ramesh ${value2}= Convert To String ${j} 2202ab3d388SSridevi Ramesh ${value2}= Replace String ${value2} " ${EMPTY} 2212ab3d388SSridevi Ramesh Should Be Equal ${value1.strip()} ${value2.strip()} 2222ab3d388SSridevi Ramesh 2232ab3d388SSridevi Ramesh END 2242ab3d388SSridevi Ramesh 2252ab3d388SSridevi Ramesh 2262ab3d388SSridevi RameshValidate Set All BIOS Attributes Values 2272ab3d388SSridevi Ramesh [Documentation] Validate Set BIOS Attributes Values. 2282ab3d388SSridevi Ramesh [Arguments] ${bios_attr_data} 2292ab3d388SSridevi Ramesh 2302ab3d388SSridevi Ramesh # Description of argument(s): 2312ab3d388SSridevi Ramesh # bios_attr_data Dictionary containing BIOS attribute name and values. 2322ab3d388SSridevi Ramesh 2332ab3d388SSridevi Ramesh @{keys}= Get Dictionary Keys ${bios_attr_data} 2342ab3d388SSridevi Ramesh 2352ab3d388SSridevi Ramesh FOR ${key} IN @{keys} 2362ab3d388SSridevi Ramesh ${pldm_resp}= pldmtool bios SetBIOSAttributeCurrentValue -a ${key} -d ${bios_attr_data['${key}']} 2372ab3d388SSridevi Ramesh Valid Value pldm_resp['Response'] ['SUCCESS'] 2382ab3d388SSridevi Ramesh 2392ab3d388SSridevi Ramesh # Compare BIOS attribute values after set operation. 2402ab3d388SSridevi Ramesh ${output}= pldmtool bios GetBIOSAttributeCurrentValueByHandle -a ${key} 2412ab3d388SSridevi Ramesh ${value1}= Convert To String ${output["CurrentValue"]} 2422ab3d388SSridevi Ramesh ${value2}= Convert To String ${bios_attr_data['${key}']} 2432ab3d388SSridevi Ramesh ${value2}= Replace String ${value2} " ${EMPTY} 2442ab3d388SSridevi Ramesh Should Be Equal ${value1.strip()} ${value2.strip()} 2452ab3d388SSridevi Ramesh END 246