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 Teardown PLDM BIOS Suite Cleanup 14 15*** Test Cases *** 16 17Verify GetDateTime 18 [Documentation] Verify host date & time. 19 [Tags] Verify_GetDateTime 20 21 # Example output: 22 # { 23 # "Response": "2020-11-07 07:10:10" 24 # } 25 26 ${pldm_output}= Pldmtool bios GetDateTime 27 @{date_time}= Split String ${pldm_output['Response']} ${SPACE} 28 @{time}= Split String ${date_time}[1] : 29 30 # verify date & time. 31 ${utc}= Get Current Date UTC exclude_millis=True 32 @{current_dmy}= Split String ${utc} ${SPACE} 33 @{current_time}= Split String ${current_dmy[1]} : 34 35 # Example output: 36 # 2020-11-25 07:34:30 37 38 Should Contain ${current_dmy[0]} ${date_time[0]} 39 Should Contain ${current_time[0]} ${time[0]} 40 41Verify SetDateTime 42 [Documentation] Verify set date & time for the host. 43 [Tags] Verify_SetDateTime 44 45 # Example output: 46 # { 47 # "Response": "SUCCESS" 48 # } 49 50 ${current_date_time}= Get Current Date UTC exclude_millis=True 51 # Example output: 52 # 2020-11-25 07:34:30 53 54 ${date}= Add Time To Date ${current_date_time} 400 days exclude_millis=True 55 ${upgrade_date}= Evaluate re.sub(r'-* *:*', "", '${date}') modules=re 56 57 ${time}= Add Time To Date ${current_date_time} 01:01:00 exclude_millis=True 58 ${upgrade_time}= Evaluate re.sub(r'-* *:*', "", '${time}') modules=re 59 60 # Set date. 61 ${cmd_set_date}= Evaluate $CMD_SETDATETIME % '${upgrade_date}' 62 ${pldm_output}= Pldmtool ${cmd_set_date} 63 Valid Value pldm_output['Response'] ['SUCCESS'] 64 65 # Set time. 66 ${cmd_set_time}= Evaluate $CMD_SETDATETIME % '${upgrade_time}' 67 ${pldm_output}= Pldmtool ${cmd_set_time} 68 69Verify GetBIOSTable For StringTable 70 [Documentation] Verify GetBIOSTable for table type string table. 71 [Tags] Verify_GetBIOSTable_For_StringTable 72 73 # Example pldm_output: 74 # [biosstringhandle]: BIOSString 75 # [0]: Allowed 76 # [1]: Disabled 77 # [2]: Enabled 78 # [3]: Not Allowed 79 # [4]: Perm 80 # [5]: Temp 81 # [6]: pvm-fw-boot-side 82 # [7]: pvm-inband-code-update 83 # [8]: pvm-os-boot-side 84 # [9]: pvm-pcie-error-inject 85 # [10]: pvm-surveillance 86 # [11]: pvm-system-name 87 # [12]: vmi-if-count 88 89 ${pldm_output}= Pldmtool bios GetBIOSTable --type StringTable 90 @{keys}= Get Dictionary Keys ${pldm_output} 91 ${string_list}= Create List 92 FOR ${key} IN @{keys} 93 Append To List ${string_list} ${pldm_output['${key}']} 94 END 95 Log To Console ${string_list} 96 Valid List string_list required_values=${RESPONSE_LIST_GETBIOSTABLE_STRTABLE} 97 98 99Verify GetBIOSTable For AttributeTable 100 [Documentation] Verify if attribute table content exist for 101 ... GetBIOSTable with table type attribute table. 102 [Tags] Verify_GetBIOSTable_For_AttributeTable 103 104 # Example pldm_output: 105 # [pldm_attributetable]: True 106 # [attributehandle]: 0 107 # [ AttributeNameHandle]: 20(vmi-if1-ipv4-method) 108 # [ attributetype]: BIOSStringReadOnly 109 # [ StringType]: 0x01 110 # [ minimumstringlength]: 1 111 # [ maximumstringlength]: 100 112 # [ defaultstringlength]: 15 113 114 ${pldm_output}= Pldmtool bios GetBIOSTable --type AttributeTable 115 ${count}= Get Length ${pldm_output} 116 ${attr_list}= Create List 117 FOR ${i} IN RANGE ${count} 118 ${data}= Set Variable ${pldm_output}[${i}][AttributeNameHandle] 119 ${sub_string}= Get Substring ${data} 3 -1 120 Append To List ${attr_list} ${sub_string} 121 END 122 Valid List attr_list required_values=${RESPONSE_LIST_GETBIOSTABLE_ATTRTABLE} 123 124Verify GetBIOSTable For AttributeValueTable 125 [Documentation] Verify if attribute value table content exist for 126 ... GetBIOSTable with table type attribute value table. 127 [Tags] Verify_GetBIOSTable_For_AttributeValueTable 128 129 # Example pldm_output: 130 # [pldm_attributevaluetable]: True 131 # [attributehandle]: 0 132 # [ attributetype]: BIOSStringReadOnly 133 # [ currentstringlength]: 15 134 135 ${pldm_output}= Pldmtool bios GetBIOSTable --type AttributeValueTable 136 ${count}= Get Length ${pldm_output} 137 ${attr_val_list}= Create List 138 FOR ${i} IN RANGE ${count} 139 Append To List ${attr_val_list} ${pldm_output}[${i}][AttributeType] 140 END 141 Valid List attr_val_list required_values=${RESPONSE_LIST_GETBIOSTABLE_ATTRVALTABLE} 142 143*** Keywords *** 144 145PLDM BIOS Suite Cleanup 146 [Documentation] Perform pldm BIOS suite cleanup. 147 148 ${result}= Get Current Date UTC exclude_millis=True 149 ${current_date_time}= Evaluate re.sub(r'-* *:*', "", '${result}') modules=re 150 ${cmd_set_date_time}= Evaluate $CMD_SETDATETIME % '${current_date_time}' 151 ${pldm_output}= Pldmtool ${cmd_set_date_time} 152 Valid Value pldm_output['Response'] ['SUCCESS'] 153