14d9b7e13SGeorge Keishing*** Settings *** 24d9b7e13SGeorge KeishingDocumentation Test BMC using https://github.com/DMTF/Redfish-Usecase-Checkers 34d9b7e13SGeorge Keishing... DMTF tool. 44d9b7e13SGeorge Keishing 5*fc3d8f1dSGeorge KeishingResource ../../lib/resource.robot 64d9b7e13SGeorge KeishingResource ../../lib/dmtf_tools_utils.robot 74d9b7e13SGeorge KeishingResource ../../lib/openbmc_ffdc.robot 8*fc3d8f1dSGeorge KeishingLibrary OperatingSystem 9*fc3d8f1dSGeorge 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} 23*fc3d8f1dSGeorge 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} 27*fc3d8f1dSGeorge 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 326a69d26fSGeorge Keishing 334d9b7e13SGeorge Keishing*** Test Case *** 344d9b7e13SGeorge Keishing 354d9b7e13SGeorge KeishingTest BMC Redfish Account Management 364d9b7e13SGeorge Keishing [Documentation] Check Account Management with a Redfish interface. 374d9b7e13SGeorge Keishing [Tags] Test_BMC_Redfish_Account_Management 384d9b7e13SGeorge Keishing 39a053fb34Smanashsarma ${output}= Run DMTF Tool ${rsv_dir_path} ${command_account} check_error=1 404d9b7e13SGeorge Keishing 41*fc3d8f1dSGeorge Keishing ${output}= Shell Cmd cat ${EXECDIR}${/}account-logs${/}results.json 424d9b7e13SGeorge Keishing Log ${output} 434d9b7e13SGeorge Keishing 44*fc3d8f1dSGeorge Keishing ${json}= OperatingSystem.Get File ${EXECDIR}${/}account-logs${/}results.json 45a053fb34Smanashsarma 46a053fb34Smanashsarma ${object}= Evaluate json.loads('''${json}''') json 47a053fb34Smanashsarma 48a053fb34Smanashsarma ${result_list}= Set Variable ${object["TestResults"]} 49a053fb34Smanashsarma 50a053fb34Smanashsarma @{failed_tc_list}= Create List 51a053fb34Smanashsarma 52a053fb34Smanashsarma FOR ${result} IN @{result_list} 53a053fb34Smanashsarma ${rc}= evaluate 'ErrorMessages'=='${result}' 54a053fb34Smanashsarma ${num}= Run Keyword If ${rc} == False Set Variable ${result_list["${result}"]["fail"]} 55a053fb34Smanashsarma Run Keyword If ${num} != None and ${num} > 0 Append To List ${failed_tc_list} ${result} 56a053fb34Smanashsarma END 57a053fb34Smanashsarma 58a053fb34Smanashsarma Should Be Empty ${failed_tc_list} Failed test cases are ${failed_tc_list} 59a053fb34Smanashsarma 606a69d26fSGeorge Keishing 611c5d325eSPeter D PhanTest BMC Redfish Power Control Usecase 621c5d325eSPeter D Phan [Documentation] Power Control Usecase Test. 63e23afb58SGeorge Keishing [Tags] Test_BMC_Redfish_Power_Control_Usecase 646a69d26fSGeorge Keishing 651c5d325eSPeter D Phan DMTF Power 666a69d26fSGeorge Keishing 676a69d26fSGeorge Keishing 684d9b7e13SGeorge Keishing*** Keywords *** 694d9b7e13SGeorge Keishing 704d9b7e13SGeorge KeishingTest Setup Execution 714d9b7e13SGeorge Keishing [Documentation] Do test case setup tasks. 724d9b7e13SGeorge Keishing 736a69d26fSGeorge Keishing Printn 744d9b7e13SGeorge Keishing Download DMTF Tool ${rsv_dir_path} ${rsv_github_url} 754d9b7e13SGeorge Keishing 766a69d26fSGeorge Keishing 774d9b7e13SGeorge KeishingTest Teardown Execution 784d9b7e13SGeorge Keishing [Documentation] Do the post-test teardown. 794d9b7e13SGeorge Keishing 806a69d26fSGeorge Keishing Printn 814d9b7e13SGeorge Keishing FFDC On Test Case Fail 826a69d26fSGeorge Keishing 836a69d26fSGeorge Keishing 841c5d325eSPeter D PhanDMTF Power 856a69d26fSGeorge Keishing [Documentation] Power the BMC machine on via DMTF tools. 866a69d26fSGeorge Keishing 87*fc3d8f1dSGeorge Keishing ${output}= Run DMTF Tool ${rsv_dir_path} ${command_power_control} check_error=1 88*fc3d8f1dSGeorge Keishing Log ${output} 896a69d26fSGeorge Keishing 90*fc3d8f1dSGeorge Keishing ${json}= OperatingSystem.Get File ${EXECDIR}${/}power-logs${/}results.json 91*fc3d8f1dSGeorge Keishing 92*fc3d8f1dSGeorge Keishing ${object}= Evaluate json.loads('''${json}''') json 93*fc3d8f1dSGeorge Keishing 94*fc3d8f1dSGeorge Keishing ${result_list}= Set Variable ${object["TestResults"]} 95*fc3d8f1dSGeorge Keishing Log To Console result: ${result_list} 96*fc3d8f1dSGeorge Keishing 97*fc3d8f1dSGeorge Keishing @{failed_tc_list}= Create List 98*fc3d8f1dSGeorge Keishing @{error_messages}= Create List 99*fc3d8f1dSGeorge Keishing 100*fc3d8f1dSGeorge Keishing FOR ${result} IN @{result_list} 101*fc3d8f1dSGeorge Keishing ${rc}= evaluate 'ErrorMessages'=='${result}' 102*fc3d8f1dSGeorge Keishing ${num}= Run Keyword If ${rc} == False Set Variable ${result_list["${result}"]["fail"]} 103*fc3d8f1dSGeorge Keishing Run Keyword If ${num} != None and ${num} > 0 Append To List ${failed_tc_list} ${result} 104*fc3d8f1dSGeorge Keishing Run Keyword If ${rc} == True Set Variable 105*fc3d8f1dSGeorge Keishing ... Append To List ${error_messages} ${result_list["ErrorMessages"]} 106*fc3d8f1dSGeorge Keishing END 107*fc3d8f1dSGeorge Keishing 108*fc3d8f1dSGeorge Keishing Log Many ErrorMessages: @{error_messages} 109*fc3d8f1dSGeorge Keishing Log To Console ErrorMessages: 110*fc3d8f1dSGeorge Keishing FOR ${msg} IN @{error_messages} 111*fc3d8f1dSGeorge Keishing Log To Console ${msg} 112*fc3d8f1dSGeorge Keishing END 113*fc3d8f1dSGeorge Keishing 114*fc3d8f1dSGeorge Keishing Should Be Empty ${error_messages} DMTF Power keyword failed. 115