| Sridevi Ramesh | fe52e40 | 2020-02-05 00:15:24 -0600 | [diff] [blame] | 1 | *** Settings *** | 
|  | 2 |  | 
|  | 3 | Documentation    Module to test PLDM platform commands. | 
|  | 4 |  | 
| Sridevi Ramesh | fc3b07f | 2020-02-27 04:22:24 -0600 | [diff] [blame] | 5 | Library           ../lib/pldm_utils.py | 
|  | 6 | Variables         ../data/pldm_variables.py | 
|  | 7 | Resource          ../lib/openbmc_ffdc.robot | 
|  | 8 | Resource          ../lib/bmc_redfish_resource.robot | 
|  | 9 | Resource          ../lib/boot_utils.robot | 
| Sridevi Ramesh | fe52e40 | 2020-02-05 00:15:24 -0600 | [diff] [blame] | 10 |  | 
| Sridevi Ramesh | fc3b07f | 2020-02-27 04:22:24 -0600 | [diff] [blame] | 11 | Test Setup        Printn | 
|  | 12 | Test Teardown     FFDC On Test Case Fail | 
|  | 13 | Suite Teardown    Pldmtool Platform Suite Cleanup | 
| Sridevi Ramesh | fe52e40 | 2020-02-05 00:15:24 -0600 | [diff] [blame] | 14 |  | 
|  | 15 | *** Test Cases *** | 
| Sridevi Ramesh | fe52e40 | 2020-02-05 00:15:24 -0600 | [diff] [blame] | 16 | Verify GetPDR | 
|  | 17 | [Documentation]  Verify GetPDR (Platform Descpritor Record) response message. | 
|  | 18 | [Tags]  Verify_GetPDR | 
| Sridevi Ramesh | fe52e40 | 2020-02-05 00:15:24 -0600 | [diff] [blame] | 19 |  | 
| Sridevi Ramesh | 538d18d | 2020-03-30 11:45:42 -0500 | [diff] [blame] | 20 | ${record_handle}=  Set Variable  ${1} | 
|  | 21 | # Note: Record handle count is unknown and it is dynamic in nature. | 
|  | 22 | #       Assuming there are 100 record handle. | 
|  | 23 | FOR   ${i}  IN RANGE  100 | 
|  | 24 | ${next_record_handle}=  Run Keyword  Verify GetPDR For Record Handle  ${record_handle} | 
|  | 25 | Exit For Loop If  ${next_record_handle} == 0 | 
|  | 26 | ${record_handle}=  Set Variable  ${next_record_handle} | 
|  | 27 | END | 
| Sridevi Ramesh | fe52e40 | 2020-02-05 00:15:24 -0600 | [diff] [blame] | 28 |  | 
|  | 29 | Verify SetStateEffecterStates | 
|  | 30 | [Documentation]  Verify set state effecter states response message. | 
|  | 31 | [Tags]  Verify_SetStateEffecterStates | 
|  | 32 | [Template]  Verify SetStateEffecterStates For Effecter States | 
|  | 33 |  | 
| Sridevi Ramesh | ca3223a | 2020-03-11 03:58:58 -0500 | [diff] [blame] | 34 | # EffecterHandle  Count  EffecterStates (effecterID effecterState) | 
|  | 35 |  | 
| Sridevi Ramesh | 538d18d | 2020-03-30 11:45:42 -0500 | [diff] [blame] | 36 | '1'              '1'    '1 1'  # (effecterState -> 1 -> 'Boot Not Active') | 
|  | 37 | '1'              '1'    '1 2'  # (effecterState -> 2 -> 'Boot Completed') | 
|  | 38 | '2'              '1'    '1 9'  # (effecterState -> 9 -> 'System Power is in soft off mode') | 
|  | 39 | '3'              '1'    '1 6'  # (effecterState -> 6 -> 'Graceful Restart Requested') | 
| Sridevi Ramesh | fe52e40 | 2020-02-05 00:15:24 -0600 | [diff] [blame] | 40 |  | 
|  | 41 | *** Keywords *** | 
|  | 42 |  | 
|  | 43 | Verify GetPDR For Record Handle | 
| Sridevi Ramesh | 538d18d | 2020-03-30 11:45:42 -0500 | [diff] [blame] | 44 | [Documentation]  Verify GetPDR (Platform Descpritor Record) for given input | 
|  | 45 | ...              record handle and return next record handle. | 
| Sridevi Ramesh | fe52e40 | 2020-02-05 00:15:24 -0600 | [diff] [blame] | 46 | [Arguments]  ${record_handle} | 
|  | 47 |  | 
|  | 48 | # Description of argument(s): | 
| Sridevi Ramesh | ca3223a | 2020-03-11 03:58:58 -0500 | [diff] [blame] | 49 | # ${record_handle}  Record handle. | 
| Sridevi Ramesh | 538d18d | 2020-03-30 11:45:42 -0500 | [diff] [blame] | 50 | #                   e.g. '1' is record handle 'Boot Progress' (196). | 
|  | 51 | #                        '2' is record handle 'System Power State (260)'. | 
|  | 52 | #                        '3' is record handle 'Software Termination Status (129)'. | 
| Sridevi Ramesh | fe52e40 | 2020-02-05 00:15:24 -0600 | [diff] [blame] | 53 |  | 
|  | 54 | # pldm_output: | 
|  | 55 | # [responseCount]:                               29 | 
|  | 56 | # [recordHandle]:                                1 | 
|  | 57 | # [PDRHeaderVersion]:                            1 | 
|  | 58 | # [PDRType]:                                     11 | 
|  | 59 | # [recordChangeNumber]:                          0 | 
|  | 60 | # [dataLength]:                                  19 | 
|  | 61 | # [PLDMTerminusHandle]:                          0 | 
|  | 62 | # [effecterID]:                                  1 | 
|  | 63 | # [entityType]:                                  33 | 
|  | 64 | # [entityInstanceNumber]:                        0 | 
|  | 65 | # [containerID]:                                 0 | 
|  | 66 | # [effecterSemanticID]:                          0 | 
|  | 67 | # [effecterInit]:                                0 | 
|  | 68 | # [effecterDescriptionPDR]:                      false | 
|  | 69 | # [compositeEffecterCount]:                      1 | 
|  | 70 | # [stateSetID]:                                  196 | 
|  | 71 | # [possibleStatesSize]:                          1 | 
|  | 72 | # [possibleStates]:                              6 | 
|  | 73 |  | 
|  | 74 | ${pldm_cmd}=  Evaluate  $CMD_GETPDR % ${record_handle} | 
|  | 75 | ${pldm_output}=  Pldmtool  ${pldm_cmd} | 
|  | 76 | Rprint Vars  pldm_output | 
| Sridevi Ramesh | da95c47 | 2020-07-28 06:51:48 -0500 | [diff] [blame] | 77 |  | 
| Sridevi Ramesh | 961050b | 2020-11-12 11:04:30 -0600 | [diff] [blame] | 78 | Run Keyword If  '${pldm_output['PDRType']}' == '${PLDM_PDR_TYPES['PLDM_STATE_EFFECTER_PDR']}' | 
|  | 79 | ...  Valid Dict  pldm_output  valid_values=${RESPONSE_DICT_GETPDR_SETSTATEEFFECTER} | 
| Sridevi Ramesh | da95c47 | 2020-07-28 06:51:48 -0500 | [diff] [blame] | 80 |  | 
| Sridevi Ramesh | 961050b | 2020-11-12 11:04:30 -0600 | [diff] [blame] | 81 | ...  ELSE IF  '${pldm_output['PDRType']}' == '${PLDM_PDR_TYPES['PLDM_PDR_FRU_RECORD_SET']}' | 
| Sridevi Ramesh | 538d18d | 2020-03-30 11:45:42 -0500 | [diff] [blame] | 82 | ...  Valid Dict  pldm_output  valid_values=${RESPONSE_DICT_GETPDR_FRURECORDSETIDENTIFIER} | 
| Sridevi Ramesh | dfc7fcb | 2020-07-23 03:03:57 -0500 | [diff] [blame] | 83 |  | 
| Sridevi Ramesh | 961050b | 2020-11-12 11:04:30 -0600 | [diff] [blame] | 84 | ...  ELSE IF  '${pldm_output['PDRType']}' == '${PLDM_PDR_TYPES['PLDM_PDR_ENTITY_ASSOCIATION']}' | 
|  | 85 | ...  Log To Console  "Found PDR Type - PLDM_ENTITY_ASSOCIATION_PDR" | 
| Sridevi Ramesh | dfc7fcb | 2020-07-23 03:03:57 -0500 | [diff] [blame] | 86 |  | 
| Sridevi Ramesh | 961050b | 2020-11-12 11:04:30 -0600 | [diff] [blame] | 87 | ...  ELSE IF  '${pldm_output['PDRType']}' == '${PLDM_PDR_TYPES['PLDM_STATE_SENSOR_PDR']}' | 
| Sridevi Ramesh | da95c47 | 2020-07-28 06:51:48 -0500 | [diff] [blame] | 88 | ...  Valid Dict  pldm_output  valid_values=${RESPONSE_DICT_GETPDR_STATESENSORPDR} | 
| Sridevi Ramesh | dfc7fcb | 2020-07-23 03:03:57 -0500 | [diff] [blame] | 89 |  | 
| Sridevi Ramesh | 961050b | 2020-11-12 11:04:30 -0600 | [diff] [blame] | 90 | ...  ELSE IF  '${pldm_output['PDRType']}' == '${PLDM_PDR_TYPES['PLDM_NUMERIC_EFFECTER_PDR']}' | 
|  | 91 | ...  Valid Dict  pldm_output  valid_values=${RESPONSE_DICT_GETPDR_NUMERICEFFECTERPDR} | 
| Sridevi Ramesh | dfc7fcb | 2020-07-23 03:03:57 -0500 | [diff] [blame] | 92 |  | 
| Sridevi Ramesh | 961050b | 2020-11-12 11:04:30 -0600 | [diff] [blame] | 93 | ...  ELSE IF  '${pldm_output['PDRType']}' == '${PLDM_PDR_TYPES['PLDM_TERMINUS_LOCATOR_PDR']}' | 
|  | 94 | ...  Valid Dict  pldm_output  valid_values=${RESPONSE_DICT_GETPDR_TERMINUSLOCATORPDR} | 
|  | 95 |  | 
|  | 96 | ...  ELSE IF  '${pldm_output['PDRType']}' == '${PLDM_PDR_TYPES['PLDM_COMPACT_NUMERIC_SENSOR_PDR']}' | 
|  | 97 | ...  Log To Console  "Found PDR Type - PLDM_COMPACT_NUMERIC_SENSOR_PDR' | 
| Sridevi Ramesh | dfc7fcb | 2020-07-23 03:03:57 -0500 | [diff] [blame] | 98 |  | 
| Sridevi Ramesh | da95c47 | 2020-07-28 06:51:48 -0500 | [diff] [blame] | 99 | ...  ELSE  Fail  msg="Unknown PDR Type is received" | 
| Sridevi Ramesh | fe52e40 | 2020-02-05 00:15:24 -0600 | [diff] [blame] | 100 |  | 
| Sridevi Ramesh | 961050b | 2020-11-12 11:04:30 -0600 | [diff] [blame] | 101 | Should be equal as strings  ${pldm_output['recordHandle']}  ${record_handle} | 
|  | 102 | [Return]  ${pldm_output['nextRecordHandle']} | 
| Sridevi Ramesh | fe52e40 | 2020-02-05 00:15:24 -0600 | [diff] [blame] | 103 |  | 
|  | 104 | Verify SetStateEffecterStates For Effecter States | 
|  | 105 | [Documentation]  Verify set state effecter states for given input effecter states. | 
| Sridevi Ramesh | ca3223a | 2020-03-11 03:58:58 -0500 | [diff] [blame] | 106 | [Arguments]  ${effecter_handle}  ${count}  ${effecter_states} | 
| Sridevi Ramesh | fe52e40 | 2020-02-05 00:15:24 -0600 | [diff] [blame] | 107 |  | 
|  | 108 | # Description of argument(s): | 
| Sridevi Ramesh | ca3223a | 2020-03-11 03:58:58 -0500 | [diff] [blame] | 109 | # ${effecter_handle}   A handle that is used to identify and access the effecter (e.g. '1'). | 
|  | 110 | #                      e.g. '1' is effecter handle 'Boot Progress'. | 
|  | 111 | #                           '2' is effecter handle 'System Power State'. | 
|  | 112 | # ${count}             The number of individual sets of effecter information (e.g. '1'). | 
|  | 113 | # ${effecter_states}   (effecterID effecterState). | 
|  | 114 | #                      e.g. '1 1'. | 
| Sridevi Ramesh | fe52e40 | 2020-02-05 00:15:24 -0600 | [diff] [blame] | 115 |  | 
|  | 116 | # Example output: | 
| Sridevi Ramesh | 961050b | 2020-11-12 11:04:30 -0600 | [diff] [blame] | 117 | # { | 
|  | 118 | #     "Response": "SUCCESS" | 
|  | 119 | # } | 
| Sridevi Ramesh | fe52e40 | 2020-02-05 00:15:24 -0600 | [diff] [blame] | 120 |  | 
| Sridevi Ramesh | ca3223a | 2020-03-11 03:58:58 -0500 | [diff] [blame] | 121 | ${pldm_cmd}=  Evaluate  $CMD_SETSTATEEFFECTERSTATES % (${effecter_handle}, ${count}, ${effecter_states}) | 
| Sridevi Ramesh | fe52e40 | 2020-02-05 00:15:24 -0600 | [diff] [blame] | 122 | ${pldm_output}=  Pldmtool  ${pldm_cmd} | 
|  | 123 | Rprint Vars  pldm_output | 
| Sridevi Ramesh | 961050b | 2020-11-12 11:04:30 -0600 | [diff] [blame] | 124 | Valid Value  pldm_output['Response']  ['SUCCESS'] | 
| Sridevi Ramesh | fc3b07f | 2020-02-27 04:22:24 -0600 | [diff] [blame] | 125 |  | 
| Sridevi Ramesh | fc3b07f | 2020-02-27 04:22:24 -0600 | [diff] [blame] | 126 | Pldmtool Platform Suite Cleanup | 
|  | 127 | [Documentation]    Reset BMC at suite cleanup. | 
|  | 128 |  | 
| George Keishing | 64fdf62 | 2020-06-18 02:49:38 -0500 | [diff] [blame] | 129 | Redfish.Login | 
| Sridevi Ramesh | 88f2172 | 2020-04-16 05:54:02 -0500 | [diff] [blame] | 130 | Redfish Hard Power Off | 
| Sridevi Ramesh | 072d5af | 2020-06-02 09:20:57 -0500 | [diff] [blame] | 131 | Redfish Power On | 
| George Keishing | 64fdf62 | 2020-06-18 02:49:38 -0500 | [diff] [blame] | 132 | Redfish.Logout |