1f3a1995dSSteven Sombar*** Settings *** 2f3a1995dSSteven Sombar 3f3a1995dSSteven SombarDocumentation Module to stress-test REST upload stability. 4f3a1995dSSteven Sombar... Upload a test file to the BMC. The 5f3a1995dSSteven Sombar... test file is approximately the size of 6f3a1995dSSteven Sombar... a BMC flash image file. 7f3a1995dSSteven Sombar 8f3a1995dSSteven Sombar# Test Parameters: 9f3a1995dSSteven Sombar# OPENBMC_HOST The BMC host name or IP address. 10f3a1995dSSteven Sombar# LOOPS The number of times to loop the test. 114d4ef99fSGeorge Keishing# Default value for LOOPS is 1. 12f3a1995dSSteven Sombar 13f3a1995dSSteven Sombar 14f3a1995dSSteven SombarLibrary OperatingSystem 15f3a1995dSSteven SombarResource ../lib/utils.robot 16f3a1995dSSteven SombarResource ../lib/openbmc_ffdc.robot 17f3a1995dSSteven Sombar 18f3a1995dSSteven Sombar 19f3a1995dSSteven SombarTest Teardown FFDC On Test Case Fail 20f3a1995dSSteven Sombar 21f3a1995dSSteven Sombar 22f3a1995dSSteven Sombar*** Variables **** 23f3a1995dSSteven Sombar 24f3a1995dSSteven Sombar${LOOPS} ${1} 25f3a1995dSSteven Sombar${iteration} ${0} 26f3a1995dSSteven Sombar 27f3a1995dSSteven Sombar 28f3a1995dSSteven Sombar*** Test Cases *** 29f3a1995dSSteven Sombar 30f3a1995dSSteven Sombar 31f3a1995dSSteven SombarREST Upload Stability Test 32f3a1995dSSteven Sombar [Documentation] Execute upload stress testing. 33f3a1995dSSteven Sombar [Tags] REST_Upload_Stability_Test 34f3a1995dSSteven Sombar 35f3a1995dSSteven Sombar Repeat Keyword ${LOOPS} times Upload Test Image File To BMC 36f3a1995dSSteven Sombar 37f3a1995dSSteven Sombar 38f3a1995dSSteven Sombar*** Keywords *** 39f3a1995dSSteven Sombar 40f3a1995dSSteven Sombar 41f3a1995dSSteven SombarUpload Test Image File To BMC 42f3a1995dSSteven Sombar [Documentation] Upload a file to BMC via REST. The uploaded file 43f3a1995dSSteven Sombar ... is 32MB, approximately the same size as a downloadable 44f3a1995dSSteven Sombar ... BMC image. 45f3a1995dSSteven Sombar [Timeout] 2m 46f3a1995dSSteven Sombar 47f3a1995dSSteven Sombar Set Test Variable ${iteration} ${iteration + 1} 48f3a1995dSSteven Sombar ${loop_count}= Catenate Starting iteration: ${iteration} 49c108e429SMichael Walsh Printn 50f3a1995dSSteven Sombar Rpvars loop_count 51f3a1995dSSteven Sombar 52f3a1995dSSteven Sombar # Generate data file. 53f3a1995dSSteven Sombar Run dd if=/dev/zero of=dummyfile bs=1 count=0 seek=32MB 54f3a1995dSSteven Sombar 55f3a1995dSSteven Sombar ${image_data}= OperatingSystem.Get Binary File dummyfile 56f3a1995dSSteven Sombar 57*6d9d4f6aSGeorge Keishing # Set up 'redfish' object used in POST request below. 58f3a1995dSSteven Sombar Initialize OpenBMC 59f3a1995dSSteven Sombar 60f3a1995dSSteven Sombar # Create the REST payload headers and data. 61f3a1995dSSteven Sombar ${data}= Create Dictionary data=${image_data} 62f3a1995dSSteven Sombar ${headers}= Create Dictionary Content-Type=application/octet-stream 63eadeef0cSSridevi Ramesh ... X-Auth-Token=${XAUTH_TOKEN} Accept=application/octet-stream 64f3a1995dSSteven Sombar Set To Dictionary ${data} headers ${headers} 65f3a1995dSSteven Sombar 66a789aeb4SGeorge Keishing # Upload to BMC and check for HTTP_BAD_REQUEST. 67*6d9d4f6aSGeorge Keishing ${resp}= POST On Session redfish /upload/image &{data} 68a789aeb4SGeorge Keishing Should Be Equal As Strings ${resp.status_code} ${HTTP_BAD_REQUEST} 69f3a1995dSSteven Sombar 70f3a1995dSSteven Sombar ${loop_count}= Catenate Ending iteration: ${iteration} 71f3a1995dSSteven Sombar Rpvars loop_count 72