blob: 2dca330876d7c0275e8d0adebd3e8d7c69eddd92 [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 Walsh259c5402018-11-01 13:22:51 -050074 ${TEST_NAME}= Get Variable Value ${TEST_NAME}
75 ${TEST_MESSAGE}= Get Variable Value ${TEST_MESSAGE}
76 ${TEST_DOCUMENTATION}= Get Variable Value ${TEST_DOCUMENTATION}
77 Write Data To File ${HEADER_MSG}
78 Write Data To File ${FOOTER_MSG}
79 Write Data To File Test Suite File\t\t: ${SUITE_NAME} ${\n}
80 Write Data To File Test Case Name\t\t: ${TEST_NAME}${\n}
81 Write Data To File Test Source File\t: ${SUITE_SOURCE}${\n}
82 Write Data To File Failure Time Stamp\t: ${FFDC_TIME}${\n}
83 Write Data To File Test Error Message\t: ${TEST_MESSAGE}${\n}
84 Write Data To File Test Documentation\t:${\n}${TEST_DOCUMENTATION}${\n}
85 Write Data To File ${FOOTER_MSG}
George Keishing69e6f712016-09-12 06:30:09 -050086
87 Test Setup Info
88
Michael Walsh259c5402018-11-01 13:22:51 -050089 Write Data To File ${\n}${MSG_INTRO}${\n}
George Keishing69e6f712016-09-12 06:30:09 -050090
91 # --- FFDC header notes ---
Michael Walsh259c5402018-11-01 13:22:51 -050092 @{entries}= Get ffdc cmd index
93 :FOR ${index} IN @{entries}
94 \ Write Data To File * ${index.upper()}
95 \ Write Data To File ${\n}
George Keishing69e6f712016-09-12 06:30:09 -050096
Michael Walsh259c5402018-11-01 13:22:51 -050097 Write Data To File ${MSG_DETAIL}
Michael Walsh77458542017-10-30 15:01:01 -050098 ${ffdc_file_list}= Create List ${FFDC_FILE_PATH}
99 [Return] ${ffdc_file_list}
George Keishing69e6f712016-09-12 06:30:09 -0500100
101
102Write Cmd Output to FFDC File
103 [Documentation] Write cmd output data to the report document
104 [Arguments] ${name_str} ${cmd}
105
Sweta Potthuri15e6d2f2017-02-28 03:10:02 -0600106 Write Data To File ${FOOTER_MSG}
107 Write Data To File ${ENTRY_INDEX.upper()} : ${name_str}\t
108 Write Data To File Executed : ${cmd}
109 Write Data To File ${FOOTER_MSG}
George Keishing69e6f712016-09-12 06:30:09 -0500110
111
112Test Setup Info
Gunnar Millsbb398ac2016-11-14 11:50:22 -0600113 [Documentation] BMC IP, Model and other information
George Keishing69e6f712016-09-12 06:30:09 -0500114
Sweta Potthuri15e6d2f2017-02-28 03:10:02 -0600115 Write Data To File ${\n}-----------------------${\n}
116 Write Data To File Test Setup Information:
117 Write Data To File ${\n}-----------------------${\n}
118 Write Data To File OPENBMC HOST \t: ${OPENBMC_HOST}${\n}
119 ${model_name}= Get BMC System Model
120 Write Data To File SYSTEM TYPE \t: ${model_name}
George Keishing3e840a52017-07-21 08:31:44 -0500121
122
123Error Logs Should Not Exist
124 [Documentation] Verify that error logs do not exist.
125
Steven Sombara8800da2018-12-18 16:19:05 -0600126 ${resp}= OpenBMC Get Request ${BMC_LOGGING_ENTRY}list quiet=${1}
George Keishing3e840a52017-07-21 08:31:44 -0500127 Should Be Equal As Strings ${resp.status_code} ${HTTP_NOT_FOUND}
Steven Sombar95672942018-03-23 11:24:58 -0500128 ... msg=Unexpected BMC error log(s) present.
Steven Sombar43d6ba32018-02-16 11:25:09 -0600129
130
131Error Logs Should Exist
132 [Documentation] Verify that error logs exist.
133
Steven Sombara8800da2018-12-18 16:19:05 -0600134 ${resp}= OpenBMC Get Request ${BMC_LOGGING_ENTRY}list quiet=${1}
Steven Sombar43d6ba32018-02-16 11:25:09 -0600135 Run Keyword If ${resp.status_code} != ${HTTP_OK} Fail
136 ... msg=Expected BMC error log(s) are not present.