blob: f976e1f7086f38b7f5feed269566b80638446f0b [file] [log] [blame]
*** Settings ***
Documentation Test for HW CI.
Library DateTime
Resource ../../lib/utils.robot
Resource ../../lib/ipmi_client.robot
Resource ../../lib/boot_utils.robot
Resource ../../lib/openbmc_ffdc.robot
Resource ../../lib/bmc_redfish_resource.robot
Test Setup Test Setup Execution
Test Teardown FFDC On Test Case Fail
*** Variables ***
# Error strings to check from journald.
${ERROR_REGEX} SEGV|core-dump|FAILURE|Failed to start
${STANDBY_REGEX} Startup finished in
${SKIP_ERROR} ${EMPTY}
# 3 minutes standby boot time.
${startup_time_threshold} 180
*** Test Cases ***
Verify Application Services Running At Standby
[Documentation] Check if there are services that have not completed.
[Tags] Verify_Application_Services_Running_At_Standby
# Application services running on the BMC are not tightly coupled.
# At standby, there shouldn't be any pending job waiting to complete.
# Examples:
# Failure o/p:
# root@witherspoon:~# systemctl list-jobs --no-pager | cat
# JOB UNIT TYPE STATE
# 35151 xyz.openbmc_project.ObjectMapper.service start running
# 1 jobs listed.
#
# Success o/p:
# root@witherspoon:~# systemctl list-jobs --no-pager | cat
# No jobs running.
Redfish Hard Power Off
${stdout} ${stderr} ${rc}= BMC Execute Command
... systemctl list-jobs --no-pager | cat
Should Be Equal As Strings ${stdout} No jobs running.
Verify Front And Rear LED At Standby
[Documentation] Front and Rear LED should be off at standby.
[Tags] Verify_Front_And_Rear_LED_At_Standby
Redfish Power Off stack_mode=skip quiet=1
Verify Identify LED State ${0}
Check For Application Failures
[Documentation] Parse the journal log and check for failures.
[Tags] Check_For_Application_Failures
Check For Regex In Journald ${ERROR_REGEX} error_check=${0} boot=-b filter_string=${SKIP_ERROR}
Verify Uptime Average Against Threshold
[Documentation] Compare BMC average boot time to a constant threshold.
[Tags] Verify_Uptime_Average_Against_Threshold
Redfish OBMC Reboot (off)
Wait Until Keyword Succeeds
... 1 min 30 sec Check BMC Uptime Journald
Test SSH And IPMI Connections
[Documentation] Try SSH and IPMI commands to verify each connection.
[Tags] Test_SSH_And_IPMI_Connections
BMC Execute Command true
Run IPMI Standard Command chassis status
*** Keywords ***
Test Setup Execution
[Documentation] Do test case setup tasks.
Printn
Redfish.Login
Check BMC Uptime Journald
[Documentation] Check BMC journald uptime entry.
# Example output:
# Startup finished in 10.074s (kernel) + 2min 23.506s (userspace) = 2min 33.581s.
${startup_time} ${stderr} ${rc}= BMC Execute Command
... journalctl --no-pager | egrep '${STANDBY_REGEX}' | tail -1
Should Not Be Empty ${startup_time}
# Example time conversion:
# Get the "2min 33.581s" string total time taken to reach standby.
# Convert time "2min 33.581s" to unit 153.581.
${startup_time}= Convert Time ${startup_time.split("= ",1)[1].strip(".")}
Should Be True ${startup_time} < ${startup_time_threshold}
... msg=${startup_time} greater than threshold value of ${startup_time_threshold}.