|  | *** Settings *** | 
|  |  | 
|  | Documentation    Module to test PLDM FRU (Field Replaceable Unit) commands. | 
|  |  | 
|  | Library          ../lib/pldm_utils.py | 
|  | Variables        ../data/pldm_variables.py | 
|  | Resource         ../lib/openbmc_ffdc.robot | 
|  |  | 
|  | Test Setup       Printn | 
|  | Test Teardown    FFDC On Test Case Fail | 
|  |  | 
|  | Test Tags       Pldm_FRU | 
|  |  | 
|  | *** Test Cases *** | 
|  |  | 
|  | Verify GetFruRecordTableMetadata | 
|  | [Documentation]  Verify get fru record table meta data response message. | 
|  | [Tags]  Verify_GetFruRecordTableMetadata | 
|  |  | 
|  | # pldm_output: | 
|  | # [frudatamajorversion]:                              1 | 
|  | # [frudataminorversion]:                              0 | 
|  | # [frutablemaximumsize]:                              4294967295 | 
|  | # [frutablelength]:                                   60 | 
|  | # [total_number_of_record_set_identifiers_in_table]:  1 | 
|  | # [total_number_of_records_in_table]:                 1 | 
|  |  | 
|  | ${pldm_output}=  Pldmtool  fru GetFruRecordTableMetadata | 
|  | Rprint Vars  pldm_output | 
|  |  | 
|  | Valid Value  pldm_output['FRUDATAMajorVersion']  [1] | 
|  | Valid Value  pldm_output['FRUDATAMinorVersion']  [0] | 
|  | Valid Value  pldm_output['FRUTableMaximumSize']  [4294967295] | 
|  | Valid Range  pldm_output['FRUTableLength']  1 | 
|  | Valid Range  pldm_output['Total number of records in table']  1 | 
|  | Valid Range  pldm_output['Total number of Record Set Identifiers in table']  1 | 
|  |  | 
|  | Verify GetFruRecordTable | 
|  | [Documentation]  Verify GetFruRecordTable response message. | 
|  | [Tags]  Verify_GetFruRecordTable | 
|  |  | 
|  | ${pldm_output}=  Pldmtool  fru GetFruRecordTable | 
|  | Should Not Be Empty  ${pldm_output} | 
|  | #TODO: Verify the fru table content. | 
|  |  | 
|  | Verify GetFRURecordByOption | 
|  | [Documentation]  Verify GetFRURecordByOption response message for | 
|  | ...              the available FRU record identifier. | 
|  | [Tags]  Verify_GetFRURecordByOption | 
|  |  | 
|  | # pldm_output: | 
|  | # [fru_record_set_identifier]:                    2 | 
|  | # [fru_record_type]:                              1(General) | 
|  | # [number_of_fru_fields]:                         4 | 
|  | # [encoding_type_for_fru_fields]:                 1(ASCII) | 
|  | # [     fru_field_type]:                              Name | 
|  | # [     fru_field_length]:                            12 | 
|  | # [     fru_field_value]:                             BMC PLANAR | 
|  |  | 
|  | ${pldm_output}=  Pldmtool  fru GetFruRecordTableMetadata | 
|  | ${fru_rec_id}=  Convert To Integer  ${pldm_output['Total number of Record Set Identifiers in table']} | 
|  | FOR   ${i}  IN RANGE  ${fru_rec_id+1} | 
|  | ${pldm_output}=  Run Keyword  Pldmtool  fru GetFRURecordByOption -i ${i} -r 0 -f 0 | 
|  | Run Keyword  Rprint Vars  pldm_output | 
|  | Should Not Be Empty  ${pldm_output} | 
|  | END |