From 088af4d1714032e69956918048cf30f4be7ddc4b Mon Sep 17 00:00:00 2001 From: Zsin Skri Date: Wed, 17 Jul 2019 19:03:29 +0200 Subject: [PATCH] bpd tests: skip `control_port` in queue When setting up bpd tests, two servers are startet: first a control server, then bpd. Both send their assigned ports down a queue. The recipient only needs bpd's port and thus skips the first queue entry. --- test/test_player.py | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/test/test_player.py b/test/test_player.py index 78e3948ca..021a04fc0 100644 --- a/test/test_player.py +++ b/test/test_player.py @@ -252,9 +252,8 @@ def start_server(args, assigned_port, listener_patch): # `bluelet_listener` as this function will replace it at its # original location. listener = bluelet_listener(host, port) - # read which port has been assigned by the OS - # TODO: change to put_nowait. There should always be a free slot. - assigned_port.put(listener.sock.getsockname()[1]) + # read port assigned by OS + assigned_port.put_nowait(listener.sock.getsockname()[1]) return listener listener_patch.side_effect = listener_wrap @@ -302,7 +301,7 @@ class BPDTestHelper(unittest.TestCase, TestHelper): config_file.close() # Fork and launch BPD in the new process: - assigned_port = mp.Queue(1) + assigned_port = mp.Queue(2) # 2 slots, `control_port` and `port` server = mp.Process(target=start_server, args=([ '--library', self.config['library'].as_filename(), '--directory', py3_path(self.libdir), @@ -312,12 +311,8 @@ class BPDTestHelper(unittest.TestCase, TestHelper): server.start() try: - # TODO: ugly hack. remove - print("ignoring port in queue:", assigned_port.get(timeout=2)) - # Wait until the socket is connected - port = assigned_port.get(timeout=2) - print("test bpd server on port", port) - time.sleep(0.1) + assigned_port.get(timeout=1) # skip control_port + port = assigned_port.get(timeout=0.5) # read port sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) try: