|  | *** Settings *** | 
|  | Documentation       This suite is for Verifying BMC device tree. | 
|  |  | 
|  | Resource            ../lib/openbmc_ffdc.robot | 
|  | Resource            ../lib/ipmi_client.robot | 
|  | Library             String | 
|  |  | 
|  | Test Setup          Open Connection And Log In | 
|  | Test Teardown       Post Test Case Execution | 
|  |  | 
|  | *** Variables *** | 
|  | ${devicetree_base}  /sys/firmware/devicetree/base/ | 
|  |  | 
|  | *** Test Cases *** | 
|  | Check BMC Model Property Is Set | 
|  | #Property | 
|  | model | 
|  | [Documentation]  Verify if the BMC Model is populated in the device tree. | 
|  | [Tags]  Check_BMC_Model_Property_Is_Set | 
|  | [Template]  Template Check Property | 
|  |  | 
|  | Check BMC Name Property Is Set | 
|  | #Property | 
|  | name | 
|  | [Documentation]  Verify if the BMC name property is populated. | 
|  | [Tags]  Check_BMC_Name_Property_Is_Set | 
|  | [Template]  Template Check Property | 
|  |  | 
|  | Check BMC Compatible Property Is Set | 
|  | #Property | 
|  | compatible | 
|  | [Documentation]  Verify if the BMC compatible property is populated. | 
|  | [Tags]  Check_BMC_Compatible_Property_Is_Set | 
|  | [Template]  Template Check Property | 
|  |  | 
|  | Check BMC CPU Name Property Is Set | 
|  | #Property | 
|  | cpus/name | 
|  | [Documentation]  Verify if the BMC CPU name property is populated. | 
|  | [Tags]  Check_BMC_CPU_Name_Property_Is_Set | 
|  | [Template]  Template Check Property | 
|  |  | 
|  | Check BMC CPU Compatible Property Is Set | 
|  | #Property | 
|  | cpus/cpu@0/compatible | 
|  | [Documentation]  Verify if the BMC CPU compatible property is populated. | 
|  | [Tags]  Check_BMC_CPU_Compatible_Property_Is_Set | 
|  | [Template]  Template Check Property | 
|  |  | 
|  | Check BMC Memory Name Property Is Set | 
|  | #Property | 
|  | memory/name | 
|  | [Documentation]  Verify if the BMC Memory name property is populated. | 
|  | [Tags]  Check_BMC_Memory_Name_Property_Is_Set | 
|  | [Template]  Template Check Property | 
|  |  | 
|  | Check BMC Memory Device Type Property Is Set | 
|  | #Property | 
|  | memory/device_type | 
|  | [Documentation]  Verify if the BMC Memory Device Type property is | 
|  | ...  populated. | 
|  | [Tags]  Check_BMC_Memory_Device_Type_Property_Is_Set | 
|  | [Template]  Template Check Property | 
|  |  | 
|  | Check BMC FSI Name Property Is Set | 
|  | #Property | 
|  | fsi-master/name | 
|  | [Documentation]  Verify if the BMC FSI name property is populated. | 
|  | [Tags]  Check_BMC_FSI_Name_Property_Is_Set | 
|  | [Template]  Template Check Property | 
|  |  | 
|  | Check BMC FSI Compatible Property Is Set | 
|  | #Property | 
|  | fsi-master/compatible | 
|  | [Documentation]  Verify if the BMC FSI compatible property is populated. | 
|  | [Tags]  Check_BMC_FSI_Compatible_Property_Is_Set | 
|  | [Template]  Template Check Property | 
|  |  | 
|  | Check BMC GPIO-FSI Name Property Is Set | 
|  | #Property | 
|  | gpio-fsi/name | 
|  | [Documentation]  Verify if the BMC GPIO-FSI name property is populated. | 
|  | [Tags]  Check_BMC_GPIO_FSI_Name_Property_Is_Set | 
|  | [Template]  Template Check Property | 
|  |  | 
|  | Check BMC GPIO-FSI Compatible Property Is Set | 
|  | #Property | 
|  | gpio-fsi/compatible | 
|  | [Documentation]  Verify if the BMC GPIO-FSI compatible property is populated. | 
|  | [Tags]  Check_BMC_GPIO_FSI_Compatible_Property_Is_Set | 
|  | [Template]  Template Check Property | 
|  |  | 
|  | Check BMC GPIO-keys Name Property Is Set | 
|  | #Property | 
|  | gpio-keys/name | 
|  | [Documentation]  Verify if the BMC GPIO-keys name property is | 
|  | ...  populated. | 
|  | [Tags]  Check_BMC_GPIO_keys_Name_Property_Is_Set | 
|  | [Template]  Template Check Property | 
|  |  | 
|  | Check BMC GPIO-keys Compatible Property Is Set | 
|  | #Property | 
|  | gpio-keys/compatible | 
|  | [Documentation]  Verify if the BMC GPIO-keys compatible property is | 
|  | ...  populated. | 
|  | [Tags]  Check_BMC_GPIO_keys_Compatible_Property_Is_Set | 
|  | [Template]  Template Check Property | 
|  |  | 
|  | Check BMC IIO-HWMON Name Property Is Set | 
|  | #Property | 
|  | iio-hwmon-dps310/name | 
|  | [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 | 
|  |  | 
|  | Check BMC IIO-HWMON Compatible Property Is Set | 
|  | #Property | 
|  | iio-hwmon-dps310/compatible | 
|  | [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 | 
|  |  | 
|  | Check BMC LED Name Property Is Set | 
|  | #Property | 
|  | leds/name | 
|  | [Documentation]  Verify if the BMC LED name property is populated. | 
|  | [Tags]  Check_BMC_LED_Name_Property_Is_Set | 
|  | [Template]  Template Check Property | 
|  |  | 
|  | Check BMC LED Compatible Property Is Set | 
|  | #Property | 
|  | leds/compatible | 
|  | [Documentation]  Verify if the BMC LED compatible property is populated. | 
|  | [Tags]  Check_BMC_LED_Compatible_Property_Is_Set | 
|  | [Template]  Template Check Property | 
|  |  | 
|  | Check BMC Clocks Name Property Is Set | 
|  | #Property | 
|  | clocks/name | 
|  | [Documentation]  Verify if the BMC clocks name property is populated. | 
|  | [Tags]  Check_BMC_Clocks_Name_Property_Is_Set | 
|  | [Template]  Template Check Property | 
|  |  | 
|  | Check BMC Clocks Compatible Property Is Set | 
|  | #Property | 
|  | clocks/clk_clkin/compatible | 
|  | [Documentation]  Verify if the BMC clocks compatible property is populated. | 
|  | [Tags]  Check_BMC_Clocks_Compatible_Property_Is_Set | 
|  | [Template]  Template Check Property | 
|  |  | 
|  | *** 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 | 
|  |  | 
|  | Post Test Case Execution | 
|  | [Documentation]  Do the post test teardown. | 
|  | ...  1. Capture FFDC on test failure. | 
|  | ...  2. Close all open SSH connections. | 
|  |  | 
|  | FFDC On Test Case Fail | 
|  | Close All Connections |