xref: /openbmc/openbmc-test-automation/lib/openbmc_ffdc.robot (revision 6c0f715bc3b324d22f1af93259b63020b9f7fbdd)
1*** Settings ***
2Documentation      This module is for data collection on test case failure
3...                for openbmc systems. Collects data with default name
4...                ffdc_report.txt under directory logs/testSuite/testName/
5...                on failure.
6...                FFDC logging sample layout:
7...                logs
8...                ├── 20160909102538035251_TestWarmreset
9...                │   └── 20160909102538035251_TestWarmResetviaREST
10...                │       ├── 20160909102538035251_BMC_journalctl.log
11...                │       ├── 20160909102538035251_BMC_proc_list
12...                │       ├── 20160909102538035251_BMC_dmesg
13...                │       ├── 20160909102538035251_BMC_inventory
14...                │       ├── 20160909102538035251_BMC_led
15...                │       ├── 20160909102538035251_BMC_record_log
16...                │       ├── 20160909102538035251_BMC_sensor_list
17...                │       ├── 20160909102538035251_OS_dmesg
18...                │       ├── 20160909102538035251_OS_msglog
19...                │       ├── 20160909102538035251_OS_cpufrequency
20...                │       ├── 20160909102538035251_OS_boot
21...                │       ├── 20160909102538035251_OS_isusb
22...                │       ├── 20160909102538035251_OS_kern
23...                │       ├── 20160909102538035251_OS_authlog
24...                │       ├── 20160909102538035251_OS_syslog
25...                │       ├── 20160909102538035251_OS_info
26...                │       ├── 20160909102538035251_OS_rsct
27...                │       ├── 20160909102538035251_OS_secure
28...                │       └── 20160909102538035251_ffdc_report.txt
29...                └── test_history.txt
30
31Resource           openbmc_ffdc_methods.robot
32Resource           openbmc_ffdc_utils.robot
33
34*** Keywords ***
35
36Log FFDC
37    [Documentation]   Generic FFDC entry point. Place holder to hook in
38    ...               other data collection methods
39    ...               1. Collect Logs if test fails
40    ...               2. Added Test execution history logging
41    ...                  By default this will log Test status PASS/FAIL format
42    ...                  EX: 20160822041250932049:Test:Test case 1:PASS
43    ...                      20160822041250969913:Test:Test case 2:FAIL
44
45    Run Keyword If  '${TEST_STATUS}' == 'FAIL'
46    ...    Log FFDC If Test Case Failed
47
48    Log Test Case Status
49
50
51Log FFDC If Test Case Failed
52    [Documentation]   Main entry point to gather logs on Test case failure
53    ...               1. Set global FFDC time reference for a failure
54    ...               2. Create FFDC work space directory
55    ...               3. Write test info details
56    ...               4. Calls BMC methods to write/collect FFDC data
57
58    ${cur_time}=      Get Current Time Stamp
59    Set Global Variable    ${FFDC_TIME}     ${cur_time}
60    Log To Console    ${\n}FFDC Collection Started \t: ${cur_time}
61
62    # Log directory setup
63    ${suitename}   ${testname}=    Get Test Dir and Name
64
65    Set Global Variable
66    ...   ${FFDC_DIR_PATH}  ${FFDC_LOG_PATH}${suitename}${/}${testname}
67
68    ${prefix}=   Catenate  SEPARATOR=   ${FFDC_DIR_PATH}${/}   ${FFDC_TIME}_
69    Set Global Variable    ${LOG_PREFIX}    ${prefix}
70
71    Create FFDC Directory
72    Header Message
73
74    # -- FFDC processing entry point --
75    Call FFDC Methods
76
77    ${cur_time}=       Get Current Time Stamp
78    Log To Console     FFDC Collection Completed \t: ${cur_time}
79    Log                ${\n}${FFDC_DIR_PATH}
80