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           state_manager.robot
35Library            openbmc_ffdc.py
36
37*** Keywords ***
38
39FFDC On Test Case Fail
40    [Documentation]   Generic FFDC entry point. Place holder to hook in
41    ...               other data collection methods
42    ...               1. Collect Logs if test fails or host reaches quiesced
43    ...                  state.
44    ...               2. Recover host from quiesced state
45    ...               3. 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
50    ${status}=  Is Host Quiesced
51    Run Keyword If  '${TEST_STATUS}' == 'FAIL' or '${status}'=='True'  FFDC
52    Run Keyword If  '${status}'=='True'  Recover Quiesced Host
53
54    Log Test Case Status
55