diff --git a/lib/esel_utils.robot b/lib/esel_utils.robot
index 4cb7569..50f148b 100755
--- a/lib/esel_utils.robot
+++ b/lib/esel_utils.robot
@@ -59,3 +59,31 @@
     ${elog_entry}=  Get Event Logs
     Should Be Equal  ${elog_entry[0]["Message"]}  org.open_power.Host.Error.Event
     Should Be Equal  ${elog_entry[0]["Severity"]}  Critical
+
+
+Check For Error Logs
+    [Documentation]  Fail if there are error logs. Ignore logs with
+    ...              severity in the whitelist.
+
+    [Arguments]  ${whitelist}
+
+    # Description of Argument(s):
+    # whitelist  A list to be used to filter out esels which are
+    #            of no interest to the caller.
+    #            Error Logs with Severity field matching an
+    #            entry in this list will be ignored. (e.g.
+    #            xyz.openbmc_project.Logging.Entry.Level.Error)
+
+    Print Timen  Checking Error Logs.
+    ${error_logs}=  Get Error Logs
+
+    ${num_error_logs}=  Get Length  ${error_logs}
+    Return From Keyword If  ${num_error_logs} == ${0}
+
+    # Get a list of the severities of the error logs.
+    ${error_log_severities}=  Nested Get  Severity  ${error_logs}
+    # Subtract the WHITELIST from the error_log_severities.
+    ${problem_error_logs}=  Evaluate
+    ...  list(set($error_log_severities) - set($whitelist))
+
+    Valid Length  problem_error_logs   max_length=0
diff --git a/systest/htx_hardbootme_test.robot b/systest/htx_hardbootme_test.robot
index 149a0c9..b2399d4 100755
--- a/systest/htx_hardbootme_test.robot
+++ b/systest/htx_hardbootme_test.robot
@@ -40,6 +40,7 @@
 Resource        ../lib/openbmc_ffdc_utils.robot
 Resource        ../lib/logging_utils.robot
 Resource        ../lib/code_update_utils.robot
+Resource        ../lib/esel_utils.robot
 Library         ../syslib/utils_keywords.py
 Library         ../lib/utils_files.py
 Library         ../lib/logging_utils.py
@@ -62,11 +63,12 @@
 
 ${rest_keyword}              REST
 
-# Error log Severities to ignore when checking for eSELs.
+# Error log Severities to ignore when checking Error Logs.
 @{ESEL_WHITELIST}
 ...  xyz.openbmc_project.Logging.Entry.Level.Informational
 
 
+
 *** Test Cases ***
 
 Hard Bootme Test
@@ -213,36 +215,11 @@
     Fail  Significant difference in inventory found, rc=${diff_rc}
 
 
-Check For ESELs
-    [Documentation]  Terminate if eSELs with Severity field not on WHITELIST.
-
-    Print Timen  Checking eSEL Error Logs.
-    ${error_logs}=  Get Error Logs
-
-    ${num_error_logs}=  Get Length  ${error_logs}
-    Rprint Vars  num_error_logs
-    Return From Keyword If  ${num_error_logs} == ${0}
-
-    Print Error Logs  ${error_logs}
-
-    # Get a list of the severities of the error logs.
-    ${error_log_severities}=  Nested Get  Severity  ${error_logs}
-    # Subtract the WHITELIST from the error_log_severities.
-    ${problem_error_logs}=
-    ...  Evaluate  list(set($error_log_severities) - set($ESEL_WHITELIST))
-    ${num_error_logs_not_on_whitelist}=  Get Length  ${problem_error_logs}
-
-    Return From Keyword If  ${num_error_logs_not_on_whitelist} == ${0}
-
-    Rprint Vars  ESEL_WHITELIST
-    Fail  msg=Found error logs with Severity not matching ESEL_WHITELIST.
-
-
 Loop HTX Health Check
     [Documentation]  Run until HTX exerciser fails.
     Repeat Keyword  ${HTX_DURATION}
     ...  Run Keywords  Check HTX Run Status
-    ...  AND  Check For ESELs
+    ...  AND  Check For Error Logs  ${ESEL_WHITELIST}
     ...  AND  Sleep  ${HTX_INTERVAL}
 
 
diff --git a/systest/test_bmc_poll_errors.robot b/systest/test_bmc_poll_errors.robot
index 33631b2..fca158f 100755
--- a/systest/test_bmc_poll_errors.robot
+++ b/systest/test_bmc_poll_errors.robot
@@ -7,6 +7,7 @@
 Resource          ../lib/boot_utils.robot
 Resource          ../lib/boot_utils.robot
 Resource          ../lib/bmc_redfish_resource.robot
+Resource          ../lib/esel_utils.robot
 
 Suite Setup      Suite Setup Execution
 Test Teardown    Post Test Case Execution
@@ -17,6 +18,11 @@
 ${POLL_DURATION}  48 hours
 ${POLL_INTERVAL}  10 second
 
+# Error log Severities to ignore when checking Error Logs.
+@{ESEL_WHITELIST}
+...  xyz.openbmc_project.Logging.Entry.Level.Informational
+
+
 *** Test Cases ***
 
 Poll BMC For Errors
@@ -36,7 +42,7 @@
 
     Redfish.Get  /redfish/v1/Chassis/chassis/Sensors
 
-    Error Logs Should Not Exist
+    Check For Error Logs  ${ESEL_WHITELIST}
 
 
 Suite Setup Execution
@@ -49,8 +55,8 @@
     Should Not Be Empty
     ...  ${OS_PASSWORD}  msg=You must provide OS host user password.
 
+    Redfish Power On  stack_mode=skip
     Redfish.Login
-    Redfish Power On
 
     Delete Error Logs
     Error Logs Should Not Exist
