@@ -1269,6 +1269,14 @@ async def test_get_message_types(dbus, mctpd, routed_ep):
12691269 mctp = await mctpd_mctp_base_iface_obj (dbus )
12701270 await mctp .call_register_type_support (5 , [0xF1F2F3F4 ])
12711271
1272+ # Verify invalid msg type causes error
1273+ with pytest .raises (asyncdbus .errors .DBusError ) as ex :
1274+ await mctp .call_register_type_support (0x0 , [0xF1F2F3F4 ])
1275+ assert str (ex .value ) == "Invalid message type 0"
1276+ with pytest .raises (asyncdbus .errors .DBusError ) as ex :
1277+ await mctp .call_register_type_support (0x7e , [0xF1F2F3F4 ])
1278+ assert str (ex .value ) == "Invalid message type 126"
1279+
12721280 # Verify get message type response includes spdm
12731281 cmd = MCTPControlCommand (True , 0 , 0x05 , bytes ([0x00 ]))
12741282 rsp = await ep .send_control (mctpd .network .mctp_socket , cmd )
@@ -1333,14 +1341,24 @@ async def test_register_vdm_type_support_dbus_disconnect(mctpd, routed_ep):
13331341 async with asyncdbus .MessageBus ().connect () as temp_bus :
13341342 mctp = await mctpd_mctp_base_iface_obj (temp_bus )
13351343
1336- # Register PCIe VDM: format=0x00, VID=0xABCD, command_set=0x0001
1344+ # Register PCIe VDM: format=0x00, VID=0xABCD, command_set=1 and 2
13371345 v_type = asyncdbus .Variant ('q' , 0xABCD )
13381346 await mctp .call_register_vdm_type_support (0x00 , v_type , 0x0001 )
1347+ await mctp .call_register_vdm_type_support (0x00 , v_type , 0x0002 )
13391348
13401349 # Verify PCIe VDM (selector 0)
13411350 cmd = MCTPControlCommand (True , 0 , 0x06 , bytes ([0x00 ]))
13421351 rsp = await ep .send_control (mctpd .network .mctp_socket , cmd )
1343- assert rsp .hex (' ' ) == '00 06 00 ff 00 ab cd 00 01'
1352+ assert rsp .hex (' ' ) == '00 06 00 01 00 ab cd 00 01'
1353+ # Verify PCIe VDM (selector 1)
1354+ cmd = MCTPControlCommand (True , 0 , 0x06 , bytes ([0x01 ]))
1355+ rsp = await ep .send_control (mctpd .network .mctp_socket , cmd )
1356+ assert rsp .hex (' ' ) == '00 06 00 ff 00 ab cd 00 02'
1357+
1358+ # Verify GetMsgType includes VDM
1359+ cmd = MCTPControlCommand (True , 0 , 0x05 )
1360+ rsp = await ep .send_control (mctpd .network .mctp_socket , cmd )
1361+ assert rsp .hex (' ' ) == '00 05 00 02 00 7e'
13441362
13451363 # Give mctpd a moment to process the disconnection
13461364 await trio .sleep (0.1 )
@@ -1350,6 +1368,11 @@ async def test_register_vdm_type_support_dbus_disconnect(mctpd, routed_ep):
13501368 rsp = await ep .send_control (mctpd .network .mctp_socket , cmd )
13511369 assert rsp .hex (' ' ) == '00 06 02' # Should be error again
13521370
1371+ # Verify GetMsgType has only control command
1372+ cmd = MCTPControlCommand (True , 0 , 0x05 )
1373+ rsp = await ep .send_control (mctpd .network .mctp_socket , cmd )
1374+ assert rsp .hex (' ' ) == '00 05 00 01 00'
1375+
13531376""" Test RegisterVDMTypeSupport error handling """
13541377async def test_register_vdm_type_support_errors (dbus , mctpd ):
13551378 mctp = await mctpd_mctp_base_iface_obj (dbus )
0 commit comments