| *** Settings *** | 
 | Documentation     Test BMC using https://github.com/DMTF/Redfish-JsonSchema-ResponseValidator | 
 | ...               DMTF tool. | 
 |  | 
 | Library           OperatingSystem | 
 | Resource          ../../lib/dmtf_tools_utils.robot | 
 | Resource          ../../lib/bmc_redfish_resource.robot | 
 |  | 
 | *** Variables *** | 
 |  | 
 | ${DEFAULT_PYTHON}  python3 | 
 | ${rsv_dir_path}    Redfish-JsonSchema-ResponseValidator | 
 | ${rsv_github_url}  https://github.com/DMTF/Redfish-JsonSchema-ResponseValidator.git | 
 | ${command_string}  ${DEFAULT_PYTHON} ${rsv_dir_path}${/}Redfish-JsonSchema-ResponseValidator.py | 
 | ...                -r https://${OPENBMC_HOST} -u ${OPENBMC_USERNAME} -p ${OPENBMC_PASSWORD} -S -v | 
 |  | 
 | *** Test Case *** | 
 |  | 
 | Test BMC Redfish Using Redfish JsonSchema ResponseValidator | 
 |     [Documentation]  Check OpenBMC conformance with JsonSchema files at the DMTF site. | 
 |     [Tags]  Test_BMC_Redfish_Using_Redfish_JsonSchema_ResponseValidator | 
 |  | 
 |     Download DMTF Tool  ${rsv_dir_path}  ${rsv_github_url} | 
 |  | 
 |     Redfish.Login | 
 |     ${url_list}=  redfish_utils.List Request  /redfish/v1 | 
 |     Redfish.Logout | 
 |  | 
 |     Shell Cmd  mkdir -p logs/ | 
 |  | 
 |     Set Test Variable  ${test_run_status}  ${True} | 
 |  | 
 |     FOR  ${url}  IN  @{url_list} | 
 |         ${output}=  Run DMTF Tool  ${rsv_dir_path}  ${command_string} -i ${url} | 
 |         ${status}=  Run Keyword And Return Status  Redfish JsonSchema ResponseValidator Result  ${output} | 
 |         Run Keyword If  ${status} == ${False}  Set Test Variable  ${test_run_status}  ${status} | 
 |         Save Logs For Debugging  ${status}  ${url} | 
 |     END | 
 |  | 
 |     Run Keyword If  ${test_run_status} == ${False} | 
 |     ...  Fail  Redfish-JsonSchema-ResponseValidator detected errors. | 
 |  | 
 |  | 
 | *** Keywords *** | 
 |  | 
 | Save Logs For Debugging | 
 |     [Documentation]  Save validate_errs on errors. | 
 |     [Arguments]      ${status}  ${url} | 
 |  | 
 |     # Description of arguments: | 
 |     # status    True/False. | 
 |     # url       Redfish resource path (e.g. "/redfish/v1/AccountService"). | 
 |  | 
 |     ${validate_errs}=  Shell Cmd  cat validate_errs | 
 |     Log  ${validate_errs} | 
 |  | 
 |     # URL /redfish/v1/Managers/bmc strip the last ending string and save off | 
 |     # the logs for debugging "validate_errs_AccountService" and move to logs/. | 
 |     Run Keyword If  ${status} == ${False} | 
 |     ...  Shell Cmd  mv validate_errs logs/validate_errs_${url.rsplit("/")[-1]} |