*** Settings *** Documentation Utility keywords for FFDC Library String Library DateTime Library openbmc_ffdc_list.py Resource resource.robot Resource connection_client.robot Resource utils.robot *** Variables *** ${PRINT_LINE} ------------------------------------------------------------------------ ${MSG_INTRO} This report contains the following information: ${MSG_DETAIL} ${\n}\t\t[ Detailed Logs Captured Section ] ${HEADER_MSG} ${\n}\t\t--------------------------- ... ${\n}\t\t FIRST FAILURE DATA CAPTURE ... ${\n}\t\t--------------------------- ${FOOTER_MSG} ${\n}${PRINT_LINE} ${\n} ${FFDC_LOG_PATH} ${EXECDIR}${/}logs${/} ${TEST_HISTORY} ${FFDC_LOG_PATH}${/}test_history.txt *** Keywords *** Get Test Dir and Name [Documentation] SUITE_NAME and TEST_NAME are automatic variables ... and is populated dynamically by the robot framework ... during execution ${suite_name}= Get strip string ${SUITE_NAME} ${suite_name}= Catenate SEPARATOR= ${FFDC_TIME}_ ${suite_name} ${test_name}= Get strip string ${TEST_NAME} ${test_name}= Catenate SEPARATOR= ${FFDC_TIME}_ ${test_name} [Return] ${suite_name} ${test_name} Create FFDC Directory [Documentation] Creates directory and report file Create Directory ${FFDC_DIR_PATH} Create FFDC Report File Create FFDC Report File [Documentation] Create a generic file name for ffdc Set Suite Variable ... ${FFDC_FILE_PATH} ${FFDC_DIR_PATH}${/}${FFDC_TIME}_BMC_general.txt Create File ${FFDC_FILE_PATH} Write Data To File [Documentation] Write data to the ffdc report document [Arguments] ${data}= ${filepath}=${FFDC_FILE_PATH} Append To File ${filepath} ${data} Get Current Time Stamp [Documentation] Get the current time stamp data ${cur_time}= Get Current Date result_format=%Y-%m-%d %H:%M:%S:%f ${cur_time}= Get strip string ${cur_time} [Return] ${cur_time} Header Message [Documentation] Write header message to the report document manifest ... and return a list of generated files. ... TEST_NAME, TEST_MESSAGE,SUITE_SOURCE, TEST_DOCUMENTATION ... are auto variables and are populated dynamically by the ... robot framework during execution. ... 1. Write opening statement headers message. ... 2. Add test setup and config information. ... 3. Print types of data collection. ${TEST_NAME}= Get Variable Value ${TEST_NAME} ${TEST_MESSAGE}= Get Variable Value ${TEST_MESSAGE} ${TEST_DOCUMENTATION}= Get Variable Value ${TEST_DOCUMENTATION} Write Data To File ${HEADER_MSG} Write Data To File ${FOOTER_MSG} Write Data To File Test Suite File\t\t: ${SUITE_NAME} ${\n} Write Data To File Test Case Name\t\t: ${TEST_NAME}${\n} Write Data To File Test Source File\t: ${SUITE_SOURCE}${\n} Write Data To File Failure Time Stamp\t: ${FFDC_TIME}${\n} Write Data To File Test Error Message\t: ${TEST_MESSAGE}${\n} Write Data To File Test Documentation\t:${\n}${TEST_DOCUMENTATION}${\n} Write Data To File ${FOOTER_MSG} Test Setup Info Write Data To File ${\n}${MSG_INTRO}${\n} # --- FFDC header notes --- @{entries}= Get ffdc cmd index :FOR ${index} IN @{entries} \ Write Data To File * ${index.upper()} \ Write Data To File ${\n} Write Data To File ${MSG_DETAIL} ${ffdc_file_list}= Create List ${FFDC_FILE_PATH} [Return] ${ffdc_file_list} Write Cmd Output to FFDC File [Documentation] Write cmd output data to the report document [Arguments] ${name_str} ${cmd} Write Data To File ${FOOTER_MSG} Write Data To File ${ENTRY_INDEX.upper()} : ${name_str}\t Write Data To File Executed : ${cmd} Write Data To File ${FOOTER_MSG} Test Setup Info [Documentation] BMC IP, Model and other information Write Data To File ${\n}-----------------------${\n} Write Data To File Test Setup Information: Write Data To File ${\n}-----------------------${\n} Write Data To File OPENBMC HOST \t: ${OPENBMC_HOST}${\n} ${model_name}= Get BMC System Model Write Data To File SYSTEM TYPE \t: ${model_name} Error Logs Should Not Exist [Documentation] Verify that error logs do not exist. ${resp}= OpenBMC Get Request ${BMC_LOGGING_ENTRY}list quiet=${1} Should Be Equal As Strings ${resp.status_code} ${HTTP_NOT_FOUND} ... msg=Unexpected BMC error log(s) present. Error Logs Should Exist [Documentation] Verify that error logs exist. ${resp}= OpenBMC Get Request ${BMC_LOGGING_ENTRY}list quiet=${1} Run Keyword If ${resp.status_code} != ${HTTP_OK} Fail ... msg=Expected BMC error log(s) are not present.