xref: /openbmc/openbmc-test-automation/redfish/dmtf_tools/Redfish_Usecase_Checkers.robot (revision fc3d8f1d8edea21cdb01c7956bc19981a6765c09)
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