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.txt
11...                │       ├── 20160909102538035251_BMC_proc_list.txt
12...                │       ├── 20160909102538035251_BMC_dmesg.txt
13...                │       ├── 20160909102538035251_BMC_inventory.txt
14...                │       ├── 20160909102538035251_BMC_led.txt
15...                │       ├── 20160909102538035251_BMC_record_log.txt
16...                │       ├── 20160909102538035251_BMC_sensor_list.txt
17...                │       ├── 20160909102538035251_BMC_general.txt
18...                │       ├── 20160909102538035251_OS_dmesg.txt
19...                │       ├── 20160909102538035251_OS_msglog.txt
20...                │       ├── 20160909102538035251_OS_cpufrequency.txt
21...                │       ├── 20160909102538035251_OS_boot.txt
22...                │       ├── 20160909102538035251_OS_isusb.txt
23...                │       ├── 20160909102538035251_OS_kern.txt
24...                │       ├── 20160909102538035251_OS_authlog.txt
25...                │       ├── 20160909102538035251_OS_syslog.txt
26...                │       ├── 20160909102538035251_OS_info.txt
27...                │       ├── 20160909102538035251_OS_rsct.txt
28...                │       ├── 20160909102538035251_OS_secure.txt
29...                │       └── 20160909102538035251_OS_esel
30...                └── test_history.txt
31
32Resource           openbmc_ffdc_methods.robot
33Resource           openbmc_ffdc_utils.robot
34Resource           dump_utils.robot
35Library            openbmc_ffdc.py
36Library            ffdc_cli_robot_script.py
37
38*** Keywords ***
39
40FFDC On Test Case Fail
41    [Documentation]   Generic FFDC entry point. Place holder to hook in
42    ...               other data collection methods
43    ...               1. Collect Logs if test fails or host reaches quiesced
44    ...                  state.
45    ...               2. Added test execution history logging.
46    ...                  By default this will log Test status PASS/FAIL format
47    ...                  EX: 20160822041250932049:Test:Test case 1:PASS
48    ...                      20160822041250969913:Test:Test case 2:FAIL
49    ...               3. Delete error logs and BMC dumps post FFDC collection.
50
51    ${OVERRIDE_FFDC_ON_TEST_CASE_FAIL}=  Get Environment Variable  OVERRIDE_FFDC_ON_TEST_CASE_FAIL  0
52    ${OVERRIDE_FFDC_ON_TEST_CASE_FAIL}=  Convert To Integer  ${OVERRIDE_FFDC_ON_TEST_CASE_FAIL}
53    Return From Keyword If  ${OVERRIDE_FFDC_ON_TEST_CASE_FAIL}
54
55    Run Keyword If  '${TEST_STATUS}' == 'FAIL'  Launch FFDC
56
57    Log Test Case Status
58
59
60Launch FFDC
61    [Documentation]  Call point to call FFDC robot or FFDC script.
62    ...              FFDC_DEFAULT set to 1, by default, in resource.robot
63    ...              FFDC_DEFAULT:1  use legacy ffdc collector
64    ...              FFDC_DEFAULT:0  use new ffdc collector.
65
66    Run Keyword If  ${FFDC_DEFAULT} == ${1}  FFDC    # Keyword from openbmc_ffdc.py
67    ...    ELSE  ffdc_robot_script_cli               # Keyword from ffdc_cli_robot_script.py
68
69