blob: f9e0b15527eb4c9b6fb0cc92c111477036c17bac [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 Hoferb7842a52017-09-22 10:11:33 -050031 Upload And Activate Image ${IMAGE_FILE_PATH} ${SKIP_UPDATE_IF_ACTIVE}
Charles Paul Hofer9f74d3a2017-08-18 09:54:28 -050032 OBMC Reboot (off)
33
34
Charles Paul Hoferc1fa2bc2017-08-18 16:44:03 -050035Upload And Activate Multiple BMC Images
36 [Documentation] Upload another BMC image and verify that its state is
37 ... different from all others.
38 [Tags] Upload_And_Activate_Multiple_BMC_Images
39 [Template] Activate Image And Verify No Duplicate Priorities
40 [Setup] Upload And Activate Multiple BMC Images Setup
41
42 # Image File Path Image Purpose
43 ${ALTERNATE_IMAGE_FILE_PATH} ${VERSION_PURPOSE_BMC}
44
45
Charles Paul Hofer42f17462017-09-12 14:09:32 -050046BMC Set Priority To Invalid Values
47 [Documentation] Attempt to set the priority of an image to an invalid
48 ... value and expect an error.
49 [Tags] BMC_Set_Priority_To_Invalid_Values
50 [Template] Set Priority To Invalid Value And Expect Error
51
52 # Version Type Priority
53 ${VERSION_PURPOSE_BMC} ${-1}
54 ${VERSION_PURPOSE_BMC} ${256}
55
56
Charles Paul Hofer9f74d3a2017-08-18 09:54:28 -050057Delete BMC Image
58 [Documentation] Delete a BMC image from the BMC flash chip.
59 [Tags] Delete_BMC_Image
60
61 ${software_object}= Get Non Running BMC Software Object
62 Delete Image And Verify ${software_object} ${VERSION_PURPOSE_BMC}
Charles Paul Hoferc1fa2bc2017-08-18 16:44:03 -050063
64
George Keishing97ecb272017-09-12 04:30:20 -050065BMC Image Priority Attribute Test
66 [Documentation] Set "Priority" attribute.
67 [Tags] BMC_Image_Priority_Attribute_Test
68 [Template] Temporarily Set BMC Attribute
69
70 # Property Value
71 Priority ${0}
72 Priority ${1}
73 Priority ${127}
74 Priority ${255}
75
76
Charles Paul Hoferc1fa2bc2017-08-18 16:44:03 -050077*** Keywords ***
78
George Keishing97ecb272017-09-12 04:30:20 -050079Temporarily Set BMC Attribute
80 [Documentation] Update the BMC attribute value.
81 [Arguments] ${attribute_name} ${attribute_value}
82
83 # Description of argument(s):
84 # attribute_name BMC software attribute name (e.g. "Priority").
85 # attribute_value Value to be written.
86
87 ${image_ids}= Get Software Objects ${VERSION_PURPOSE_BMC}
88 ${init_bmc_properties}= Get Host Software Property ${image_ids[0]}
89 ${initial_priority}= Set Variable ${init_bmc_properties["Priority"]}
90
91 Set Host Software Property ${image_ids[0]} ${attribute_name}
92 ... ${attribute_value}
93
94 ${cur_bmc_properties}= Get Host Software Property ${image_ids[0]}
95 Should Be Equal As Integers ${cur_bmc_properties["Priority"]}
96 ... ${attribute_value}
97
98 # Revert to to initial value.
99 Set Host Software Property
100 ... ${image_ids[0]} ${attribute_name} ${initial_priority}
101
102
Charles Paul Hoferc1fa2bc2017-08-18 16:44:03 -0500103Upload And Activate Multiple BMC Images Setup
104 [Documentation] Check that the ALTERNATE_FILE_PATH variable is set.
105
George Keishing1eb85f52017-08-30 22:55:13 -0500106 Should Not Be Empty ${ALTERNATE_IMAGE_FILE_PATH}
107
108Code Update Setup
109 [Documentation] Do code update test case setup.
110 # - Clean up all existing BMC dumps.
111
112 Delete All Dumps
George Keishing00715492017-08-18 11:46:37 -0500113
114Code Update Test Teardown
115 [Documentation] Do code update test case teardown.
116 # 1. Collect FFDC if test case failed.
117 # 2. Collect FFDC if test PASS but error log exists.
118
119 FFDC On Test Case Fail
120 Run Keyword If '${TEST_STATUS}' == 'PASS' Check Error And Collect FFDC