blob: c9440b8f8cd6371154ecfe3d95f8bdf91a52fd9f [file] [log] [blame]
*** Settings ***
Documentation This module is for data collection on test case failure
... for openbmc systems. Collects data with default name
... ffdc_report.txt under directory logs/testSuite/testName/
... on failure.
... FFDC logging sample layout:
... logs
... ├── 20160909102538035251_TestWarmreset
... │   └── 20160909102538035251_TestWarmResetviaREST
... │   ├── 20160909102538035251_BMC_journalctl.log
... │   ├── 20160909102538035251_BMC_proc_list
... │   ├── 20160909102538035251_BMC_dmesg
... │   ├── 20160909102538035251_BMC_inventory
... │   ├── 20160909102538035251_BMC_led
... │   ├── 20160909102538035251_BMC_record_log
... │   ├── 20160909102538035251_BMC_sensor_list
... │   └── 20160909102538035251_ffdc_report.txt
... └── test_history.txt
Resource openbmc_ffdc_methods.robot
Resource openbmc_ffdc_utils.robot
*** Keywords ***
Log FFDC
[Documentation] Generic FFDC entry point. Place holder to hook in
... other data collection methods
... 1. Collect Logs if test fails
... 2. Added Test execution history logging
... By default this will log Test status PASS/FAIL format
... EX: 20160822041250932049:Test:Test case 1:PASS
... 20160822041250969913:Test:Test case 2:FAIL
Run Keyword If '${TEST_STATUS}' == 'FAIL'
... Log FFDC If Test Case Failed
Log Test Case Status
Log FFDC If Test Case Failed
[Documentation] Main entry point to gather logs on Test case failure
... 1. Set global FFDC time reference for a failure
... 2. Create FFDC work space directory
... 3. Write test info details
... 4. Calls BMC methods to write/collect FFDC data
${cur_time}= Get Current Time Stamp
Set Global Variable ${FFDC_TIME} ${cur_time}
Log To Console ${\n}FFDC Collection Started \t: ${cur_time}
# Log directory setup
${suitename} ${testname}= Get Test Dir and Name
Set Global Variable
... ${FFDC_DIR_PATH} ${FFDC_LOG_PATH}${suitename}${/}${testname}
${prefix}= Catenate SEPARATOR= ${FFDC_DIR_PATH}${/} ${FFDC_TIME}_
Set Global Variable ${LOG_PREFIX} ${prefix}
Create FFDC Directory
Header Message
# -- FFDC processing entry point --
Call FFDC Methods
${cur_time}= Get Current Time Stamp
Log To Console FFDC Collection Completed \t: ${cur_time}
Log ${\n}${FFDC_DIR_PATH}