1*** Settings ***
2
3Documentation    Module to test PLDM FRU (Field Replaceable Unit) commands.
4
5Library          ../lib/pldm_utils.py
6Variables        ../data/pldm_variables.py
7Resource         ../lib/openbmc_ffdc.robot
8
9Test Setup       Printn
10Test Teardown    FFDC On Test Case Fail
11
12Force Tags       Pldm_FRU
13
14*** Test Cases ***
15
16Verify GetFruRecordTableMetadata
17    [Documentation]  Verify get fru record table meta data response message.
18    [Tags]  Verify_GetFruRecordTableMetadata
19
20    # pldm_output:
21    # [frudatamajorversion]:                              1
22    # [frudataminorversion]:                              0
23    # [frutablemaximumsize]:                              4294967295
24    # [frutablelength]:                                   60
25    # [total_number_of_record_set_identifiers_in_table]:  1
26    # [total_number_of_records_in_table]:                 1
27
28    ${pldm_output}=  Pldmtool  fru GetFruRecordTableMetadata
29    Rprint Vars  pldm_output
30
31    Valid Value  pldm_output['FRUDATAMajorVersion']  [1]
32    Valid Value  pldm_output['FRUDATAMinorVersion']  [0]
33    Valid Value  pldm_output['FRUTableMaximumSize']  [4294967295]
34    Valid Range  pldm_output['FRUTableLength']  1
35    Valid Range  pldm_output['Total number of records in table']  1
36    Valid Range  pldm_output['Total number of Record Set Identifiers in table']  1
37
38Verify GetFruRecordTable
39    [Documentation]  Verify GetFruRecordTable response message.
40    [Tags]  Verify_GetFruRecordTable
41
42    ${pldm_output}=  Pldmtool  fru GetFruRecordTable
43    Should Not Be Empty  ${pldm_output}
44    #TODO: Verify the fru table content.
45
46Verify GetFRURecordByOption
47    [Documentation]  Verify GetFRURecordByOption response message for
48    ...              the available FRU record identifier.
49    [Tags]  Verify_GetFRURecordByOption
50
51    # pldm_output:
52    # [fru_record_set_identifier]:                    2
53    # [fru_record_type]:                              1(General)
54    # [number_of_fru_fields]:                         4
55    # [encoding_type_for_fru_fields]:                 1(ASCII)
56    # [     fru_field_type]:                              Name
57    # [     fru_field_length]:                            12
58    # [     fru_field_value]:                             BMC PLANAR
59
60    ${pldm_output}=  Pldmtool  fru GetFruRecordTableMetadata
61    ${fru_rec_id}=  Convert To Integer  ${pldm_output['Total number of Record Set Identifiers in table']}
62    FOR   ${i}  IN RANGE  ${fru_rec_id+1}
63       ${pldm_output}=  Run Keyword  Pldmtool  fru GetFRURecordByOption -i ${i} -r 0 -f 0
64       Run Keyword  Rprint Vars  pldm_output
65       Should Not Be Empty  ${pldm_output}
66    END
67