blob: 548fded481ee14615a70d87d9b92c7f505ba53f6 [file] [log] [blame]
Peter D Phan028b8fd2022-04-19 11:20:28 -05001*** Settings ***
2
3Documentation Stress the system using HTX exerciser - bootme option.
4
5# Test Parameters:
6# OPENBMC_HOST The BMC host name or IP address.
7# OS_HOST The OS host name or IP Address.
8# OS_USERNAME The OS login userid (usually root).
9# OS_PASSWORD The password for the OS login.
10# HTX_DURATION Duration of HTX run, for example, 2h, or 30m.
11# HTX_LOOP The number of times to loop HTX.
12
13
14Resource ../syslib/utils_os.robot
15Resource ../lib/openbmc_ffdc_utils.robot
16Resource ../lib/logging_utils.robot
17Resource ../lib/code_update_utils.robot
18Resource ../lib/esel_utils.robot
19Resource ../syslib/resource.robot
20Library ../syslib/utils_keywords.py
21Library ../lib/utils_files.py
22Library ../lib/logging_utils.py
23Library ../syslib/utils_os.py
24Library DateTime
25
26Suite Setup Run Keyword Start SOL Console Logging
27Test Setup Test Setup Execution
28Test Teardown Test Teardown Execution
29
30
31*** Variables ****
32
33${stack_mode} skip
34${rest_keyword} REST
35
36# Error log Severities to ignore when checking Error Logs.
37@{ESEL_IGNORE_LIST}
38... xyz.openbmc_project.Logging.Entry.Level.Informational
39
40
41*** Test Cases ***
42
43Soft Bootme Test
44 [Documentation] Using HTX exerciser soft boot option.
45 [Tags] Soft_Bootme_Test
46
47 Printn
48 Rprint Vars HTX_DURATION HTX_LOOP
49
50 # Set up the (soft) bootme iteration (loop) counter.
51 Set Suite Variable ${iteration} ${0} children=true
52
53 # Run test
54 Repeat Keyword ${HTX_LOOP} times Run HTX Soft Bootme Exerciser
55
56
57*** Keywords ***
58
59
60Run HTX Soft Bootme Exerciser
61 [Documentation] Run HTX Soft Bootme Exerciser.
62 # Test Flow:
63 # - Power on.
64 # - Create HTX mdt profile.
65 # - Run HTX exerciser.
66 # - Soft bootme (OS Reboot).
67 # - Check HTX status for errors.
68
69 ${runtime}= Convert Time ${HTX_DURATION}
70
71 ${startTime} = Get Current Date
72 Run Keyword If '${HTX_MDT_PROFILE}' == 'mdt.bu'
73 ... Create Default MDT Profile
74
75 Run MDT Profile
76 Run Soft Bootme ${BOOTME_PERIOD}
77
78 FOR ${index} IN RANGE 999999
79 ${l_ping}=
80 ... Run Keyword And Return Status Ping Host ${OS_HOST}
81
82 IF '${l_ping}' == '${False}'
83 Log to console ("OS Host is rebooting")
84 # Wait for OS (re) Boot - Max 10 minutes
85 FOR ${waitindex} IN RANGE 20
86 Run Key U Sleep \ 30s
87 ${l_ping}=
88 ... Run Keyword And Return Status Ping Host ${OS_HOST}
89 Exit For Loop If '${l_ping}' == '${True}'
90 END
91
92 Wait Until Keyword Succeeds
93 ... 15 min 30 sec Verify Ping and REST Authentication
94
95 # Give OS a minute from first ping for sshd to (re)start
96 Run Key U Sleep \ 60s
97 OS Execute Command uptime
98 Check HTX Run Status
99
100 Set Suite Variable ${iteration} ${iteration + 1}
101 ${loop_count}= Catenate Completed reboot number: ${iteration}
102
103 Printn
104 Rprint Vars loop_count
105 END
106
107 ${currentTime} = Get Current Date
108 ${elapsedTimeSec} =
109 ... Subtract Date From Date
110 ... ${currentTime} ${startTime} result_format=number exclude_millis=True
111 Exit For Loop If ${runtime} < ${elapsedTimeSec}
112 END
113
114 Wait Until Keyword Succeeds
115 ... 15 min 30 sec Verify Ping and REST Authentication
116 Shutdown Bootme
117 Shutdown HTX Exerciser
118
119
120Test Setup Execution
121 [Documentation] Do the initial test setup.
122
123 ${bmc_version} ${stderr} ${rc}= BMC Execute Command
124 ... cat /etc/os-release
125 Printn
126 Rprint Vars bmc_versionhtxcmdline -bootme
127
128 ${fw_version}= Get BMC Version
129 Rprint Vars fw_version
130
131 ${is_redfish}= Run Keyword And Return Status Redfish.Login
132 ${rest_keyword}= Set Variable If ${is_redfish} Redfish REST
133 Rprint Vars rest_keyword
134 Set Suite Variable ${rest_keyword} children=true
135
136 Run Keyword ${rest_keyword} Power On stack_mode=skip
137
138 Run Key U Sleep \ 15s
139 Run Keyword And Ignore Error Delete All Error Logs
140 Run Keyword And Ignore Error Redfish Purge Event Log
141 Tool Exist htxcmdline
142
143 ${os_release_info}= utils_os.Get OS Release Info uname
144 Rprint Vars os_release_info fmt=1
145
146 # Shutdown if HTX is running.
147 ${status}= Is HTX Running
148 Run Keyword If '${status}' == 'True'
149 ... Shutdown HTX Exerciser
150
151
152Test Teardown Execution
153 [Documentation] Do the post-test teardown.
154
155 # Keep HTX running if user set HTX_KEEP_RUNNING to 1.
156 Run Keyword If
157 ... '${TEST_STATUS}' == 'FAIL' and ${HTX_KEEP_RUNNING} == ${0}
158 ... Shutdown HTX Exerciser
159
160 ${keyword_buf}= Catenate Stop SOL Console Logging
161 ... \ targ_file_path=${EXECDIR}${/}logs${/}SOL.log
162 Run Key ${keyword_buf}
163
164 Close All Connections