Skip to content

Commit 909871a

Browse files
Add tests for Bluetooth RFCOMM, HCI and SCO
1 parent b0f77c4 commit 909871a

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

Lib/test/test_socket.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)