xref: /openbmc/openbmc-test-automation/extended/test_bmc_upload_stability.robot (revision 6d9d4f6a9cbc92df43a479655d1de4fe9d340aea)
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