blob: 97fd5e39b60ebced068d944abc19a91b2fb69b27 [file] [log] [blame]
Steven Sombarf3a19952017-10-11 14:18:26 -05001*** Settings ***
2
3Documentation Module to stress-test REST upload stability.
4... Upload a test file to the BMC. The
5... test file is approximately the size of
6... a BMC flash image file.
7
8# Test Parameters:
9# OPENBMC_HOST The BMC host name or IP address.
10# LOOPS The number of times to loop the test.
George Keishing4d4ef992021-01-28 09:56:53 -060011# Default value for LOOPS is 1.
Steven Sombarf3a19952017-10-11 14:18:26 -050012
13
14Library OperatingSystem
15Resource ../lib/utils.robot
16Resource ../lib/openbmc_ffdc.robot
17
18
19Test Teardown FFDC On Test Case Fail
20
21
22*** Variables ****
23
24${LOOPS} ${1}
25${iteration} ${0}
26
27
28*** Test Cases ***
29
30
31REST Upload Stability Test
32 [Documentation] Execute upload stress testing.
33 [Tags] REST_Upload_Stability_Test
34
35 Repeat Keyword ${LOOPS} times Upload Test Image File To BMC
36
37
38*** Keywords ***
39
40
41Upload Test Image File To BMC
42 [Documentation] Upload a file to BMC via REST. The uploaded file
43 ... is 32MB, approximately the same size as a downloadable
44 ... BMC image.
45 [Timeout] 2m
46
47 Set Test Variable ${iteration} ${iteration + 1}
48 ${loop_count}= Catenate Starting iteration: ${iteration}
Michael Walshc108e422019-03-28 12:27:18 -050049 Printn
Steven Sombarf3a19952017-10-11 14:18:26 -050050 Rpvars loop_count
51
52 # Generate data file.
53 Run dd if=/dev/zero of=dummyfile bs=1 count=0 seek=32MB
54
55 ${image_data}= OperatingSystem.Get Binary File dummyfile
56
57 # Set up 'openbmc' used in POST request below.
58 Initialize OpenBMC
59
60 # Create the REST payload headers and data.
61 ${data}= Create Dictionary data=${image_data}
62 ${headers}= Create Dictionary Content-Type=application/octet-stream
Sridevi Ramesheadeef02019-01-17 08:56:18 -060063 ... X-Auth-Token=${XAUTH_TOKEN} Accept=application/octet-stream
Steven Sombarf3a19952017-10-11 14:18:26 -050064 Set To Dictionary ${data} headers ${headers}
65
George Keishinga789aeb2018-04-14 12:17:42 -050066 # Upload to BMC and check for HTTP_BAD_REQUEST.
Steven Sombarf3a19952017-10-11 14:18:26 -050067 ${resp}= Post Request openbmc /upload/image &{data}
George Keishinga789aeb2018-04-14 12:17:42 -050068 Should Be Equal As Strings ${resp.status_code} ${HTTP_BAD_REQUEST}
Steven Sombarf3a19952017-10-11 14:18:26 -050069
Steven Sombarf3a19952017-10-11 14:18:26 -050070 ${loop_count}= Catenate Ending iteration: ${iteration}
71 Rpvars loop_count