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