blob: ed2034cb2b084d751ed75a2818597971ac76632b [file] [log] [blame]
George Keishing69e6f712016-09-12 06:30:09 -05001*** Settings ***
2Documentation Utility keywords for FFDC
3
4Library String
5Library DateTime
6Library openbmc_ffdc_list.py
Sandhya Somashekar839a0c22019-01-31 05:05:43 -06007Resource resource.robot
George Keishing69e6f712016-09-12 06:30:09 -05008Resource connection_client.robot
Sweta Potthuri15e6d2f2017-02-28 03:10:02 -06009Resource utils.robot
George Keishing69e6f712016-09-12 06:30:09 -050010
11*** Variables ***
12
13${PRINT_LINE} ------------------------------------------------------------------------
14
15${MSG_INTRO} This report contains the following information:
16${MSG_DETAIL} ${\n}\t\t[ Detailed Logs Captured Section ]
17${HEADER_MSG} ${\n}\t\t---------------------------
18... ${\n}\t\t FIRST FAILURE DATA CAPTURE
19... ${\n}\t\t---------------------------
20${FOOTER_MSG} ${\n}${PRINT_LINE} ${\n}
21
22${FFDC_LOG_PATH} ${EXECDIR}${/}logs${/}
23${TEST_HISTORY} ${FFDC_LOG_PATH}${/}test_history.txt
24
25*** Keywords ***
26
27Get Test Dir and Name
28 [Documentation] SUITE_NAME and TEST_NAME are automatic variables
29 ... and is populated dynamically by the robot framework
Gunnar Millsbb398ac2016-11-14 11:50:22 -060030 ... during execution
George Keishing69e6f712016-09-12 06:30:09 -050031 ${suite_name}= Get strip string ${SUITE_NAME}
32 ${suite_name}= Catenate SEPARATOR= ${FFDC_TIME}_ ${suite_name}
33 ${test_name}= Get strip string ${TEST_NAME}
34 ${test_name}= Catenate SEPARATOR= ${FFDC_TIME}_ ${test_name}
Gunnar Millsc9ea9362016-12-13 16:21:13 -060035 [Return] ${suite_name} ${test_name}
George Keishing69e6f712016-09-12 06:30:09 -050036
37
38Create FFDC Directory
39 [Documentation] Creates directory and report file
40 Create Directory ${FFDC_DIR_PATH}
41 Create FFDC Report File
42
43
44Create FFDC Report File
45 [Documentation] Create a generic file name for ffdc
46 Set Suite Variable
Gunnar Millsaca140d2016-10-26 13:05:10 -050047 ... ${FFDC_FILE_PATH} ${FFDC_DIR_PATH}${/}${FFDC_TIME}_BMC_general.txt
George Keishing69e6f712016-09-12 06:30:09 -050048 Create File ${FFDC_FILE_PATH}
49
50
Sweta Potthuri15e6d2f2017-02-28 03:10:02 -060051Write Data To File
George Keishing69e6f712016-09-12 06:30:09 -050052 [Documentation] Write data to the ffdc report document
53 [Arguments] ${data}= ${filepath}=${FFDC_FILE_PATH}
54 Append To File ${filepath} ${data}
55
56
57Get Current Time Stamp
58 [Documentation] Get the current time stamp data
59 ${cur_time}= Get Current Date result_format=%Y-%m-%d %H:%M:%S:%f
60 ${cur_time}= Get strip string ${cur_time}
Gunnar Millsc9ea9362016-12-13 16:21:13 -060061 [Return] ${cur_time}
George Keishing69e6f712016-09-12 06:30:09 -050062
63
64Header Message
Michael Walsh77458542017-10-30 15:01:01 -050065 [Documentation] Write header message to the report document manifest
66 ... and return a list of generated files.
Michael Walsh259c5402018-11-01 13:22:51 -050067 ... TEST_NAME, TEST_MESSAGE,SUITE_SOURCE, TEST_DOCUMENTATION
George Keishing69e6f712016-09-12 06:30:09 -050068 ... are auto variables and are populated dynamically by the
Michael Walsh259c5402018-11-01 13:22:51 -050069 ... robot framework during execution.
70 ... 1. Write opening statement headers message.
71 ... 2. Add test setup and config information.
72 ... 3. Print types of data collection.
George Keishing69e6f712016-09-12 06:30:09 -050073
Michael Walshfdde2582019-04-18 11:05:11 -050074
75 ${ffdc_file_list}= Create List ${FFDC_FILE_PATH}
76 Return From Keyword If '${TEST_MODE}' ${ffdc_file_list}
77
Michael Walsh259c5402018-11-01 13:22:51 -050078 ${TEST_NAME}= Get Variable Value ${TEST_NAME}
79 ${TEST_MESSAGE}= Get Variable Value ${TEST_MESSAGE}
80 ${TEST_DOCUMENTATION}= Get Variable Value ${TEST_DOCUMENTATION}
81 Write Data To File ${HEADER_MSG}
82 Write Data To File ${FOOTER_MSG}
83 Write Data To File Test Suite File\t\t: ${SUITE_NAME} ${\n}
84 Write Data To File Test Case Name\t\t: ${TEST_NAME}${\n}
85 Write Data To File Test Source File\t: ${SUITE_SOURCE}${\n}
86 Write Data To File Failure Time Stamp\t: ${FFDC_TIME}${\n}
87 Write Data To File Test Error Message\t: ${TEST_MESSAGE}${\n}
88 Write Data To File Test Documentation\t:${\n}${TEST_DOCUMENTATION}${\n}
89 Write Data To File ${FOOTER_MSG}
George Keishing69e6f712016-09-12 06:30:09 -050090
91 Test Setup Info
92
Michael Walsh259c5402018-11-01 13:22:51 -050093 Write Data To File ${\n}${MSG_INTRO}${\n}
George Keishing69e6f712016-09-12 06:30:09 -050094
95 # --- FFDC header notes ---
Michael Walsh259c5402018-11-01 13:22:51 -050096 @{entries}= Get ffdc cmd index
Marissa Garza20ccfc72020-06-19 12:51:10 -050097 FOR ${index} IN @{entries}
98 Write Data To File * ${index.upper()}
99 Write Data To File ${\n}
100 END
George Keishing69e6f712016-09-12 06:30:09 -0500101
Michael Walsh259c5402018-11-01 13:22:51 -0500102 Write Data To File ${MSG_DETAIL}
Michael Walsh77458542017-10-30 15:01:01 -0500103 [Return] ${ffdc_file_list}
George Keishing69e6f712016-09-12 06:30:09 -0500104
105
106Write Cmd Output to FFDC File
107 [Documentation] Write cmd output data to the report document
108 [Arguments] ${name_str} ${cmd}
109
Sweta Potthuri15e6d2f2017-02-28 03:10:02 -0600110 Write Data To File ${FOOTER_MSG}
111 Write Data To File ${ENTRY_INDEX.upper()} : ${name_str}\t
112 Write Data To File Executed : ${cmd}
113 Write Data To File ${FOOTER_MSG}
George Keishing69e6f712016-09-12 06:30:09 -0500114
115
116Test Setup Info
Gunnar Millsbb398ac2016-11-14 11:50:22 -0600117 [Documentation] BMC IP, Model and other information
George Keishing69e6f712016-09-12 06:30:09 -0500118
Sweta Potthuri15e6d2f2017-02-28 03:10:02 -0600119 Write Data To File ${\n}-----------------------${\n}
120 Write Data To File Test Setup Information:
121 Write Data To File ${\n}-----------------------${\n}
122 Write Data To File OPENBMC HOST \t: ${OPENBMC_HOST}${\n}
123 ${model_name}= Get BMC System Model
124 Write Data To File SYSTEM TYPE \t: ${model_name}
George Keishing3e840a52017-07-21 08:31:44 -0500125
126
127Error Logs Should Not Exist
128 [Documentation] Verify that error logs do not exist.
129
Steven Sombara8800da2018-12-18 16:19:05 -0600130 ${resp}= OpenBMC Get Request ${BMC_LOGGING_ENTRY}list quiet=${1}
George Keishing3e840a52017-07-21 08:31:44 -0500131 Should Be Equal As Strings ${resp.status_code} ${HTTP_NOT_FOUND}
Steven Sombar95672942018-03-23 11:24:58 -0500132 ... msg=Unexpected BMC error log(s) present.
Steven Sombar43d6ba32018-02-16 11:25:09 -0600133
134
135Error Logs Should Exist
136 [Documentation] Verify that error logs exist.
137
Steven Sombara8800da2018-12-18 16:19:05 -0600138 ${resp}= OpenBMC Get Request ${BMC_LOGGING_ENTRY}list quiet=${1}
Steven Sombar43d6ba32018-02-16 11:25:09 -0600139 Run Keyword If ${resp.status_code} != ${HTTP_OK} Fail
140 ... msg=Expected BMC error log(s) are not present.