Move extended/test_host_ras.robot to openbmc-test-automation/ras/
Resolves openbmc/openbmc-test-automation#1202
Change-Id: I5e70c74b2873f702f4a786d830fec3b18a729dd3
Signed-off-by: Sridevi Ramesh <sridevra@in.ibm.com>
diff --git a/ras/__init__.robot b/ras/__init__.robot
new file mode 100755
index 0000000..55b2776
--- /dev/null
+++ b/ras/__init__.robot
@@ -0,0 +1,28 @@
+*** Settings ***
+Documentation Set metadata for test suite.
+
+Library SSHLibrary
+Resource ../lib/connection_client.robot
+Resource ../lib/rest_client.robot
+Resource ../lib/utils.robot
+Resource ../lib/code_update_utils.robot
+
+Suite Setup Log System Driver Data
+
+*** Keyword ***
+
+Log System Driver Data
+ [Documentation] Log system driver information.
+
+ Open Connection And Log In
+ ${output} ${stderr}= Execute Command grep ^VERSION_ID= /etc/os-release
+ ... return_stderr=True
+ Should Be Empty ${stderr}
+ Log ${output}
+
+ ${software}= Get Host Software Objects Details
+ Log ${software}
+
+ ${bmc_model}= Get BMC System Model
+ Log BMC Model=${bmc_model}
+
diff --git a/ras/test_host_ras.robot b/ras/test_host_ras.robot
new file mode 100755
index 0000000..4cda59a
--- /dev/null
+++ b/ras/test_host_ras.robot
@@ -0,0 +1,480 @@
+*** Settings ***
+Documentation This suite tests checkstop operations through HOST.
+Resource ../lib/utils.robot
+Resource ../lib/openbmc_ffdc.robot
+Resource ../lib/ras/host_utils.robot
+Resource ../lib/resource.txt
+Resource ../lib/state_manager.robot
+Resource ../lib/openbmc_ffdc_methods.robot
+Resource ../lib/boot_utils.robot
+Variables ../lib/ras/variables.py
+
+Library DateTime
+Library OperatingSystem
+Library random
+Library Collections
+
+Suite Setup RAS Suite Setup
+Test Setup RAS Test Setup
+Test Teardown FFDC On Test Case Fail
+Suite Teardown RAS Suite Cleanup
+
+Force Tags Host_RAS
+*** Variables ***
+${stack_mode} normal
+
+*** Test Cases ***
+# Memory channel (MCACALIFIR) related error injection.
+
+Verify Recoverable Callout Handling For MCA With Threshold 1
+ [Documentation] Verify recoverable callout handling for MCACALIFIR with
+ ... threshold 1.
+ [Tags] Verify_Recoverable_Callout_Handling_For_MCA_With_Threshold_1
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCACALIFIR_RECV1
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcacalfir_th1
+ Inject Recoverable Error With Threshold Limit Through Host
+ ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
+
+
+Verify Recoverable Callout Handling For MCA With Threshold 32
+ [Documentation] Verify recoverable callout handling for MCACALIFIR with
+ ... threshold 32.
+ [Tags] Verify_Recoverable_Callout_Handling_For_MCA_With_Threshold_32
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCACALIFIR_RECV32
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcacalfir_th32
+ Inject Recoverable Error With Threshold Limit Through Host
+ ... ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path}
+
+Verify Unrecoverable Callout Handling For MCA
+ [Documentation] Verify unrecoverable callout handling for MCACALIFIR.
+ [Tags] Verify_Unrecoverable_Callout_Handling_For_MCA
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCACALIFIR_UE
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcacalfir
+ Inject Unrecoverable Error Through Host
+ ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
+
+# Memory buffer (MCIFIR) related error injection.
+
+Verify Recoverable Callout Handling For MCI With Threshold 1
+ [Documentation] Verify recoverable callout handling for mci with
+ ... threshold 1.
+ [Tags] Verify_Recoverable_Callout_Handling_For_MCI_With_Threshold_1
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCS_RECV1
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcifir_th1
+ Inject Recoverable Error With Threshold Limit Through Host
+ ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
+
+Verify Unrecoverable Callout Handling For MCI
+ [Documentation] Verify unrecoverable callout handling for mci.
+ [Tags] Verify_Unrecoverable_Callout_Handling_For_MCI
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} MCS_UE
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}mcifir
+ Inject Unrecoverable Error Through Host
+ ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
+
+# CAPP accelerator (CXAFIR) related error injection.
+
+Verify Recoverable Callout Handling For CXA With Threshold 5
+ [Documentation] Verify recoverable callout handling for CXA with
+ ... threshold 5.
+ [Tags] Verify_Recoverable_Callout_Handling_For_CXA_With_Threshold_5
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CXA_RECV5
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cxafir_th5
+ Inject Recoverable Error With Threshold Limit Through Host
+ ... ${value[0]} ${value[1]} 5 ${value[2]} ${err_log_path}
+
+Verify Recoverable Callout Handling For CXA With Threshold 32
+ [Documentation] Verify recoverable callout handling for CXA with
+ ... threshold 32.
+ [Tags] Verify_Recoverable_Callout_Handling_For_CXA_With_Threshold_32
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CXA_RECV32
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cxafir_th32
+ Inject Recoverable Error With Threshold Limit Through Host
+ ... ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path}
+
+Verify Unrecoverable Callout Handling For CXA
+ [Documentation] Verify unrecoverable callout handling for CXAFIR.
+ [Tags] Verify_Unrecoverable_Callout_Handling_For_CXA
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CXA_UE
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cxafir_ue
+ Inject Unrecoverable Error Through Host
+ ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
+
+# OBUSFIR related error injection.
+
+Verify Recoverable Callout Handling For OBUS With Threshold 32
+ [Documentation] Verify recoverable callout handling for OBUS with
+ ... threshold 32.
+ [Tags] Verify_Recoverable_Callout_Handling_For_OBUS_With_Threshold_32
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} OBUS_RECV32
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}obusfir_th32
+ Inject Recoverable Error With Threshold Limit Through Host
+ ... ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path}
+
+# Nvidia graphics processing units (NPU0FIR) related error injection.
+
+Verify Recoverable Callout Handling For NPU0 With Threshold 32
+ [Documentation] Verify recoverable callout handling for NPU0 with
+ ... threshold 32.
+ [Tags] Verify_Recoverable_Callout_Handling_For_NPU0_With_Threshold_32
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NPU0_RECV32
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}npu0fir_th32
+ Inject Recoverable Error With Threshold Limit Through Host
+ ... ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path}
+
+# Nest accelerator NXDMAENGFIR related error injection.
+
+Verify Recoverable Callout Handling For NXDMAENG With Threshold 1
+ [Documentation] Verify recoverable callout handling for NXDMAENG with
+ ... threshold 1.
+ [Tags] Verify_Recoverable_Callout_Handling_For_NXDMAENG_With_Threshold_1
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NX_RECV1
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}nxfir_th1
+ Inject Recoverable Error With Threshold Limit Through Host
+ ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
+
+
+Verify Recoverable Callout Handling For NXDMAENG With Threshold 32
+ [Documentation] Verify recoverable callout handling for NXDMAENG with
+ ... threshold 32.
+ [Tags] Verify_Recoverable_Callout_Handling_For_NXDMAENG_With_Threshold_32
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NX_RECV32
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}nxfir_th32
+ Inject Recoverable Error With Threshold Limit Through Host
+ ... ${value[0]} ${value[1]} 32 ${value[2]} ${err_log_path}
+
+Verify Unrecoverable Callout Handling For NXDMAENG
+ [Documentation] Verify unrecoverable callout handling for NXDMAENG.
+ [Tags] Verify_Unrecoverable_Callout_Handling_For_NXDMAENG
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NX_UE
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}nxfir_ue
+ Inject Unrecoverable Error Through Host
+ ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
+
+
+# L2FIR related error injection.
+
+Verify Recoverable Callout Handling For L2FIR With Threshold 1
+ [Documentation] Verify recoverable callout handling for L2FIR with
+ ... threshold 1.
+ [Tags] Verify_Recoverable_Callout_Handling_For_L2FIR_With_Threshold_1
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L2FIR_RECV1
+ ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l2fir_th1
+ Inject Recoverable Error With Threshold Limit Through Host
+ ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
+
+Verify Recoverable Callout Handling For L2FIR With Threshold 32
+ [Documentation] Verify recoverable callout handling for L2FIR with
+ ... threshold 32.
+ [Tags] Verify_Recoverable_Callout_Handling_For_L2FIR_With_Threshold_32
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L2FIR_RECV32
+ ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l2fir_th32
+ Inject Recoverable Error With Threshold Limit Through Host
+ ... ${translated_fir} ${value[1]} 32 ${value[2]} ${err_log_path}
+
+Verify Unrecoverable Callout Handling For L2FIR
+ [Documentation] Verify unrecoverable callout handling for L2FIR.
+ [Tags] Verify_Unrecoverable_Callout_Handling_For_L2FIR
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L2FIR_UE
+ ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l2fir_ue
+ Inject Unrecoverable Error Through Host
+ ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
+
+# L3FIR related error injection.
+
+Verify Recoverable Callout Handling For L3FIR With Threshold 1
+ [Documentation] Verify recoverable callout handling for L3FIR with
+ ... threshold 1.
+ [Tags] Verify_Recoverable_Callout_Handling_For_L3FIR_With_Threshold_1
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L3FIR_RECV1
+ ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l3fir_th1
+ Inject Recoverable Error With Threshold Limit Through Host
+ ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
+
+Verify Recoverable Callout Handling For L3FIR With Threshold 32
+ [Documentation] Verify recoverable callout handling for L3FIR with
+ ... threshold 32.
+ [Tags] Verify_Recoverable_Callout_Handling_For_L3FIR_With_Threshold_32
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L3FIR_RECV32
+ ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l3fir_th32
+ Inject Recoverable Error With Threshold Limit Through Host
+ ... ${translated_fir} ${value[1]} 32 ${value[2]} ${err_log_path}
+
+Verify Unrecoverable Callout Handling For L3FIR
+ [Documentation] Verify unrecoverable callout handling for L3FIR.
+ [Tags] Verify_Unrecoverable_Callout_Handling_For_L3FIR
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} L3FIR_UE
+ ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}l3fir_ue
+ Inject Unrecoverable Error Through Host
+ ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
+
+# On chip controller (OCCFIR) related error injection.
+
+Verify Recoverable Callout Handling For OCC With Threshold 1
+ [Documentation] Verify recoverable callout handling for OCCFIR with
+ ... threshold 1.
+ [Tags] Verify_Recoverable_Callout_Handling_For_OCC_With_Threshold_1
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} OCCFIR_RECV1
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}occfir_th1
+ Inject Recoverable Error With Threshold Limit Through Host
+ ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
+
+# Core management engine (CMEFIR) related error injection.
+
+Verify Recoverable Callout Handling For CMEFIR With Threshold 1
+ [Documentation] Verify recoverable callout handling for CMEFIR with
+ ... threshold 1.
+ [Tags] Verify_Recoverable_Callout_Handling_For_CMEFIR_With_Threshold_1
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} CMEFIR_RECV1
+ ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}cmefir_th1
+ Inject Recoverable Error With Threshold Limit Through Host
+ ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
+
+# Nest control vunit (NCUFIR) related error injection.
+
+Verify Recoverable Callout Handling For NCUFIR With Threshold 1
+ [Documentation] Verify recoverable callout handling for NCUFIR with
+ ... threshold 1.
+ [Tags] Verify_Recoverable_Callout_Handling_For_NCUFIR_With_Threshold_1
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NCUFIR_RECV1
+ ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}ncufir_th1
+ Inject Recoverable Error With Threshold Limit Through Host
+ ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
+
+Verify Unrecoverable Callout Handling For NCUFIR
+ [Documentation] Verify unrecoverable callout handling for NCUFIR.
+ [Tags] Verify_Unrecoverable_Callout_Handling_For_NCUFIR
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} NCUFIR_UE
+ ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}ncufir_ue
+ Inject Unrecoverable Error Through Host
+ ... ${translated_fir} ${value[1]} 1 ${value[2]} ${err_log_path}
+
+# Core FIR related error injection.
+
+Verify Recoverable Callout Handling For CoreFIR With Threshold 5
+ [Documentation] Verify recoverable callout handling for CoreFIR with
+ ... threshold 5.
+ [Tags] Verify_Recoverable_Callout_Handling_For_CoreFIR_With_Threshold_5
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} COREFIR_RECV5
+ ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
+ Disable CPU States Through HOST
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}corefir_th5
+ Inject Recoverable Error With Threshold Limit Through Host
+ ... ${value[0]} ${value[1]} 5 ${value[2]} ${err_log_path}
+
+Verify Recoverable Callout Handling For CoreFIR With Threshold 1
+ [Documentation] Verify recoverable callout handling for CoreFIR with
+ ... threshold 1.
+ [Tags] Verify_Recoverable_Callout_CoreFIR_Handling_For_With_Threshold_1
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} COREFIR_RECV1
+ ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
+ Disable CPU States Through HOST
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}corefir_th1
+ Inject Recoverable Error With Threshold Limit Through Host
+ ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
+
+Verify Unrecoverable Callout Handling For CoreFIR
+ [Documentation] Verify unrecoverable callout handling for CoreFIR.
+ [Tags] Verify_Unrecoverable_Callout_Handling_For_CoreFIR
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} COREFIR_UE
+ ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EX
+ Disable CPU States Through HOST
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}corefir_ue
+ Inject Unrecoverable Error Through Host
+ ... ${value[0]} ${value[1]} 1 ${value[2]} ${err_log_path}
+
+Verify Recoverable Callout Handling For EQFIR With Threshold 32
+ [Documentation] Verify recoverable callout handling for L3FIR with
+ ... threshold 32.
+ [Tags] Verify_Recoverable_Callout_Handling_For_EQFIR_With_Threshold_32
+
+ ${value}= Get From Dictionary ${ERROR_INJECT_DICT} EQFIR_RECV32
+ ${translated_fir}= Fetch FIR Address Translation Value ${value[0]} EQ
+ ${err_log_path}= Catenate ${RAS_LOG_DIR_PATH}eqfir_th32
+ Inject Recoverable Error With Threshold Limit Through Host
+ ... ${translated_fir} ${value[1]} 32 ${value[2]} ${err_log_path}
+
+
+*** Keywords ***
+
+Verify And Clear Gard Records On HOST
+ [Documentation] Verify And Clear gard records on HOST.
+
+ ${output}= Gard Operations On OS list
+ Should Not Contain ${output} No GARD
+ Gard Operations On OS clear all
+
+Verify Error Log Entry
+ [Documentation] Verify error log entry & signature description.
+ [Arguments] ${signature_desc} ${log_prefix}
+ # Description of argument(s):
+ # signature_desc Error log signature description.
+ # log_prefix Log path prefix.
+
+ ${resp}= OpenBMC Get Request ${BMC_LOGGING_ENTRY}/list
+ Should Not Be Equal As Strings ${resp.status_code} ${HTTP_NOT_FOUND}
+
+ Collect eSEL Log ${log_prefix}
+ ${error_log_file_path}= Catenate ${log_prefix}esel.txt
+ ${rc} ${output} = Run and Return RC and Output
+ ... grep -i ${signature_desc} ${error_log_file_path}
+ Should Not Be Empty ${output}
+
+Inject Recoverable Error With Threshold Limit Through Host
+ [Documentation] Inject and verify recoverable error on processor through
+ ... host.
+ ... Test sequence:
+ ... 1. Enable Auto Reboot Setting
+ ... 2. Inject Error on processor/centaur
+ ... 3. Check If HOST is running.
+ ... 4. Verify error log entry & signature description.
+ ... 4. Verify & clear gard records.
+ [Arguments] ${fir} ${chip_address} ${threshold_limit}
+ ... ${signature_desc} ${log_prefix}
+ # Description of argument(s):
+ # fir FIR (Fault isolation register) value (e.g. 2011400).
+ # chip_address Chip address (e.g 2000000000000000).
+ # threshold_limit Threshold limit (e.g 1, 5, 32).
+ # signature_desc Error log signature description.
+ # log_prefix Log path prefix.
+
+ Set Auto Reboot 1
+ Inject Error Through HOST ${fir} ${chip_address} ${threshold_limit}
+ ... ${master_proc_chip}
+
+ Is Host Running
+ ${output}= Gard Operations On OS list
+ Should Contain ${output} No GARD
+ Verify Error Log Entry ${signature_desc} ${log_prefix}
+
+
+Inject Unrecoverable Error Through Host
+ [Documentation] Inject and verify recoverable error on processor through
+ ... host.
+ ... Test sequence:
+ ... 1. Enable Auto Reboot Setting
+ ... 2. Inject Error on processor/centaur
+ ... 3. Check If HOST is rebooted.
+ ... 4. Verify error log entry & signature description.
+ ... 4. Verify & clear gard records.
+ [Arguments] ${fir} ${chip_address} ${threshold_limit}
+ ... ${signature_desc} ${log_prefix}
+ # Description of argument(s):
+ # fir FIR (Fault isolation register) value (e.g. 2011400).
+ # chip_address Chip address (e.g 2000000000000000).
+ # threshold_limit Threshold limit (e.g 1, 5, 32).
+ # signature_desc Error Log signature description.
+ # (e.g 'mcs(n0p0c0) (MCFIR[0]) mc internal recoverable')
+ # log_prefix Log path prefix.
+
+ Set Auto Reboot 1
+ Inject Error Through HOST ${fir} ${chip_address} ${threshold_limit}
+ ... ${master_proc_chip}
+ Wait Until Keyword Succeeds 500 sec 20 sec Is Host Rebooted
+ Wait for OS
+ Verify And Clear Gard Records On HOST
+ Verify Error Log Entry ${signature_desc} ${log_prefix}
+
+Fetch FIR Address Translation Value
+ [Documentation] Fetch FIR address translation value through HOST.
+ [Arguments] ${fir} ${target_type}
+ # Description of argument(s):
+ # fir FIR (Fault isolation register) value (e.g. 2011400).
+ # core_id Core ID (e.g. 9).
+ # target_type Target type (e.g. 'EX', 'EQ', 'C').
+
+ Login To OS Host
+ Copy Address Translation Utils To HOST OS
+
+ # Fetch processor chip IDs.
+ ${proc_chip_id}= Get ProcChipId From OS Processor ${master_proc_chip}
+ # Example output:
+ # 00000000
+
+ ${core_ids}= Get Core IDs From OS ${proc_chip_id[-1]}
+ # Example output:
+ #./probe_cpus.sh | grep 'CHIP ID: 0' | cut -c21-22
+ # ['14', '15', '16', '17']
+
+ # Ignoring master core ID.
+ ${output}= Get Slice From List ${core_ids} 1
+ # Feth random non-master core ID.
+ ${core_ids_sub_list}= Evaluate random.sample(${core_ids}, 1) random
+ ${core_id}= Get From List ${core_ids_sub_list} 0
+ ${translated_fir_addr}= FIR Address Translation Through HOST
+ ... ${fir} ${core_id} ${target_type}
+
+ [Return] ${translated_fir_addr}
+
+RAS Test SetUp
+ [Documentation] Validates input parameters.
+
+ Should Not Be Empty
+ ... ${OS_HOST} msg=You must provide DNS name/IP of the OS host.
+ Should Not Be Empty
+ ... ${OS_USERNAME} msg=You must provide OS host user name.
+ Should Not Be Empty
+ ... ${OS_PASSWORD} msg=You must provide OS host user password.
+
+ # Boot to OS.
+ REST Power On quiet=${1}
+ # Adding delay after host bring up.
+ Sleep 60s
+
+RAS Suite Setup
+ [Documentation] Create RAS log directory to store all RAS test logs.
+
+ ${RAS_LOG_DIR_PATH}= Catenate ${EXECDIR}/RAS_logs/
+ Set Suite Variable ${RAS_LOG_DIR_PATH}
+ Set Suite Variable ${master_proc_chip} False
+
+ Create Directory ${RAS_LOG_DIR_PATH}
+ OperatingSystem.Directory Should Exist ${RAS_LOG_DIR_PATH}
+ Empty Directory ${RAS_LOG_DIR_PATH}
+
+ # Boot to Os.
+ REST Power On quiet=${1}
+
+RAS Suite Cleanup
+ [Documentation] Perform RAS suite cleanup and verify that host
+ ... boots after test suite run.
+
+ # Boot to OS.
+ REST Power On quiet=${1}
+ Delete Error Logs
+ Gard Operations On OS clear all