From: Dave Wallace Date: Sat, 8 May 2021 01:40:54 +0000 (-0400) Subject: tests: fix another race condition in punt tests X-Git-Tag: v21.10-rc0~102 X-Git-Url: https://gerrit.fd.io/r/gitweb?a=commitdiff_plain;h=c44402f7b54d3290e7d1605e8e855f859ffe5331;p=vpp.git tests: fix another race condition in punt tests - Don't close the socket and don't stop receiving until after draining the existing data in the socket. Type: fix Signed-off-by: Dave Wallace Change-Id: I38dfff4d6273eeddb5196f5cf2a60b580e1c93e6 --- diff --git a/test/test_punt.py b/test/test_punt.py index bc2196eee1f..3471a3f7dd5 100755 --- a/test/test_punt.py +++ b/test/test_punt.py @@ -46,11 +46,11 @@ class serverSocketThread(threading.Thread): self.sockName = sockName self.sock = None self.rx_pkts = [] - self.keep_running = True + self.stop_running = False def rx_packets(self): # Wait for some packets on socket - while self.keep_running: + while True: try: data = self.sock.recv(65536) @@ -61,7 +61,9 @@ class serverSocketThread(threading.Thread): self.rx_pkts.append(Ether(data[8:])) except IOError as e: if e.errno == 11: - # nothing to receive, sleep a little + # nothing to receive, stop running or sleep a little + if self.stop_running: + break time.sleep(0.1) pass else: @@ -81,9 +83,9 @@ class serverSocketThread(threading.Thread): self.rx_packets() def close(self): - self.sock.close() - self.keep_running = False + self.stop_running = True threading.Thread.join(self) + self.sock.close() return self.rx_pkts