14d9b7e13SGeorge Keishing*** Settings *** 24d9b7e13SGeorge KeishingDocumentation Test BMC using https://github.com/DMTF/Redfish-Usecase-Checkers 34d9b7e13SGeorge Keishing... DMTF tool. 44d9b7e13SGeorge Keishing 5fc3d8f1dSGeorge KeishingResource ../../lib/resource.robot 64d9b7e13SGeorge KeishingResource ../../lib/dmtf_tools_utils.robot 74d9b7e13SGeorge KeishingResource ../../lib/openbmc_ffdc.robot 8fc3d8f1dSGeorge KeishingLibrary OperatingSystem 9fc3d8f1dSGeorge KeishingLibrary ../../lib/state.py 104d9b7e13SGeorge Keishing 114d9b7e13SGeorge KeishingTest Setup Test Setup Execution 124d9b7e13SGeorge KeishingTest Teardown Test Teardown Execution 134d9b7e13SGeorge Keishing 144d9b7e13SGeorge Keishing*** Variables *** 154d9b7e13SGeorge Keishing 164d9b7e13SGeorge Keishing${DEFAULT_PYTHON} python3 174d9b7e13SGeorge Keishing 184d9b7e13SGeorge Keishing${rsv_github_url} https://github.com/DMTF/Redfish-Usecase-Checkers.git 194d9b7e13SGeorge Keishing${rsv_dir_path} Redfish-Usecase-Checkers 204d9b7e13SGeorge Keishing 214d9b7e13SGeorge Keishing${command_account} ${DEFAULT_PYTHON} ${rsv_dir_path}${/}account_management/account_management.py 224d9b7e13SGeorge Keishing... -r ${OPENBMC_HOST} -u ${OPENBMC_USERNAME} 23fc3d8f1dSGeorge Keishing... -p ${OPENBMC_PASSWORD} -S Always -d ${EXECDIR}${/}account-logs${/} 244d9b7e13SGeorge Keishing 256a69d26fSGeorge Keishing${command_power_control} ${DEFAULT_PYTHON} ${rsv_dir_path}${/}power_control/power_control.py 266a69d26fSGeorge Keishing... -r ${OPENBMC_HOST} -u ${OPENBMC_USERNAME} 27fc3d8f1dSGeorge Keishing... -p ${OPENBMC_PASSWORD} -S Always -d ${EXECDIR}${/}power-logs${/} 286a69d26fSGeorge Keishing 296a69d26fSGeorge Keishing${power_on_timeout} 15 mins 306a69d26fSGeorge Keishing${power_off_timeout} 15 mins 316a69d26fSGeorge Keishing${state_change_timeout} 3 mins 32bca06d02Sganesanb${branch_name} main 336a69d26fSGeorge Keishing 34409df05dSGeorge Keishing*** Test Cases *** 354d9b7e13SGeorge Keishing 364d9b7e13SGeorge KeishingTest BMC Redfish Account Management 374d9b7e13SGeorge Keishing [Documentation] Check Account Management with a Redfish interface. 384d9b7e13SGeorge Keishing [Tags] Test_BMC_Redfish_Account_Management 394d9b7e13SGeorge Keishing 40a053fb34Smanashsarma ${output}= Run DMTF Tool ${rsv_dir_path} ${command_account} check_error=1 414d9b7e13SGeorge Keishing 42fc3d8f1dSGeorge Keishing ${output}= Shell Cmd cat ${EXECDIR}${/}account-logs${/}results.json 434d9b7e13SGeorge Keishing Log ${output} 444d9b7e13SGeorge Keishing 45fc3d8f1dSGeorge Keishing ${json}= OperatingSystem.Get File ${EXECDIR}${/}account-logs${/}results.json 46a053fb34Smanashsarma 47a053fb34Smanashsarma ${object}= Evaluate json.loads('''${json}''') json 48a053fb34Smanashsarma 49a053fb34Smanashsarma ${result_list}= Set Variable ${object["TestResults"]} 50a053fb34Smanashsarma 51a053fb34Smanashsarma @{failed_tc_list}= Create List 52a053fb34Smanashsarma 53a053fb34Smanashsarma FOR ${result} IN @{result_list} 54*4fc2415dSGeorge Keishing ${rc}= Evaluate 'ErrorMessages'=='${result}' 55a053fb34Smanashsarma ${num}= Run Keyword If ${rc} == False Set Variable ${result_list["${result}"]["fail"]} 56a053fb34Smanashsarma Run Keyword If ${num} != None and ${num} > 0 Append To List ${failed_tc_list} ${result} 57a053fb34Smanashsarma END 58a053fb34Smanashsarma 59a053fb34Smanashsarma Should Be Empty ${failed_tc_list} Failed test cases are ${failed_tc_list} 60a053fb34Smanashsarma 616a69d26fSGeorge Keishing 621c5d325eSPeter D PhanTest BMC Redfish Power Control Usecase 631c5d325eSPeter D Phan [Documentation] Power Control Usecase Test. 64e23afb58SGeorge Keishing [Tags] Test_BMC_Redfish_Power_Control_Usecase 656a69d26fSGeorge Keishing 661c5d325eSPeter D Phan DMTF Power 676a69d26fSGeorge Keishing 686a69d26fSGeorge Keishing 694d9b7e13SGeorge Keishing*** Keywords *** 704d9b7e13SGeorge Keishing 714d9b7e13SGeorge KeishingTest Setup Execution 724d9b7e13SGeorge Keishing [Documentation] Do test case setup tasks. 734d9b7e13SGeorge Keishing 746a69d26fSGeorge Keishing Printn 75bca06d02Sganesanb Download DMTF Tool ${rsv_dir_path} ${rsv_github_url} ${branch_name} 764d9b7e13SGeorge Keishing 776a69d26fSGeorge Keishing 784d9b7e13SGeorge KeishingTest Teardown Execution 794d9b7e13SGeorge Keishing [Documentation] Do the post-test teardown. 804d9b7e13SGeorge Keishing 816a69d26fSGeorge Keishing Printn 824d9b7e13SGeorge Keishing FFDC On Test Case Fail 836a69d26fSGeorge Keishing 846a69d26fSGeorge Keishing 851c5d325eSPeter D PhanDMTF Power 866a69d26fSGeorge Keishing [Documentation] Power the BMC machine on via DMTF tools. 876a69d26fSGeorge Keishing 88fc3d8f1dSGeorge Keishing ${output}= Run DMTF Tool ${rsv_dir_path} ${command_power_control} check_error=1 89fc3d8f1dSGeorge Keishing Log ${output} 906a69d26fSGeorge Keishing 91fc3d8f1dSGeorge Keishing ${json}= OperatingSystem.Get File ${EXECDIR}${/}power-logs${/}results.json 92fc3d8f1dSGeorge Keishing 93fc3d8f1dSGeorge Keishing ${object}= Evaluate json.loads('''${json}''') json 94fc3d8f1dSGeorge Keishing 95fc3d8f1dSGeorge Keishing ${result_list}= Set Variable ${object["TestResults"]} 96fc3d8f1dSGeorge Keishing Log To Console result: ${result_list} 97fc3d8f1dSGeorge Keishing 98fc3d8f1dSGeorge Keishing @{failed_tc_list}= Create List 99fc3d8f1dSGeorge Keishing @{error_messages}= Create List 100fc3d8f1dSGeorge Keishing 101fc3d8f1dSGeorge Keishing FOR ${result} IN @{result_list} 102*4fc2415dSGeorge Keishing ${rc}= Evaluate 'ErrorMessages'=='${result}' 103fc3d8f1dSGeorge Keishing ${num}= Run Keyword If ${rc} == False Set Variable ${result_list["${result}"]["fail"]} 104fc3d8f1dSGeorge Keishing Run Keyword If ${num} != None and ${num} > 0 Append To List ${failed_tc_list} ${result} 105fc3d8f1dSGeorge Keishing Run Keyword If ${rc} == True Set Variable 106fc3d8f1dSGeorge Keishing ... Append To List ${error_messages} ${result_list["ErrorMessages"]} 107fc3d8f1dSGeorge Keishing END 108fc3d8f1dSGeorge Keishing 109fc3d8f1dSGeorge Keishing Log Many ErrorMessages: @{error_messages} 110fc3d8f1dSGeorge Keishing Log To Console ErrorMessages: 111fc3d8f1dSGeorge Keishing FOR ${msg} IN @{error_messages} 112fc3d8f1dSGeorge Keishing Log To Console ${msg} 113fc3d8f1dSGeorge Keishing END 114fc3d8f1dSGeorge Keishing 115fc3d8f1dSGeorge Keishing Should Be Empty ${error_messages} DMTF Power keyword failed. 116