| *** Settings *** |
| Documentation Utility keywords for FFDC |
| |
| Library String |
| Library DateTime |
| Library openbmc_ffdc_list.py |
| Resource resource.txt |
| Resource connection_client.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}_ffdc_report.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. |
| ... TEST_NAME, TEST_MESSAGE,SUITE_SOURCE,TEST_DOCUMENTATION |
| ... are auto variables and are populated dynamically by the |
| ... robot framework during execution |
| ... 1. Writes opening statement headers msg |
| ... 2. Add Test setup and config information |
| ... 3. Types of data collection |
| |
| 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} |
| |
| |
| 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} |
| Write Data to File |
| ... SYSTEM TYPE \t: ${OPENBMC_MODEL.replace('./data/','').replace('.py','')}${\n}${\n} |