Add test to verify GetPLDMCommands for supported pldm types.
Change-Id: I43ebdf03d98f2322aa1fd71262c987d4e682c839
Signed-off-by: Sridevi Ramesh <sridevra@in.ibm.com>
diff --git a/data/pldm_variables.py b/data/pldm_variables.py
index 54eb8f8..482e2b8 100755
--- a/data/pldm_variables.py
+++ b/data/pldm_variables.py
@@ -18,69 +18,13 @@
VERSION_BIOS = {'VALUE': ['f1', 'f1', 'f1', '00'], 'STRING': '1.0.0'}
VERSION_FRU = {'VALUE': ['f1', 'f0', 'f0', '00'], 'STRING': '1.0.0'}
-# PLDM base related variables.
-PLDM_BASE_CMD = {
- 'GET_TID': '02',
- 'GET_PLDM_VERSION': '03',
- 'GET_PLDM_TYPES': '04',
- 'GET_PLDM_COMMANDS': '05'}
-# Response lengths are inclusive of completion code.
-GET_TID_RESP_BYTES = 2
-GET_PLDM_VERSION_RESP_BYTES = 10
-GET_PLDM_TYPES_RESP_BYTES = 9
-GET_PLDM_COMMANDS_RESP_BYTES = 33
-
-# PLDM bios related variables.
-PLDM_BIOS_CMD = {
- 'GET_BIOS_TABLE': '01',
- 'SET_BIOS_ATTRIBUTE_CURRENT_VALUE': '07',
- 'GET_BIOS_ATTRIBUTE_CURRENT_VALUE_BY_HANDLE': '08',
- 'GET_DATE_TIME': '0c'}
-
-PLDM_BIOS_TABLE_TYPES = {
- 'STRING_TABLE': '00',
- 'ATTRIBUTE_TABLE': '01',
- 'ATTRIBUTE_VAL_TABLE': '02'}
-
-TRANSFER_OPERATION_FLAG = {
- 'GETNEXTPART': '00',
- 'GETFIRSTPART': '01'}
-
-TRANSFER_RESP_FLAG = {
- 'PLDM_START': '01',
- 'PLDM_MIDDLE': '02',
- 'PLDM_END': '04',
- 'PLDM_START_AND_END': '05'}
-
-# PLDM platform related variables.
-PLDM_PLATFORM_CMD = {
- 'SET_STATE_EFFECTER_STATES': '39',
- 'GET_PDR': '51'}
-
-PLDM_PDR_TYPES = {
- 'STATE_EFFECTER_PDR': '11'}
-
-# PLDM OEM related variables.
-PLDM_FILEIO_CMD = {
- 'GET_FILE_TABLE': '1',
- 'READ_FILE': '4',
- 'WRITE_FILE': '5',
- 'READ_FILE_INTO_MEMORY': '6',
- 'WRITE_FILE_FROM_MEMORY': '7'}
-
-PLDM_FILEIO_COMPLETION_CODES = {
- 'INVALID_FILE_HANDLE': '80',
- 'DATA_OUT_OF_RANGE': '81',
- 'INVALID_READ_LENGTH': '82',
- 'INVALID_WRITE_LENGTH': '83',
- 'FILE_TABLE_UNAVAILABLE': '84',
- 'INVALID_FILE_TABLE_TYPE': '85'}
-
-# PLDM FRU related variables.
-PLDM_FRU_CMD = {
- 'PLDM_GET_FRU_RECORD_TABLE_METADATA': '01',
- 'PLDM_GET_FRU_RECORD_TABLE': '02'}
+PLDM_BASE_CMDS = ['2(GetTID)', '3(GetPLDMVersion)', '4(GetPLDMTypes)', '5(GetPLDMCommands)']
+PLDM_PLATFORM_CMDS = ['57(SetStateEffecterStates)', '81(GetPDR)']
+PLDM_BIOS_CMDS = ['1(GetBIOSTable)', '7(SetBIOSAttributeCurrentValue)',
+ '8(GetBIOSAttributeCurrentValueByHandle)', '12(GetDateTime)',
+ '13(SetDateTime)']
+PLDM_FRU_CMDS = ['1(GetFRURecordTableMetadata)', '2(GetFRURecordTable)']
# PLDM command format.
diff --git a/lib/pldm_utils.py b/lib/pldm_utils.py
index 81fbbf0..13005b3 100644
--- a/lib/pldm_utils.py
+++ b/lib/pldm_utils.py
@@ -56,6 +56,10 @@
supported_types['text'].append(record[1].rstrip(")"))
result['supported_types'] = supported_types
+ elif 'supported_commands' in result:
+ commands = result['supported_commands'].split(":")[0].split(" ")
+ return commands
+
elif 'yyyy-mm-dd_hh' in result:
# Date & Time :
# YYYY-MM-DD HH:MM:SS - 2020-02-24 06:44:16
diff --git a/pldm/test_pldm_base.robot b/pldm/test_pldm_base.robot
index 0d05182..70929f4 100644
--- a/pldm/test_pldm_base.robot
+++ b/pldm/test_pldm_base.robot
@@ -10,6 +10,7 @@
*** Test Cases ***
+
Verify Get PLDM Types
[Documentation] Verify supported PLDM types.
[Tags] Verify_Get_PLDM_Types
@@ -64,3 +65,33 @@
Rprint Vars pldm_output
Valid Dict pldm_output valid_values={'tid': ['1']}
+
+Verify GetPLDMCommands
+ [Documentation] Verify GetPLDMCommands response message.
+ [Tags] Verify_GetPLDMCommands
+ [Template] Verify GetPLDMCommands For PLDM Type
+
+ # pldm_type # expected_pldm_cmds
+
+ '0' ${PLDM_BASE_CMDS}
+ '2' ${PLDM_PLATFORM_CMDS}
+ '3' ${PLDM_BIOS_CMDS}
+ '4' ${PLDM_FRU_CMDS}
+
+*** keywords ***
+
+Verify GetPLDMCommands For PLDM Type
+ [Documentation] Verify GetPLDMCommands for given input pldm type with expected pldm cmds.
+ [Arguments] ${pldm_type} ${expected_pldm_cmds}
+
+ # Description of argument(s):
+ # pldm_type pldm type (e.g. '0', '2', '3', '4').
+ # '0' -> base, '2' -> platform, '3' -> 'bios', '4' -> 'fru'.
+ # expected_pldm_cmds expected pldm commands for given pldm type.
+
+ # Example output:
+ # Supported Commands : 2(GetTID) 3(GetPLDMVersion) 4(GetPLDMTypes) 5(GetPLDMCommands)
+
+ ${pldm_output}= Pldmtool base GetPLDMCommands -t ${pldm_type}
+ Rprint Vars pldm_output
+ Valid List pldm_output ${expected_pldm_cmds}