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_base.robot b/pldm/test_pldm_base.robot
index d7f8dac..0d05182 100644
--- a/pldm/test_pldm_base.robot
+++ b/pldm/test_pldm_base.robot
@@ -10,7 +10,6 @@
*** Test Cases ***
-
Verify Get PLDM Types
[Documentation] Verify supported PLDM types.
[Tags] Verify_Get_PLDM_Types
@@ -53,3 +52,15 @@
${pldm_cmd}= Evaluate $CMD_GETPLDMVERSION % 'fru'
${pldm_output}= Pldmtool ${pldm_cmd}
Valid Value pldm_output['type_4(fru)'] ['${VERSION_FRU['STRING']}']
+
+Verify GetTID
+ [Documentation] Verify GetTID (Terminus ID) response message.
+ [Tags] Verify_GetTID
+
+ # Example output:
+ # TID : 1
+
+ ${pldm_output}= Pldmtool base GetTID
+ Rprint Vars pldm_output
+
+ Valid Dict pldm_output valid_values={'tid': ['1']}
diff --git a/pldm/test_pldm_bios.robot b/pldm/test_pldm_bios.robot
index 0413e16..ef02930 100644
--- a/pldm/test_pldm_bios.robot
+++ b/pldm/test_pldm_bios.robot
@@ -15,7 +15,6 @@
*** Test Cases ***
Verify GetDateTime
-
[Documentation] Verify host date & time.
[Tags] Verify_GetDateTime
@@ -33,7 +32,6 @@
Verify SetDateTime
-
[Documentation] Verify set date & time for the host.
[Tags] Verify_SetDateTime
@@ -58,10 +56,35 @@
${pldm_output}= Pldmtool ${cmd_set_time}
Valid Value pldm_output['setdatetime'] ['SUCCESS']
+
+Verify GetBIOSTable For StringTable
+ [Documentation] Verify GetBIOSTable for table type string table.
+ [Tags] Verify_GetBIOSTable_For_StringTable
+
+ # pldm_output:
+ # [biosstringhandle]: BIOSString
+ # [0]: Allowed
+ # [1]: Disabled
+ # [2]: Enabled
+ # [3]: Not Allowed
+ # [4]: Perm
+ # [5]: Temp
+ # [6]: pvm-fw-boot-side
+ # [7]: pvm-inband-code-update
+ # [8]: pvm-os-boot-side
+ # [9]: pvm-pcie-error-inject
+ # [10]: pvm-surveillance
+ # [11]: pvm-system-name
+ # [12]: vmi-if-count
+
+ ${pldm_output}= Pldmtool bios GetBIOSTable -t 0
+ Rprint Vars pldm_output
+ # TODO: Implement verification for GetBIOSTable response message.
+ # Valid Dict pldm_output valid_values=${RESPONSE_DICT_GETBIOSTABLE_STRTABLE}
+
*** Keywords ***
PLDM BIOS Suite Cleanup
-
[Documentation] Perform pldm BIOS suite cleanup.
${result}= Get Current Date UTC exclude_millis=True
diff --git a/pldm/test_pldm_fru.robot b/pldm/test_pldm_fru.robot
new file mode 100644
index 0000000..00a0fc3
--- /dev/null
+++ b/pldm/test_pldm_fru.robot
@@ -0,0 +1,28 @@
+*** 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 Cases ***
+
+Verify GetFruRecordTableMetadata
+ [Documentation] Verify get fru record table meta data reponse message.
+ [Tags] Verify_GetFruRecordTableMetadata
+
+ # pldm_output:
+ # [frutablelength]: 60
+ # [frudatamajorversion]: 1
+ # [total_number_of_record_set_identifiers_in_table]: 1
+ # [frudataminorversion]: 0
+ # [total_number_of_records_in_table]: 1
+ # [frutablemaximumsize]: 4294967295
+
+ ${pldm_output}= Pldmtool fru GetFruRecordTableMetadata
+ Rprint Vars pldm_output
+ Valid Dict pldm_output valid_values=${RESPONSE_DICT_GETFRURECORDTABLEMETADATA}
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']