Add oem folder for verify mcu, in-band firmware update and jtag master
changes:
- Added test robot "oem/nuvoton/test_redfish_mcu_fw_update.robot"
- Added test robot "oem/nuvoton/test_jtag_master.robot"
- Added test robot "oem/nuvoton/test_ipmi_flash.robot"
Signed-off-by: Tim Lee <timlee660101@gmail.com>
Change-Id: I85afa7db6952781211230c660d1831474b734586
diff --git a/oem/nuvoton/test_redfish_mcu_fw_update.robot b/oem/nuvoton/test_redfish_mcu_fw_update.robot
new file mode 100644
index 0000000..387cfe8
--- /dev/null
+++ b/oem/nuvoton/test_redfish_mcu_fw_update.robot
@@ -0,0 +1,111 @@
+*** Settings ***
+Documentation Update firmware on a target MCU via Redifsh.
+
+# Test Parameters:
+# IMAGE_MCU_FILE_PATH The path to the MCU image file.
+#
+# Firmware update states:
+# Enabled Image is installed and either functional or active.
+# Disabled Image installation failed or ready for activation.
+# Updating Image installation currently in progress.
+
+Resource ../lib/resource.robot
+Resource ../lib/bmc_redfish_resource.robot
+Resource ../lib/boot_utils.robot
+Resource ../lib/openbmc_ffdc.robot
+Resource ../lib/common_utils.robot
+Resource ../lib/code_update_utils.robot
+Resource ../lib/dump_utils.robot
+Resource ../lib/logging_utils.robot
+Resource ../lib/redfish_code_update_utils.robot
+Resource ../lib/utils.robot
+Library ../lib/gen_robot_valid.py
+Library ../lib/tftp_update_utils.py
+
+Suite Setup Suite Setup Execution
+Suite Teardown Redfish.Logout
+Test Setup Printn
+Test Teardown FFDC On Test Case Fail
+
+Force Tags Mcu_Code_Update
+
+*** Test Cases ***
+
+Redfish Mcu Code Update With ApplyTime OnReset
+ [Documentation] Update the firmaware image with ApplyTime of OnReset.
+ [Tags] Redfish_Mcu_Code_Update_With_ApplyTime_OnReset
+ [Template] Redfish Update Firmware
+
+ # policy
+ OnReset ${IMAGE_MCU_FILE_PATH_0}
+
+
+Redfish Mcu Code Update With ApplyTime Immediate
+ [Documentation] Update the firmaware image with ApplyTime of Immediate.
+ [Tags] Redfish_Mcu_Code_Update_With_ApplyTime_Immediate
+ [Template] Redfish Update Firmware
+
+ # policy
+ Immediate ${IMAGE_MCU_FILE_PATH_1}
+
+
+*** Keywords ***
+
+Suite Setup Execution
+ [Documentation] Do the suite setup.
+
+ # Checking for file existence.
+ Valid File Path IMAGE_MCU_FILE_PATH_0
+ Valid File Path IMAGE_MCU_FILE_PATH_1
+
+ Redfish.Login
+ Delete All BMC Dump
+ Redfish Purge Event Log
+
+
+Redfish Verify MCU Version
+ [Documentation] Verify that the version on the MCU is the same as the
+ ... version in the given image via Redfish.
+ [Arguments] ${image_file_path}
+
+ # Description of argument(s):
+ # image_file_path Path to the image tarball.
+
+ # Extract the version from the image tarball on our local system.
+ ${tar_version}= Get Version Tar ${image_file_path}
+
+ ${image_info}= Get Software Inventory State By Version ${tar_version}
+ ${image_id}= Get Image Id By Image Info ${image_info}
+
+ ${mcu_version}= Redfish.Get Attribute /redfish/v1/UpdateService/FirmwareInventory/${image_id} Version
+
+ Valid Value mcu_version valid_values=['${tar_version}']
+
+
+Redfish Update Firmware
+ [Documentation] Update the BMC firmware via redfish interface.
+ [Arguments] ${apply_time} ${image_file_path}
+
+ # Description of argument(s):
+ # policy ApplyTime allowed values (e.g. "OnReset", "Immediate").
+
+ Redfish.Login
+
+ Set ApplyTime policy=${apply_time}
+
+ Redfish Upload Image /redfish/v1/UpdateService ${image_file_path}
+ Sleep 30s
+
+ ${image_version}= Get Version Tar ${image_file_path}
+ ${image_info}= Get Software Inventory State By Version ${image_version}
+ ${image_id}= Get Image Id By Image Info ${image_info}
+
+ Redfish.Login
+ Redfish Verify MCU Version ${image_file_path}
+
+
+Get Image Id By Image Info
+ [Documentation] Get image ID from image_info.
+ [Arguments] ${image_info}
+
+ [Return] ${image_info["image_id"]}