*** Settings ***
Documentation       This suite is for Verifying BMC device tree.

Resource            ../lib/utils.robot
Resource            ../lib/openbmc_ffdc.robot
Resource            ../lib/ipmi_client.robot
Library             String

Suite Setup         Open Connection And Log In
Suite Teardown      Close All Connections
Test Teardown       FFDC On Test Case Fail

*** Variables ***
${devicetree_base}  /sys/firmware/devicetree/base/

*** Test Cases ***
Check BMC Model Property Is Set
   [Documentation]  Verify if the BMC Model is populated in the device tree.
   [Tags]  Check_BMC_Model_Property_Is_Set
   [Template]  Template Check Property

   #Property
   model


Check BMC Compatible Property Is Set
   [Documentation]  Verify if the BMC compatible property is populated.
   [Tags]  Check_BMC_Compatible_Property_Is_Set
   [Template]  Template Check Property

   #Property
   compatible


Check BMC CPU Name Property Is Set
   [Documentation]  Verify if the BMC CPU name property is populated.
   [Tags]  Check_BMC_CPU_Name_Property_Is_Set
   [Template]  Template Check Property

   #Property
   cpus/name


Check BMC CPU Compatible Property Is Set
   [Documentation]  Verify if the BMC CPU compatible property is populated.
   [Tags]  Check_BMC_CPU_Compatible_Property_Is_Set
   [Template]  Template Check Property

   #Property
   cpus/cpu@0/compatible


Check BMC Memory Name Property Is Set
   [Documentation]  Verify if the BMC Memory name property is populated.
   [Tags]  Check_BMC_Memory_Name_Property_Is_Set
   [Template]  Template Check Property

   #Property
   memory@80000000/name


Check BMC Memory Device Type Property Is Set
   [Documentation]  Verify if the BMC Memory Device Type property is
   ...  populated.
   [Tags]  Check_BMC_Memory_Device_Type_Property_Is_Set
   [Template]  Template Check Property

   #Property
   memory@80000000/device_type


Check BMC FSI Name Property Is Set
   [Documentation]  Verify if the BMC FSI name property is populated.
   [Tags]  Check_BMC_FSI_Name_Property_Is_Set
   [Template]  Template Check Property

   #Property
   gpio-fsi/name


Check BMC FSI Compatible Property Is Set
   [Documentation]  Verify if the BMC FSI compatible property is populated.
   [Tags]  Check_BMC_FSI_Compatible_Property_Is_Set
   [Template]  Template Check Property

   #Property
   gpio-fsi/compatible


Check BMC GPIO FSI Name Property Is Set
   [Documentation]  Verify if the BMC GPIO-FSI name property is populated.
   [Tags]  Check_BMC_GPIO_FSI_Name_Property_Is_Set
   [Template]  Template Check Property

   #Property
   gpio-fsi/name


Check BMC GPIO FSI Compatible Property Is Set
   [Documentation]  Verify if the BMC GPIO-FSI compatible property is populated.
   [Tags]  Check_BMC_GPIO_FSI_Compatible_Property_Is_Set
   [Template]  Template Check Property

   #Property
   gpio-fsi/compatible


Check BMC GPIO Keys Name Property Is Set
   [Documentation]  Verify if the BMC GPIO-keys name property is
   ...  populated.
   [Tags]  Check_BMC_GPIO_Keys_Name_Property_Is_Set
   [Template]  Template Check Property

   #Property
   gpio-keys/name


Check BMC GPIO Keys Compatible Property Is Set
   [Documentation]  Verify if the BMC GPIO-keys compatible property is
   ...  populated.
   [Tags]  Check_BMC_GPIO_Keys_Compatible_Property_Is_Set
   [Template]  Template Check Property

   #Property
   gpio-keys/compatible


Check BMC IIO-HWMON Name Property Is Set
   [Documentation]  Verify if the BMC IIO-HWMON-DPS310 name property is
   ...  populated.
   [Tags]  Check_BMC_IIO-HWMON_Name_Property_Is_Set
   [Template]  Template Check Property

   #Property
   iio-hwmon-dps310/name


Check BMC IIO-HWMON Compatible Property Is Set
   [Documentation]  Verify if the BMC IIO-HWMON-DPS310 compatible property is
   ...  populated.
   [Tags]  Check_BMC_IIO-HWMON_Compatible_Property_Is_Set
   [Template]  Template Check Property

   #Property
   iio-hwmon-dps310/compatible


Check BMC LED Name Property Is Set
   [Documentation]  Verify if the BMC LED name property is populated.
   [Tags]  Check_BMC_LED_Name_Property_Is_Set
   [Template]  Template Check Property

   #Property
   leds/name


Check BMC LED Compatible Property Is Set
   [Documentation]  Verify if the BMC LED compatible property is populated.
   [Tags]  Check_BMC_LED_Compatible_Property_Is_Set
   [Template]  Template Check Property

   #Property
   leds/compatible


*** Keywords ***

Template Check Property
    [Documentation]  Check for the existence of a property in the device tree.
    [Arguments]  ${property}
    #property: Value of Property

    ${devicetree_path}=  Catenate  SEPARATOR=
    ...  ${devicetree_base}  ${property}
    ${output}  ${stderr}=  Execute Command  cat ${devicetree_path}
    ...  return_stderr=True
    Should Be Empty  ${stderr}
    ${length}=  Get Length  ${output}
    Should Be True  ${length} > 1

