1*** 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. 11# Default value for LOOPS is 1. 12 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} 49 Printn 50 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 63 ... X-Auth-Token=${XAUTH_TOKEN} Accept=application/octet-stream 64 Set To Dictionary ${data} headers ${headers} 65 66 # Upload to BMC and check for HTTP_BAD_REQUEST. 67 ${resp}= Post Request openbmc /upload/image &{data} 68 Should Be Equal As Strings ${resp.status_code} ${HTTP_BAD_REQUEST} 69 70 ${loop_count}= Catenate Ending iteration: ${iteration} 71 Rpvars loop_count 72