blob: a11e3850e2dcc2f2a10a898305cbbf6d9a3d9ad9 [file] [log] [blame]
Charles Paul Hofer9f74d3a2017-08-18 09:54:28 -05001*** Settings ***
2Documentation Update the BMC code on a target BMC.
3... Execution Method:
4... python -m robot -v OPENBMC_HOST:<hostname>
5... -v IMAGE_FILE_PATH:<path/*.tar> bmc_code_update.robot
6
7Library ../../lib/code_update_utils.py
8Variables ../../data/variables.py
9Resource ../../lib/boot_utils.robot
10Resource code_update_utils.robot
11Resource ../../lib/code_update_utils.robot
George Keishing1eb85f52017-08-30 22:55:13 -050012Resource ../../lib/openbmc_ffdc.robot
13Resource ../../lib/dump_utils.robot
Charles Paul Hofer9f74d3a2017-08-18 09:54:28 -050014
George Keishing00715492017-08-18 11:46:37 -050015Test Teardown Code Update Test Teardown
Charles Paul Hofer9f74d3a2017-08-18 09:54:28 -050016
17*** Variables ***
18
19${QUIET} ${1}
20${IMAGE_FILE_PATH} ${EMPTY}
Charles Paul Hoferc1fa2bc2017-08-18 16:44:03 -050021${ALTERNATE_IMAGE_FILE_PATH} ${EMPTY}
Charles Paul Hoferb7842a52017-09-22 10:11:33 -050022${SKIP_UPDATE_IF_ACTIVE} false
Charles Paul Hofer9f74d3a2017-08-18 09:54:28 -050023
24*** Test Cases ***
25
26REST BMC Code Update
27 [Documentation] Do a BMC code update by uploading image on BMC via REST.
28 [Tags] REST_BMC_Code_Update
George Keishing1eb85f52017-08-30 22:55:13 -050029 [Setup] Code Update Setup
Charles Paul Hofer9f74d3a2017-08-18 09:54:28 -050030
Charles Paul Hofer21845462017-09-27 12:40:33 -050031 Upload And Activate Image ${IMAGE_FILE_PATH}
32 ... skip_if_active=${SKIP_UPDATE_IF_ACTIVE}
Charles Paul Hofer9f74d3a2017-08-18 09:54:28 -050033 OBMC Reboot (off)
34
35
Charles Paul Hoferc1fa2bc2017-08-18 16:44:03 -050036Upload And Activate Multiple BMC Images
37 [Documentation] Upload another BMC image and verify that its state is
38 ... different from all others.
39 [Tags] Upload_And_Activate_Multiple_BMC_Images
40 [Template] Activate Image And Verify No Duplicate Priorities
41 [Setup] Upload And Activate Multiple BMC Images Setup
42
43 # Image File Path Image Purpose
44 ${ALTERNATE_IMAGE_FILE_PATH} ${VERSION_PURPOSE_BMC}
45
46
Charles Paul Hofer42f17462017-09-12 14:09:32 -050047BMC Set Priority To Invalid Values
48 [Documentation] Attempt to set the priority of an image to an invalid
49 ... value and expect an error.
50 [Tags] BMC_Set_Priority_To_Invalid_Values
51 [Template] Set Priority To Invalid Value And Expect Error
52
53 # Version Type Priority
54 ${VERSION_PURPOSE_BMC} ${-1}
55 ${VERSION_PURPOSE_BMC} ${256}
56
57
Charles Paul Hofer9f74d3a2017-08-18 09:54:28 -050058Delete BMC Image
59 [Documentation] Delete a BMC image from the BMC flash chip.
60 [Tags] Delete_BMC_Image
61
62 ${software_object}= Get Non Running BMC Software Object
63 Delete Image And Verify ${software_object} ${VERSION_PURPOSE_BMC}
Charles Paul Hoferc1fa2bc2017-08-18 16:44:03 -050064
65
George Keishing97ecb272017-09-12 04:30:20 -050066BMC Image Priority Attribute Test
67 [Documentation] Set "Priority" attribute.
68 [Tags] BMC_Image_Priority_Attribute_Test
69 [Template] Temporarily Set BMC Attribute
70
71 # Property Value
72 Priority ${0}
73 Priority ${1}
74 Priority ${127}
75 Priority ${255}
76
77
Charles Paul Hoferc1fa2bc2017-08-18 16:44:03 -050078*** Keywords ***
79
George Keishing97ecb272017-09-12 04:30:20 -050080Temporarily Set BMC Attribute
81 [Documentation] Update the BMC attribute value.
82 [Arguments] ${attribute_name} ${attribute_value}
83
84 # Description of argument(s):
85 # attribute_name BMC software attribute name (e.g. "Priority").
86 # attribute_value Value to be written.
87
88 ${image_ids}= Get Software Objects ${VERSION_PURPOSE_BMC}
89 ${init_bmc_properties}= Get Host Software Property ${image_ids[0]}
90 ${initial_priority}= Set Variable ${init_bmc_properties["Priority"]}
91
92 Set Host Software Property ${image_ids[0]} ${attribute_name}
93 ... ${attribute_value}
94
95 ${cur_bmc_properties}= Get Host Software Property ${image_ids[0]}
96 Should Be Equal As Integers ${cur_bmc_properties["Priority"]}
97 ... ${attribute_value}
98
99 # Revert to to initial value.
100 Set Host Software Property
101 ... ${image_ids[0]} ${attribute_name} ${initial_priority}
102
103
Charles Paul Hoferc1fa2bc2017-08-18 16:44:03 -0500104Upload And Activate Multiple BMC Images Setup
105 [Documentation] Check that the ALTERNATE_FILE_PATH variable is set.
106
George Keishing1eb85f52017-08-30 22:55:13 -0500107 Should Not Be Empty ${ALTERNATE_IMAGE_FILE_PATH}
108
109Code Update Setup
110 [Documentation] Do code update test case setup.
111 # - Clean up all existing BMC dumps.
112
113 Delete All Dumps
George Keishing00715492017-08-18 11:46:37 -0500114
115Code Update Test Teardown
116 [Documentation] Do code update test case teardown.
117 # 1. Collect FFDC if test case failed.
118 # 2. Collect FFDC if test PASS but error log exists.
119
120 FFDC On Test Case Fail
121 Run Keyword If '${TEST_STATUS}' == 'PASS' Check Error And Collect FFDC