| *** Settings *** |
| |
| Documentation Module to stress-test REST upload stability. |
| ... Upload a test file to the BMC. The |
| ... test file is approximately the size of |
| ... a BMC flash image file. |
| |
| # Test Parameters: |
| # OPENBMC_HOST The BMC host name or IP address. |
| # LOOPS The number of times to loop the test. |
| # Default value for LOOPS is 1. |
| |
| |
| Library OperatingSystem |
| Resource ../lib/utils.robot |
| Resource ../lib/openbmc_ffdc.robot |
| |
| |
| Test Teardown FFDC On Test Case Fail |
| |
| |
| *** Variables **** |
| |
| ${LOOPS} ${1} |
| ${iteration} ${0} |
| |
| |
| *** Test Cases *** |
| |
| |
| REST Upload Stability Test |
| [Documentation] Execute upload stress testing. |
| [Tags] REST_Upload_Stability_Test |
| |
| Repeat Keyword ${LOOPS} times Upload Test Image File To BMC |
| |
| |
| *** Keywords *** |
| |
| |
| Upload Test Image File To BMC |
| [Documentation] Upload a file to BMC via REST. The uploaded file |
| ... is 32MB, approximately the same size as a downloadable |
| ... BMC image. |
| [Timeout] 2m |
| |
| Set Test Variable ${iteration} ${iteration + 1} |
| ${loop_count}= Catenate Starting iteration: ${iteration} |
| Printn |
| Rpvars loop_count |
| |
| # Generate data file. |
| Run dd if=/dev/zero of=dummyfile bs=1 count=0 seek=32MB |
| |
| ${image_data}= OperatingSystem.Get Binary File dummyfile |
| |
| # Set up 'openbmc' used in POST request below. |
| Initialize OpenBMC |
| |
| # Create the REST payload headers and data. |
| ${data}= Create Dictionary data=${image_data} |
| ${headers}= Create Dictionary Content-Type=application/octet-stream |
| ... X-Auth-Token=${XAUTH_TOKEN} Accept=application/octet-stream |
| Set To Dictionary ${data} headers ${headers} |
| |
| # Upload to BMC and check for HTTP_BAD_REQUEST. |
| ${resp}= Post Request openbmc /upload/image &{data} |
| Should Be Equal As Strings ${resp.status_code} ${HTTP_BAD_REQUEST} |
| |
| ${loop_count}= Catenate Ending iteration: ${iteration} |
| Rpvars loop_count |