19f74d3afSCharles Paul Hofer*** Settings *** 29f74d3afSCharles Paul HoferDocumentation Update the BMC code on a target BMC. 39f74d3afSCharles Paul Hofer... Execution Method: 49f74d3afSCharles Paul Hofer... python -m robot -v OPENBMC_HOST:<hostname> 59f74d3afSCharles Paul Hofer... -v IMAGE_FILE_PATH:<path/*.tar> bmc_code_update.robot 69f74d3afSCharles Paul Hofer 79f74d3afSCharles Paul HoferLibrary ../../lib/code_update_utils.py 89f74d3afSCharles Paul HoferVariables ../../data/variables.py 99f74d3afSCharles Paul HoferResource ../../lib/boot_utils.robot 109f74d3afSCharles Paul HoferResource code_update_utils.robot 119f74d3afSCharles Paul HoferResource ../../lib/code_update_utils.robot 121eb85f57SGeorge KeishingResource ../../lib/openbmc_ffdc.robot 131eb85f57SGeorge KeishingResource ../../lib/dump_utils.robot 149f74d3afSCharles Paul Hofer 150071549eSGeorge KeishingTest Teardown Code Update Test Teardown 169f74d3afSCharles Paul Hofer 179f74d3afSCharles Paul Hofer*** Variables *** 189f74d3afSCharles Paul Hofer 199f74d3afSCharles Paul Hofer${QUIET} ${1} 209f74d3afSCharles Paul Hofer${IMAGE_FILE_PATH} ${EMPTY} 21c1fa2bc9SCharles Paul Hofer${ALTERNATE_IMAGE_FILE_PATH} ${EMPTY} 22b7842a59SCharles Paul Hofer${SKIP_UPDATE_IF_ACTIVE} false 239f74d3afSCharles Paul Hofer 249f74d3afSCharles Paul Hofer*** Test Cases *** 259f74d3afSCharles Paul Hofer 269f74d3afSCharles Paul HoferREST BMC Code Update 279f74d3afSCharles Paul Hofer [Documentation] Do a BMC code update by uploading image on BMC via REST. 289f74d3afSCharles Paul Hofer [Tags] REST_BMC_Code_Update 291eb85f57SGeorge Keishing [Setup] Code Update Setup 309f74d3afSCharles Paul Hofer 3121845469SCharles Paul Hofer Upload And Activate Image ${IMAGE_FILE_PATH} 3221845469SCharles Paul Hofer ... skip_if_active=${SKIP_UPDATE_IF_ACTIVE} 339f74d3afSCharles Paul Hofer OBMC Reboot (off) 34*e43fb2f7SCharles Paul Hofer Verify Running BMC Image ${IMAGE_FILE_PATH} 359f74d3afSCharles Paul Hofer 369f74d3afSCharles Paul Hofer 37c1fa2bc9SCharles Paul HoferUpload And Activate Multiple BMC Images 38c1fa2bc9SCharles Paul Hofer [Documentation] Upload another BMC image and verify that its state is 39c1fa2bc9SCharles Paul Hofer ... different from all others. 40c1fa2bc9SCharles Paul Hofer [Tags] Upload_And_Activate_Multiple_BMC_Images 41c1fa2bc9SCharles Paul Hofer [Template] Activate Image And Verify No Duplicate Priorities 42c1fa2bc9SCharles Paul Hofer [Setup] Upload And Activate Multiple BMC Images Setup 43c1fa2bc9SCharles Paul Hofer 44c1fa2bc9SCharles Paul Hofer # Image File Path Image Purpose 45c1fa2bc9SCharles Paul Hofer ${ALTERNATE_IMAGE_FILE_PATH} ${VERSION_PURPOSE_BMC} 46c1fa2bc9SCharles Paul Hofer 47c1fa2bc9SCharles Paul Hofer 4842f17468SCharles Paul HoferBMC Set Priority To Invalid Values 4942f17468SCharles Paul Hofer [Documentation] Attempt to set the priority of an image to an invalid 5042f17468SCharles Paul Hofer ... value and expect an error. 5142f17468SCharles Paul Hofer [Tags] BMC_Set_Priority_To_Invalid_Values 5242f17468SCharles Paul Hofer [Template] Set Priority To Invalid Value And Expect Error 5342f17468SCharles Paul Hofer 5442f17468SCharles Paul Hofer # Version Type Priority 5542f17468SCharles Paul Hofer ${VERSION_PURPOSE_BMC} ${-1} 5642f17468SCharles Paul Hofer ${VERSION_PURPOSE_BMC} ${256} 5742f17468SCharles Paul Hofer 5842f17468SCharles Paul Hofer 599f74d3afSCharles Paul HoferDelete BMC Image 609f74d3afSCharles Paul Hofer [Documentation] Delete a BMC image from the BMC flash chip. 619f74d3afSCharles Paul Hofer [Tags] Delete_BMC_Image 629f74d3afSCharles Paul Hofer 639f74d3afSCharles Paul Hofer ${software_object}= Get Non Running BMC Software Object 649f74d3afSCharles Paul Hofer Delete Image And Verify ${software_object} ${VERSION_PURPOSE_BMC} 65c1fa2bc9SCharles Paul Hofer 66c1fa2bc9SCharles Paul Hofer 6797ecb270SGeorge KeishingBMC Image Priority Attribute Test 6897ecb270SGeorge Keishing [Documentation] Set "Priority" attribute. 6997ecb270SGeorge Keishing [Tags] BMC_Image_Priority_Attribute_Test 7097ecb270SGeorge Keishing [Template] Temporarily Set BMC Attribute 7197ecb270SGeorge Keishing 7297ecb270SGeorge Keishing # Property Value 7397ecb270SGeorge Keishing Priority ${0} 7497ecb270SGeorge Keishing Priority ${1} 7597ecb270SGeorge Keishing Priority ${127} 7697ecb270SGeorge Keishing Priority ${255} 7797ecb270SGeorge Keishing 7897ecb270SGeorge Keishing 79c1fa2bc9SCharles Paul Hofer*** Keywords *** 80c1fa2bc9SCharles Paul Hofer 8197ecb270SGeorge KeishingTemporarily Set BMC Attribute 8297ecb270SGeorge Keishing [Documentation] Update the BMC attribute value. 8397ecb270SGeorge Keishing [Arguments] ${attribute_name} ${attribute_value} 8497ecb270SGeorge Keishing 8597ecb270SGeorge Keishing # Description of argument(s): 8697ecb270SGeorge Keishing # attribute_name BMC software attribute name (e.g. "Priority"). 8797ecb270SGeorge Keishing # attribute_value Value to be written. 8897ecb270SGeorge Keishing 8997ecb270SGeorge Keishing ${image_ids}= Get Software Objects ${VERSION_PURPOSE_BMC} 9097ecb270SGeorge Keishing ${init_bmc_properties}= Get Host Software Property ${image_ids[0]} 9197ecb270SGeorge Keishing ${initial_priority}= Set Variable ${init_bmc_properties["Priority"]} 9297ecb270SGeorge Keishing 9397ecb270SGeorge Keishing Set Host Software Property ${image_ids[0]} ${attribute_name} 9497ecb270SGeorge Keishing ... ${attribute_value} 9597ecb270SGeorge Keishing 9697ecb270SGeorge Keishing ${cur_bmc_properties}= Get Host Software Property ${image_ids[0]} 9797ecb270SGeorge Keishing Should Be Equal As Integers ${cur_bmc_properties["Priority"]} 9897ecb270SGeorge Keishing ... ${attribute_value} 9997ecb270SGeorge Keishing 10097ecb270SGeorge Keishing # Revert to to initial value. 10197ecb270SGeorge Keishing Set Host Software Property 10297ecb270SGeorge Keishing ... ${image_ids[0]} ${attribute_name} ${initial_priority} 10397ecb270SGeorge Keishing 10497ecb270SGeorge Keishing 105c1fa2bc9SCharles Paul HoferUpload And Activate Multiple BMC Images Setup 106c1fa2bc9SCharles Paul Hofer [Documentation] Check that the ALTERNATE_FILE_PATH variable is set. 107c1fa2bc9SCharles Paul Hofer 108c1fa2bc9SCharles Paul Hofer Should Not Be Empty ${ALTERNATE_IMAGE_FILE_PATH} 1091eb85f57SGeorge Keishing 1101eb85f57SGeorge KeishingCode Update Setup 1111eb85f57SGeorge Keishing [Documentation] Do code update test case setup. 1121eb85f57SGeorge Keishing # - Clean up all existing BMC dumps. 1131eb85f57SGeorge Keishing 1141eb85f57SGeorge Keishing Delete All Dumps 1150071549eSGeorge Keishing 1160071549eSGeorge KeishingCode Update Test Teardown 1170071549eSGeorge Keishing [Documentation] Do code update test case teardown. 1180071549eSGeorge Keishing # 1. Collect FFDC if test case failed. 1190071549eSGeorge Keishing # 2. Collect FFDC if test PASS but error log exists. 1200071549eSGeorge Keishing 1210071549eSGeorge Keishing FFDC On Test Case Fail 1220071549eSGeorge Keishing Run Keyword If '${TEST_STATUS}' == 'PASS' Check Error And Collect FFDC 123