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"]}