Update IPMI test to use Redfish power on

Changes:
    - renamed: tests/ipmi/test_sdr.robot -> ipmi/test_ipmi_sdr.robot
    - renamed: ipmi/test_sol.robot -> ipmi/test_ipmi_sol.robot

Many of the REST sensors won't be ready, so continuing with whatever
currently it has.

Change-Id: I4b698cba6ac8239864af2df1029bbf13b67fb212
Signed-off-by: George Keishing <gkeishin@in.ibm.com>
diff --git a/ipmi/test_ipmi_sdr.robot b/ipmi/test_ipmi_sdr.robot
new file mode 100755
index 0000000..8ebc9ec
--- /dev/null
+++ b/ipmi/test_ipmi_sdr.robot
@@ -0,0 +1,231 @@
+*** Settings ***
+Documentation  Test IPMI sensor IDs.
+
+Resource               ../lib/rest_client.robot
+Resource               ../lib/ipmi_client.robot
+Resource               ../lib/openbmc_ffdc.robot
+Resource               ../lib/boot_utils.robot
+Resource               ../lib/bmc_redfish_resource.robot
+
+Suite setup             Suite Setup Execution
+Test Teardown           Test Teardown Execution
+
+Force Tags              SDR_Test
+
+
+*** Test Cases ***
+
+
+Test CPU Core SDR Info At Power On
+    [Documentation]  Verify CPU core SDR info via IPMI and Redfish at power on.
+
+    [Tags]  Test_CPU_Core_SDR_Info_At_Power_On
+
+    Redfish Power On  stack_mode=skip  quiet=1
+    Test SDR Info  core
+
+
+Test DIMM SDR Info At Power On
+    [Documentation]  Verify DIMM SDR info via IPMI and Redfish at power on.
+
+    [Tags]  Test_DIMM_SDR_Info_At_Power_On
+
+    Redfish Power On  stack_mode=skip  quiet=1
+    Test SDR Info  dimm
+
+
+Test GPU SDR Info At Power On
+    [Documentation]  Verify GPU SDR info via IPMI and Redfish at power on.
+
+    [Tags]  Test_GPU_SDR_Info_At_Power_On
+
+    Redfish Power On  stack_mode=skip  quiet=1
+    Test SDR Info  gv100card
+
+
+Test CPU Core SDR Info At Power Off
+    [Documentation]  Verify CPU core SDR info via IPMI and Redfish at power off.
+
+    [Tags]  Test_CPU_Core_SDR_Info_At_Power_Off
+
+    Redfish Hard Power Off  stack_mode=skip  quiet=1
+    Test SDR Info  core
+
+
+Test DIMM SDR Info At Power Off
+    [Documentation]  Verify DIMM SDR info via IPMI and Redfish at power off.
+
+    [Tags]  Test_DIMM_SDR_Info_At_Power_Off
+
+    Redfish Hard Power Off  stack_mode=skip  quiet=1
+    Test SDR Info  dimm
+
+
+Test Turbo Allowed SDR Info
+    [Documentation]  Verify turbo allowed SDR info via IPMI and Redfish.
+    [Tags]  Test_Turbo_Allowed_SDR_Info
+
+    ${component_uri_list}=  Get Component URIs  turbo_allowed
+    ${component_uri}=  Get From List  ${component_uri_list}  0
+    ${state_rest}=  Read Attribute  ${component_uri}  TurboAllowed
+
+    ${state_ipmi}=  Get SDR Presence Via IPMI  turbo_allowed${SPACE}
+
+    Run Keyword If  '${state_ipmi}' == 'Disabled'
+    ...    Should Be True  ${state_rest} == 0
+    ...  ELSE IF  '${state_ipmi}' == 'State Asserted'
+    ...    Should Be True  ${state_rest} == 1
+
+
+Test Auto Reboot SDR Info
+    [Documentation]  Verify auto reboot SDR info via IPMI and Redfish.
+    [Tags]  Test_Auto_Reboot_SDR_Info
+
+
+    ${component_uri_list}=  Get Component URIs  auto_reboot
+    ${component_uri}=  Get From List  ${component_uri_list}  0
+    ${state_rest}=  Read Attribute  ${component_uri}  AutoReboot
+
+    ${state_ipmi}=  Get SDR Presence Via IPMI  auto_reboot${SPACE}
+
+    Run Keyword If  '${state_ipmi}' == 'Disabled'
+    ...    Should Be True  ${state_rest} == 0
+    ...  ELSE IF  '${state_ipmi}' == 'State Asserted'
+    ...    Should Be True  ${state_rest} == 1
+
+
+Test TPM Enable SDR Info
+    [Documentation]  Verify auto reboot SDR info via IPMI and Redfish.
+    [Tags]  Test_TPM_Enable_SDR_Info
+
+
+    ${component_uri_list}=  Get Component URIs  TPMEnable
+    ${component_uri}=  Get From List  ${component_uri_list}  0
+    ${state_rest}=  Read Attribute  ${component_uri}  TPMEnable
+
+    ${state_ipmi}=  Get SDR Presence Via IPMI  auto_reboot${SPACE}
+
+    Run Keyword If  '${state_ipmi}' == 'Disabled'
+    ...    Should Be True  ${state_rest} == 0
+    ...  ELSE IF  '${state_ipmi}' == 'State Asserted'
+    ...    Should Be True  ${state_rest} == 1
+
+
+*** Keywords ***
+
+Get Component URIs
+    [Documentation]  Get URIs for given component from given URIs
+    ...  and return as a list.
+    [Arguments]  ${component_name}  ${uri_list}=${SYSTEM_URI}
+
+    # A sample result returned for the "core" component:
+    # /xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core0
+    # /xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core1
+    # /xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core10
+    # /xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core11
+    # /xyz/openbmc_project/inventory/system/chassis/motherboard/cpu0/core12
+    # (etc.)
+
+    # Description of argument(s):
+    # component_name    Component name (e.g. "core", "dimm", etc.).
+    # uri_list          URI list.
+
+    ${component_uris}=  Get Matches  ${uri_list}
+    ...  regexp=^.*[0-9a-z_].${component_name}\[0-9]*$
+    [Return]  ${component_uris}
+
+
+Get SDR Presence Via IPMI
+    [Documentation]  Return presence info from IPMI sensor data record.
+    [Arguments]  ${component_name}
+
+    # Description of argument(s):
+    # component_name    Component name (e.g. "cpu0_core0", "dimm0", etc.).
+
+    # Example of IPMI SDR elist output.
+    # BootProgress     | 03h | ok  | 34.2 |
+    # OperatingSystemS | 05h | ok  | 35.1 | boot completed - device not specified
+    # AttemptsLeft     | 07h | ok  | 34.1 |
+    # occ0             | 08h | ok  | 210.1 | Device Disabled
+    # occ1             | 09h | ok  | 210.2 | Device Disabled
+    # cpu0_core0       | 12h | ok  | 208.1 | Presence detected
+    # cpu0_core1       | 15h | ok  | 208.2 | Disabled
+    # cpu0_core2       | 18h | ok  | 208.3 | Presence detected
+    # dimm0            | A6h | ok  | 32.1 | Presence Detected
+    # dimm1            | A8h | ok  | 32.2 | Presence Detected
+    # dimm2            | AAh | ok  | 32.9 | Presence Detected
+    # gv100card0       | C5h | ok  | 216.1 | 0 unspecified
+    # gv100card1       | C8h | ok  | 216.2 | 0 unspecified
+    # TPMEnable        | D7h | ok  |  3.3 | State Asserted
+    # auto_reboot      | DAh | ok  | 33.2 | State Asserted
+    # volatile         | DBh | ok  | 33.1 | State Deasserted
+
+    ${sdr_elist_output}=  Run IPMI Standard Command  sdr elist
+    ${sdr_component_line}=
+    ...  Get Lines Containing String  ${sdr_elist_output}  ${component_name}
+    ...  case-insensitive
+
+    ${presence_ipmi}=  Fetch From Right  ${sdr_component_line}  |
+    ${presence_ipmi}=  Strip String  ${presence_ipmi}
+    [Return]  ${presence_ipmi}
+
+
+Verify SDR
+    [Documentation]  Verify IPMI sensor data record for given component
+    ...  with Redfish.
+    [Arguments]  ${component_name}
+
+    # Description of argument(s):
+    # component_name    Component name (e.g. "cpu0/core0", "dimm0", etc.).
+
+    ${presence_rest}=  Read Attribute
+    ...  ${HOST_INVENTORY_URI}system/chassis/motherboard/${component_name}
+    ...  Present
+    ${functional_rest}=  Read Attribute
+    ...  ${HOST_INVENTORY_URI}system/chassis/motherboard/${component_name}
+    ...  Functional
+
+    # Replace "/" with "_" if there is any "/" in component name.
+    # e.g. cpu0/core0 to cpu0_core0
+    ${component_name}=  Replace String  ${component_name}  /  _
+    ${presence_ipmi}=  Get SDR Presence Via IPMI  ${component_name}${SPACE}
+
+    Run Keyword If  '${presence_ipmi}' == 'Disabled'
+    ...    Should Be True  ${presence_rest} == 0 and ${functional_rest} == 0
+    ...  ELSE IF  '${presence_ipmi}' == 'Presence Detected' or '${presence_ipmi}' == 'Presence detected'
+    ...    Should Be True  ${presence_rest} == 1 and ${functional_rest} == 1
+    ...  ELSE IF  '${presence_ipmi}' == 'State Asserted'
+    ...    Should Be True  ${presence_rest} == 1 and ${functional_rest} == 1
+    ...  ELSE IF  '${presence_ipmi}' == 'State Deasserted'
+    ...    Should Be True  ${presence_rest} == 1 and ${functional_rest} == 0
+    ...  ELSE  Fail  msg=Invalid Presence${presence_ipmi}
+
+
+Test SDR Info
+    [Documentation]  Test SDR info for given component.
+    [Arguments]  ${component_name}
+
+    # Description of argument(s):
+    # component_name    Component name (e.g. "core", "dimm", etc.).
+
+    ${component_uri_list}=  Get Component URIs  ${component_name}
+    : FOR  ${uri}  IN  @{component_uri_list}
+    \  ${component_name}=  Fetch From Right  ${uri}  motherboard/
+    \  Log To Console  ${component_name}
+    \  Verify SDR  ${component_name}
+
+
+Suite Setup Execution
+    [Documentation]  Do the initial suite setup.
+
+    Redfish Power On
+
+    ${uri_list}=  Read Properties  ${OPENBMC_BASE_URI}list
+    Set Suite Variable  ${SYSTEM_URI}  ${uri_list}
+    Log  ${uri_list}
+
+
+Test Teardown Execution
+    [Documentation]  Do the post test teardown.
+
+    FFDC On Test Case Fail