1*** Settings *** 2Documentation Test BMC using https://github.com/DMTF/Redfish-JsonSchema-ResponseValidator 3... DMTF tool. 4 5Library OperatingSystem 6Resource ../../lib/dmtf_tools_utils.robot 7Resource ../../lib/bmc_redfish_resource.robot 8 9Test Tags Redfish_JsonSchema_ResponseValidator 10 11*** Variables *** 12 13${DEFAULT_PYTHON} python3 14${rsv_dir_path} Redfish-JsonSchema-ResponseValidator 15${rsv_github_url} https://github.com/DMTF/Redfish-JsonSchema-ResponseValidator.git 16${command_string} ${DEFAULT_PYTHON} ${rsv_dir_path}${/}Redfish-JsonSchema-ResponseValidator.py 17... -r https://${OPENBMC_HOST} -u ${OPENBMC_USERNAME} -p ${OPENBMC_PASSWORD} -S -v 18 19${branch_name} main 20 21*** Test Cases *** 22 23Test BMC Redfish Using Redfish JsonSchema ResponseValidator 24 [Documentation] Check OpenBMC conformance with JsonSchema files at the DMTF site. 25 [Tags] Test_BMC_Redfish_Using_Redfish_JsonSchema_ResponseValidator 26 27 Download DMTF Tool ${rsv_dir_path} ${rsv_github_url} ${branch_name} 28 29 Redfish.Login 30 ${url_list}= redfish_utils.List Request /redfish/v1 31 Redfish.Logout 32 33 Shell Cmd mkdir -p logs/ 34 35 Set Test Variable ${test_run_status} ${True} 36 37 FOR ${url} IN @{url_list} 38 ${rc} ${output}= Run DMTF Tool ${rsv_dir_path} ${command_string} -i ${url} 39 ${status}= Run Keyword And Return Status Redfish JsonSchema ResponseValidator Result ${output} 40 IF ${status} == ${False} Set Test Variable ${test_run_status} ${status} 41 Save Logs For Debugging ${status} ${url} 42 END 43 44 IF ${test_run_status} == ${False} 45 Fail Redfish-JsonSchema-ResponseValidator detected errors. 46 END 47 48 49*** Keywords *** 50 51Save Logs For Debugging 52 [Documentation] Save validate_errs on errors. 53 [Arguments] ${status} ${url} 54 55 # Description of arguments: 56 # status True/False. 57 # url Redfish resource path (e.g. "/redfish/v1/AccountService"). 58 59 ${validate_errs}= Shell Cmd cat validate_errs 60 Log ${validate_errs} 61 62 # URL /redfish/v1/Managers/${MANAGER_ID} strip the last ending string and save off 63 # the logs for debugging "validate_errs_AccountService" and move to logs/. 64 IF ${status} == ${False} 65 Shell Cmd mv validate_errs logs/validate_errs_${url.rsplit("/")[-1]} 66 END 67