PLDM: Automate Test Scenarios for pldm commands

 - Verify GetPDR
 - Verify SetStateEffecterStates
 - Verify GetTID
 - Verify GetBIOSTable For StringTable
 - Verify GetFruRecordTableMetadata

Note: Ouput for GetBIOSTable type stringtable is dynamic
      will submit the verification part in the next commit.

Change-Id: I422c2df4485ac25d6ff4183bd51b5ddc6c3bf3cc
Signed-off-by: Sridevi Ramesh <sridevra@in.ibm.com>
Signed-off-by: George Keishing <gkeishin@in.ibm.com>
diff --git a/pldm/test_pldm_platform.robot b/pldm/test_pldm_platform.robot
new file mode 100644
index 0000000..c85b847
--- /dev/null
+++ b/pldm/test_pldm_platform.robot
@@ -0,0 +1,83 @@
+*** Settings ***
+
+Documentation    Module to test PLDM platform 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 Cases ***
+
+Verify GetPDR
+    [Documentation]  Verify GetPDR (Platform Descpritor Record) response message.
+    [Tags]  Verify_GetPDR
+    [Template]  Verify GetPDR For Record Handle
+
+    # RecordHandle
+    '0'
+    '1'
+    '2'
+
+
+Verify SetStateEffecterStates
+    [Documentation]  Verify set state effecter states response message.
+    [Tags]  Verify_SetStateEffecterStates
+    [Template]  Verify SetStateEffecterStates For Effecter States
+
+    # EffecterStates (effecterID requestSet effecterState)
+    '1 1 1'
+    '1 1 2'
+
+*** Keywords ***
+
+Verify GetPDR For Record Handle
+    [Documentation]  Verify GetPDR (Platform Descpritor Record) for given input record handle.
+    [Arguments]  ${record_handle}
+
+    # Description of argument(s):
+    # ${record_handle}  Record handle (e.g. '1').
+
+    # pldm_output:
+    # [responseCount]:                               29
+    # [recordHandle]:                                1
+    # [PDRHeaderVersion]:                            1
+    # [PDRType]:                                     11
+    # [recordChangeNumber]:                          0
+    # [dataLength]:                                  19
+    # [PLDMTerminusHandle]:                          0
+    # [effecterID]:                                  1
+    # [entityType]:                                  33
+    # [entityInstanceNumber]:                        0
+    # [containerID]:                                 0
+    # [effecterSemanticID]:                          0
+    # [effecterInit]:                                0
+    # [effecterDescriptionPDR]:                      false
+    # [compositeEffecterCount]:                      1
+    # [stateSetID]:                                  196
+    # [possibleStatesSize]:                          1
+    # [possibleStates]:                              6
+
+    ${pldm_cmd}=  Evaluate  $CMD_GETPDR % ${record_handle}
+    ${pldm_output}=  Pldmtool  ${pldm_cmd}
+    Rprint Vars  pldm_output
+    Valid Dict  pldm_output  valid_values=${RESPONSE_DICT_GETPDR}
+
+
+Verify SetStateEffecterStates For Effecter States
+    [Documentation]  Verify set state effecter states for given input effecter states.
+    [Arguments]  ${effecter_states}
+
+    # Description of argument(s):
+    # ${effecter_states}   (effecterID requestSet effecterState).
+    #                      e.g. '1 1 1'.
+
+    # Example output:
+    # SetStateEffecterStates ]: SUCCESS
+
+    ${pldm_cmd}=  Evaluate  $CMD_SETSTATEEFFECTERSTATES % ${effecter_states}
+    ${pldm_output}=  Pldmtool  ${pldm_cmd}
+    Rprint Vars  pldm_output
+    Valid Value  pldm_output['setstateeffecterstates']  ['SUCCESS']