blob: 9d459b8826fb9db6e1652bbd31fb3898fc12270a [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
97 :FOR ${index} IN @{entries}
98 \ Write Data To File * ${index.upper()}
99 \ Write Data To File ${\n}
George Keishing69e6f712016-09-12 06:30:09 -0500100
Michael Walsh259c5402018-11-01 13:22:51 -0500101 Write Data To File ${MSG_DETAIL}
Michael Walsh77458542017-10-30 15:01:01 -0500102 [Return] ${ffdc_file_list}
George Keishing69e6f712016-09-12 06:30:09 -0500103
104
105Write Cmd Output to FFDC File
106 [Documentation] Write cmd output data to the report document
107 [Arguments] ${name_str} ${cmd}
108
Sweta Potthuri15e6d2f2017-02-28 03:10:02 -0600109 Write Data To File ${FOOTER_MSG}
110 Write Data To File ${ENTRY_INDEX.upper()} : ${name_str}\t
111 Write Data To File Executed : ${cmd}
112 Write Data To File ${FOOTER_MSG}
George Keishing69e6f712016-09-12 06:30:09 -0500113
114
115Test Setup Info
Gunnar Millsbb398ac2016-11-14 11:50:22 -0600116 [Documentation] BMC IP, Model and other information
George Keishing69e6f712016-09-12 06:30:09 -0500117
Sweta Potthuri15e6d2f2017-02-28 03:10:02 -0600118 Write Data To File ${\n}-----------------------${\n}
119 Write Data To File Test Setup Information:
120 Write Data To File ${\n}-----------------------${\n}
121 Write Data To File OPENBMC HOST \t: ${OPENBMC_HOST}${\n}
122 ${model_name}= Get BMC System Model
123 Write Data To File SYSTEM TYPE \t: ${model_name}
George Keishing3e840a52017-07-21 08:31:44 -0500124
125
126Error Logs Should Not Exist
127 [Documentation] Verify that error logs do not exist.
128
Steven Sombara8800da2018-12-18 16:19:05 -0600129 ${resp}= OpenBMC Get Request ${BMC_LOGGING_ENTRY}list quiet=${1}
George Keishing3e840a52017-07-21 08:31:44 -0500130 Should Be Equal As Strings ${resp.status_code} ${HTTP_NOT_FOUND}
Steven Sombar95672942018-03-23 11:24:58 -0500131 ... msg=Unexpected BMC error log(s) present.
Steven Sombar43d6ba32018-02-16 11:25:09 -0600132
133
134Error Logs Should Exist
135 [Documentation] Verify that error logs exist.
136
Steven Sombara8800da2018-12-18 16:19:05 -0600137 ${resp}= OpenBMC Get Request ${BMC_LOGGING_ENTRY}list quiet=${1}
Steven Sombar43d6ba32018-02-16 11:25:09 -0600138 Run Keyword If ${resp.status_code} != ${HTTP_OK} Fail
139 ... msg=Expected BMC error log(s) are not present.