Open power specific support with secureboot code moved
Change-Id: Ib7a789c6eb13ef4f7c59b9c8ce387ded25289c00
Signed-off-by: Sathyajith M S <sathyajith.ms@in.ibm.com>
diff --git a/openpower/test_nmi_interface.robot b/openpower/test_nmi_interface.robot
new file mode 100644
index 0000000..695ecf1
--- /dev/null
+++ b/openpower/test_nmi_interface.robot
@@ -0,0 +1,83 @@
+*** Settings ***
+Documentation Test Non-maskable interrupt functionality.
+
+Resource ../lib/bmc_redfish_resource.robot
+Resource ../lib/boot_utils.robot
+Resource ../lib/openbmc_ffdc.robot
+Resource ../lib/secureboot/secureboot.robot
+Resource ../lib/state_manager.robot
+Library ../lib/bmc_ssh_utils.py
+Library ../syslib/utils_os.py
+
+Test Teardown FFDC On Test Case Fail
+Suite Teardown Redfish.Logout
+
+
+*** Test Cases ***
+
+Trigger NMI When OPAL/Host OS Is Not Up
+ [Documentation] Verify return error code from Redfish
+ ... while injecting NMI when HOST OS is not up.
+ [Tags] Trigger_NMI_When_OPAL/Host_OS_Is_Not_Up
+
+ Redfish Power Off
+ Trigger NMI
+
+
+Trigger NMI When OPAL/Host OS Is Running And Secureboot Is Disabled
+ [Documentation] Verify valid return status code from Redfish
+ ... while injecting NMI, when HOST OS is running and
+ ... secureboot is disabled.
+ [Tags] Trigger_NMI_When_OPAL/Host_OS_Is_Running_And_Secureboot_Is_Disabled
+ [Setup] Test Setup Execution ${0}
+
+ Trigger NMI valid_status_codes=[${HTTP_OK}]
+ # NMI Post Crash Dump Verification
+ Wait Until Keyword Succeeds 10 min 1 min Is Host Rebooted
+ Is OS Booted
+ Wait Until Keyword Succeeds 1 min 10 sec Verify Crash Dump Directory
+
+
+*** Keywords ***
+
+Test Setup Execution
+ [Documentation] Test setup execution.
+ [Arguments] ${secure_boot_mode}=${1}
+
+ # Description of argument(s):
+ # secure_boot_mode Secure boot -> Enable-1 or Disable-0.
+
+ Redfish Power Off stack_mode=skip
+ Set Auto Reboot ${1}
+ # Set and verify secure boot policy as disabled.
+ Set And Verify TPM Policy ${secure_boot_mode}
+ Redfish Power On
+ # Delete any pre-existing dump files.
+ OS Execute Command rm -rf /var/crash/*
+ ${os_release_info}= Get OS Release Info
+ # Start crash dump utility on OS.
+ ${cmd}= Set Variable If
+ ... '${os_release_info['id']}' == 'ubuntu' kdump-config show kdumpctl start
+ OS Execute Command ${cmd} print_out=1
+
+
+Trigger NMI
+ [Documentation] Inject non-maskable interrupt Redfish URI.
+ [Arguments] ${valid_status_codes}=[${HTTP_INTERNAL_SERVER_ERROR}]
+
+ # Description of argument(s):
+ # valid_status_codes A list of status codes that the
+ # caller considers acceptable.
+ # See lib/redfish_plus.py for details.
+
+ Redfish.Login
+ Redfish.Post ${SYSTEM_BASE_URI}Actions/ComputerSystem.Reset
+ ... body={"ResetType": "Nmi"} valid_status_codes=${valid_status_codes}
+
+Verify Crash Dump Directory
+ [Documentation] Verify that the crash dump directory is not empty.
+
+ # As per the requirement, there should be a crash dump file
+ # after successful NMI injection.
+ ${output} ${stderr} ${rc}=
+ ... OS Execute Command ls -ltr /var/crash/* print_out=1