1*** Settings *** 2 3Documentation Module to test PLDM BIOS commands. 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 Suite Setup 14Suite Teardown PLDM BIOS Suite Cleanup 15 16*** Test Cases *** 17 18Verify GetDateTime 19 20 [Documentation] Verify host date & time. 21 [Tags] Verify_GetDateTime 22 23 # Example output: 24 # { 25 # "Response": "2020-11-07 07:10:10" 26 # } 27 28 ${pldm_output}= Pldmtool bios GetDateTime 29 @{date_time}= Split String ${pldm_output['Response']} ${SPACE} 30 @{time}= Split String ${date_time}[1] : 31 32 # verify date & time. 33 ${utc}= Get Current Date UTC exclude_millis=True 34 @{current_dmy}= Split String ${utc} ${SPACE} 35 @{current_time}= Split String ${current_dmy[1]} : 36 37 # Example output: 38 # 2020-11-25 07:34:30 39 40 Should Contain ${current_dmy[0]} ${date_time[0]} 41 42 43Verify SetDateTime 44 45 [Documentation] Verify set date & time for the host. 46 [Tags] Verify_SetDateTime 47 48 # Example output: 49 # { 50 # "Response": "SUCCESS" 51 # } 52 53 ${current_date_time}= Get Current Date UTC exclude_millis=True 54 # Example output: 55 # 2020-11-25 07:34:30 56 57 ${date}= Add Time To Date ${current_date_time} 400 days exclude_millis=True 58 ${upgrade_date}= Evaluate re.sub(r'-* *:*', "", '${date}') modules=re 59 60 ${time}= Add Time To Date ${current_date_time} 01:01:00 exclude_millis=True 61 ${upgrade_time}= Evaluate re.sub(r'-* *:*', "", '${time}') modules=re 62 63 # Set date. 64 ${cmd_set_date}= Evaluate $CMD_SETDATETIME % '${upgrade_date}' 65 ${pldm_output}= Pldmtool ${cmd_set_date} 66 Valid Value pldm_output['Response'] ['SUCCESS'] 67 68 # Set time. 69 ${cmd_set_time}= Evaluate $CMD_SETDATETIME % '${upgrade_time}' 70 ${pldm_output}= Pldmtool ${cmd_set_time} 71 72 73Verify GetBIOSTable For AttributeValueTable 74 75 [Documentation] Verify if attribute value table content exist for 76 ... GetBIOSTable with table type attribute value table. 77 [Tags] Verify_GetBIOSTable_For_AttributeValueTable 78 79 # Example pldm_output: 80 # [pldm_attributevaluetable]: True 81 # [attributehandle]: 0 82 # [ attributetype]: BIOSStringReadOnly 83 # [ currentstringlength]: 15 84 85 ${count}= Get Length ${attr_table_data} 86 ${attr_val_list}= Create List 87 FOR ${i} IN RANGE ${count} 88 Append To List ${attr_val_list} ${attr_table_data}[${i}][AttributeType] 89 END 90 Valid List attr_val_list required_values=${RESPONSE_LIST_GETBIOSTABLE_ATTRVALTABLE} 91 92 93Verify GetBIOSAttributeCurrentValueByHandle 94 95 [Documentation] Verify GetBIOSAttributeCurrentValueByHandle with the 96 ... various BIOS attribute handle and its values. 97 [Tags] Verify_GetBIOSAttributeCurrentValueByHandle 98 99 # Example output: 100 # 101 # pldmtool bios GetBIOSAttributeCurrentValueByHandle -a pvm_fw_boot_side 102 # { 103 # "CurrentValue": "Temp" 104 # } 105 106 ${attr_val_data}= GetBIOSEnumAttributeOptionalValues ${attr_table_data} 107 @{attr_handles}= Get Dictionary Keys ${attr_val_data} 108 FOR ${i} IN @{attr_handles} 109 ${cur_attr}= Pldmtool bios GetBIOSAttributeCurrentValueByHandle -a ${i} 110 @{attr_val_list}= Set Variable ${attr_val_data}[${i}] 111 Run Keyword If '${cur_attr['CurrentValue']}' not in @{attr_val_list} 112 ... Fail Invalid GetBIOSAttributeCurrentValueByHandle value found. 113 END 114 115 116*** Keywords *** 117 118PLDM BIOS Suite Setup 119 120 [Documentation] Perform PLDM BIOS suite setup. 121 122 ${pldm_output}= Pldmtool bios GetBIOSTable --type AttributeTable 123 Set Global Variable ${attr_table_data} ${pldm_output} 124 125 126PLDM BIOS Suite Cleanup 127 128 [Documentation] Perform PLDM BIOS suite cleanup. 129 130 ${result}= Get Current Date UTC exclude_millis=True 131 ${current_date_time}= Evaluate re.sub(r'-* *:*', "", '${result}') modules=re 132 ${cmd_set_date_time}= Evaluate $CMD_SETDATETIME % '${current_date_time}' 133 ${pldm_output}= Pldmtool ${cmd_set_date_time} 134 Valid Value pldm_output['Response'] ['SUCCESS'] 135