@@ -2670,6 +2670,33 @@ def testBindBrEdrL2capSocket(self):
26702670 addr = f .getsockname ()
26712671 self .assertEqual (addr , (socket .BDADDR_ANY , psm ))
26722672
2673+ def testBindRfcommSocket (self ):
2674+ with socket .socket (socket .AF_BLUETOOTH , socket .SOCK_STREAM , socket .BTPROTO_RFCOMM ) as s :
2675+ channel = 0
2676+ s .bind ((socket .BDADDR_ANY , channel ))
2677+ addr = s .getsockname ()
2678+ self .assertEqual (addr , (socket .BDADDR_ANY , channel ))
2679+
2680+ @unittest .skipUnless (hasattr (socket , 'BTPROTO_HCI' ), 'Bluetooth HCI sockets required for this test' )
2681+ def testBindHciSocket (self ):
2682+ with socket .socket (socket .AF_BLUETOOTH , socket .SOCK_RAW , socket .BTPROTO_HCI ) as s :
2683+ if sys .platform .startswith (('netbsd' , 'dragonfly' , 'freebsd' )):
2684+ s .bind (socket .BDADDR_ANY .encode ())
2685+ addr = s .getsockname ()
2686+ self .assertEqual (addr , socket .BDADDR_ANY )
2687+ else :
2688+ dev = 0
2689+ s .bind ((dev ,))
2690+ addr = s .getsockname ()
2691+ self .assertEqual (addr , dev )
2692+
2693+ @unittest .skipUnless (hasattr (socket , 'BTPROTO_SCO' ), 'Bluetooth SCO sockets required for this test' )
2694+ def testBindScoSocket (self ):
2695+ with socket .socket (socket .AF_BLUETOOTH , socket .SOCK_SEQPACKET , socket .BTPROTO_SCO ) as s :
2696+ s .bind (socket .BDADDR_ANY .encode ())
2697+ addr = s .getsockname ()
2698+ self .assertEqual (addr , socket .BDADDR_ANY )
2699+
26732700
26742701@unittest .skipUnless (HAVE_SOCKET_HYPERV ,
26752702 'Hyper-V sockets required for this test.' )
0 commit comments