| *** Settings *** |
| |
| Documentation Module to test PLDM BIOS attribute types. |
| |
| Library Collections |
| Library String |
| Library ../lib/pldm_utils.py |
| Variables ../data/pldm_variables.py |
| Resource ../lib/openbmc_ffdc.robot |
| |
| Test Setup Printn |
| Test Teardown FFDC On Test Case Fail |
| Suite Setup PLDM BIOS Attribute Suite Setup |
| Suite Teardown PLDM BIOS Attribute Suite Cleanup |
| |
| |
| *** Variables *** |
| |
| ${bios_original_data} ${EMPTY} |
| ${attr_table_data} ${EMPTY} |
| |
| |
| *** Test Cases *** |
| |
| Verify Get BIOS Attribute With Invalid Attribute Name |
| [Documentation] Verify get BIOS attribute with invalid attribute name. |
| [Tags] Verify_Get_BIOS_Attribute_With_Invalid_Attribute_Name |
| |
| ${random_attr}= Generate Random String 8 [LETTERS][NUMBERS] |
| ${pldm_output}= pldmtool bios GetBIOSAttributeCurrentValueByHandle -a ${random_attr} |
| |
| # Example output: |
| # |
| # pldmtool bios GetBIOSAttributeCurrentValueByHandle -a hjkhkj |
| # Can not find the attribute hjkhkj |
| # |
| |
| Should Contain ${pldm_output} Can not find the attribute |
| |
| |
| Verify Set BIOS Attribute With Invalid Attribute Name |
| [Documentation] Verify set BIOS attribute with invalid attribute name. |
| [Tags] Verify_Set_BIOS_Attribute_With_Invalid_Attribute_Name |
| |
| ${random_str}= Generate Random String 8 [LETTERS][NUMBERS] |
| ${pldm_output}= pldmtool bios SetBIOSAttributeCurrentValue -a ${random_str} -d ${random_str} |
| |
| # Example output: |
| # |
| # pldmtool bios SetBIOSAttributeCurrentValue -a hjkhkj -d 0 |
| # Could not find attribute :hjkhkj |
| # |
| |
| Should Contain ${pldm_output} Could not find attribute |
| |
| |
| Verify Set Invalid Optional Value For BIOS Enumeration Attribute Type |
| [Documentation] Verify set invalid optional value for BIOS enumeration attribute type. |
| [Tags] Verify_Set_Invalid_Optional_Value_For_BIOS_Enumeration_Attribute_Type |
| |
| ${attr_val_data}= GetBIOSEnumAttributeOptionalValues ${attr_table_data} |
| @{attr_handles}= Get Dictionary Keys ${attr_val_data} |
| ${enum_attr}= Evaluate random.choice(${attr_handles}) modules=random |
| |
| # Example output: |
| # |
| # pldmtool bios SetBIOSAttributeCurrentValue -a pvm_os_boot_side -d hhhhhj |
| # Set Attribute Error: It's not a possible value |
| # |
| |
| ${pldm_output}= pldmtool bios SetBIOSAttributeCurrentValue -a ${enum_attr} -d 0 |
| Should Contain ${pldm_output} Set Attribute Error |
| |
| |
| Verify Set Out Of Range Integer Value For BIOS Integer Attribute Type |
| [Documentation] Verify set out of range integer value for BIOS integer attribute type. |
| [Tags] Verify_Set_Out_Of_Range_Integer_Value_For_BIOS_Integer_Attribute_Type |
| |
| ${attr_val_data}= GetBIOSStrAndIntAttributeHandles BIOSInteger ${attr_table_data} |
| @{attr_handles}= Get Dictionary Keys ${attr_val_data} |
| ${int_attr}= Evaluate random.choice(${attr_handles}) modules=random |
| ${count}= Evaluate ${attr_val_data['${int_attr}']["UpperBound"]} + 5 |
| |
| # Example output: |
| # |
| # pldmtool bios SetBIOSAttributeCurrentValue -a vmi_if_count -d 12 |
| # Response Message Error: rc=0,cc=2 |
| # |
| |
| ${pldm_output}= pldmtool bios SetBIOSAttributeCurrentValue -a ${int_attr} -d ${count} |
| Should Contain ${pldm_output} Response Message Error |
| |
| |
| Verify Set Out Of Range String Value For BIOS String Attribute Type |
| [Documentation] Verify set out of range string value for BIOS string attribute type. |
| [Tags] Verify_Set_Out_Of_Range_String_Value_For_BIOS_String_Attribute_Type |
| |
| ${attr_val_data}= GetBIOSStrAndIntAttributeHandles BIOSString ${attr_table_data} |
| @{attr_handles}= Get Dictionary Keys ${attr_val_data} |
| ${str_attr}= Evaluate random.choice(${attr_handles}) modules=random |
| ${count}= Evaluate ${attr_val_data['${str_attr}']["MaximumStringLength"]} + 5 |
| ${random_value}= Generate Random String ${count} [LETTERS][NUMBERS] |
| |
| # Example output: |
| # |
| # pldmtool bios SetBIOSAttributeCurrentValue -a vmi_if0_ipv4_ipaddr -d 1234566788999 |
| # Response Message Error: rc=0,cc=2 |
| # |
| |
| ${pldm_output}= pldmtool bios SetBIOSAttributeCurrentValue -a ${str_attr} -d ${random_value} |
| Should Contain ${pldm_output} Response Message Error |
| |
| |
| Verify Set BIOS String Attribute Type |
| [Documentation] Verify set BIOS string attribute type for various BIOS |
| ... attribute handle with random values with in the range. |
| [Tags] Verify_Set_BIOS_String_Attribute_Type |
| |
| ${attr_val_data}= GetBIOSStrAndIntAttributeHandles BIOSString ${attr_table_data} |
| |
| # Example output: |
| # |
| # pldmtool bios SetBIOSAttributeCurrentValue -a vmi_hostname -d BMC |
| # { |
| # "Response": "SUCCESS" |
| # } |
| |
| @{attr_handles}= Get Dictionary Keys ${attr_val_data} |
| FOR ${i} IN @{attr_handles} |
| ${random_value}= GetRandomBIOSIntAndStrValues ${i} ${attr_val_data['${i}']["MaximumStringLength"]} |
| ${attr_val_list}= Create List |
| Append To List ${attr_val_list} ${random_value} |
| Validate Set BIOS Attributes With Optional Values ${i} @{attr_val_list} |
| END |
| |
| |
| Verify Set BIOS Integer Attribute Type |
| [Documentation] Verify set BIOS integer attribute type for various BIOS |
| ... attribute handle with random values with in the range. |
| [Tags] Verify_Set_BIOS_Integer_Attribute_Type |
| |
| ${attr_val_data}= GetBIOSStrAndIntAttributeHandles BIOSInteger ${attr_table_data} |
| |
| # Example output: |
| # |
| # pldmtool bios SetBIOSAttributeCurrentValue -a vmi_if_count -d 1 |
| # { |
| # "Response": "SUCCESS" |
| # } |
| |
| @{attr_handles}= Get Dictionary Keys ${attr_val_data} |
| |
| FOR ${i} IN @{attr_handles} |
| ${random_value}= GetRandomBIOSIntAndStrValues ${i} ${attr_val_data['${i}']["UpperBound"]} |
| ${attr_val_list}= Create List |
| Append To List ${attr_val_list} ${random_value} |
| Validate Set BIOS Attributes With Optional Values ${i} @{attr_val_list} |
| END |
| |
| |
| Verify Set BIOS Enumeration Attribute Type |
| [Documentation] Verify set BIOS enumeration attribute type for various BIOS |
| ... attribute handle with random values with in the range of |
| ... default optional values. |
| [Tags] Verify_Set_BIOS_Enumeration_Attribute_Type |
| |
| ${attr_val_data}= GetBIOSEnumAttributeOptionalValues ${attr_table_data} |
| |
| # Example output: |
| # |
| # pldmtool bios SetBIOSAttributeCurrentValue -a pvm_default_os_type -d AIX |
| # { |
| # "Response": "SUCCESS" |
| # } |
| |
| @{attr_handles}= Get Dictionary Keys ${attr_val_data} |
| FOR ${i} IN @{attr_handles} |
| @{attr_val_list}= Set Variable ${attr_val_data}[${i}] |
| Validate Set BIOS Attributes With Optional Values ${i} @{attr_val_list} |
| END |
| |
| |
| Verify Restore BIOS Attribute Values |
| [Documentation] Restore all BIOS attribute values with its default values and verify. |
| [Tags] Verify_Restore_BIOS_Attribute_Values |
| |
| ${bios_default_data}= GetBIOSAttrDefaultValues ${attr_table_data} |
| Validate Set All BIOS Attributes Values ${bios_default_data} |
| |
| |
| *** Keywords *** |
| |
| PLDM BIOS Attribute Suite Setup |
| [Documentation] Perform PLDM BIOS attribute suite setup. |
| |
| ${pldm_output}= Pldmtool bios GetBIOSTable --type AttributeTable |
| Set Global Variable ${attr_table_data} ${pldm_output} |
| |
| ${data}= GetBIOSAttrOriginalValues ${pldm_output} |
| Set Global Variable ${bios_original_data} ${data} |
| |
| |
| PLDM BIOS Attribute Suite Cleanup |
| [Documentation] Perform PLDM BIOS attribute suite cleanup. |
| |
| Run Keyword And Ignore Error |
| ... Validate Set All BIOS Attributes Values ${bios_original_data} |
| |
| |
| Validate Set BIOS Attributes With Optional Values |
| [Documentation] Set BIOS attribute with the available attribute handle |
| ... values and revert back to original attribute handle value. |
| [Arguments] ${attr_handle} @{attr_val_list} |
| |
| # Description of argument(s): |
| # attr_handle BIOS attribute handle (e.g. pvm_system_power_off_policy). |
| # attr_val_list List of the attribute values for the given attribute handle |
| # (e.g. ['"Power Off"', '"Stay On"', 'Automatic']). |
| |
| FOR ${j} IN @{attr_val_list} |
| ${pldm_resp}= pldmtool bios SetBIOSAttributeCurrentValue -a ${attr_handle} -d ${j} |
| Valid Value pldm_resp['Response'] ['SUCCESS'] |
| |
| # Compare BIOS attribute values after set operation. |
| ${output}= pldmtool bios GetBIOSAttributeCurrentValueByHandle -a ${attr_handle} |
| ${value1}= Convert To String ${output["CurrentValue"]} |
| ${value2}= Convert To String ${j} |
| ${value2}= Replace String ${value2} " ${EMPTY} |
| Should Be Equal ${value1.strip()} ${value2.strip()} |
| |
| END |
| |
| |
| Validate Set All BIOS Attributes Values |
| [Documentation] Validate Set BIOS Attributes Values. |
| [Arguments] ${bios_attr_data} |
| |
| # Description of argument(s): |
| # bios_attr_data Dictionary containing BIOS attribute name and values. |
| |
| @{keys}= Get Dictionary Keys ${bios_attr_data} |
| |
| FOR ${key} IN @{keys} |
| ${pldm_resp}= pldmtool bios SetBIOSAttributeCurrentValue -a ${key} -d ${bios_attr_data['${key}']} |
| Valid Value pldm_resp['Response'] ['SUCCESS'] |
| |
| # Compare BIOS attribute values after set operation. |
| ${output}= pldmtool bios GetBIOSAttributeCurrentValueByHandle -a ${key} |
| ${value1}= Convert To String ${output["CurrentValue"]} |
| ${value2}= Convert To String ${bios_attr_data['${key}']} |
| ${value2}= Replace String ${value2} " ${EMPTY} |
| Should Be Equal ${value1.strip()} ${value2.strip()} |
| END |