4
4
5
5
import socket
6
6
import os
7
+ import sys
7
8
from os import listdir
8
9
from os .path import isfile , join
9
10
@@ -44,7 +45,18 @@ def run_test(test_folder, parsec_socket):
44
45
connection , client_addr = sock .accept ()
45
46
try :
46
47
received_data = connection .recv (4096 )
47
- b64_received_data = base64 .b64encode (received_data ).decode ("ascii" )
48
+ all_received_data = received_data
49
+ # Keep polling the connection until there's no more to read
50
+ # for 0.5s.
51
+ connection .settimeout (0.5 )
52
+ while True :
53
+ try :
54
+ received_data = connection .recv (4096 )
55
+ all_received_data += received_data
56
+ except socket .timeout :
57
+ print ("Finished reading from socket" )
58
+ break
59
+ b64_received_data = base64 .b64encode (all_received_data ).decode ("ascii" )
48
60
if b64_received_data in test_cases :
49
61
(name , test_case ) = test_cases [b64_received_data ]
50
62
print ("Received expected request for test case {}" .format (name ))
@@ -53,6 +65,7 @@ def run_test(test_folder, parsec_socket):
53
65
else :
54
66
print ("Received unexpected request {}" .format (b64_received_data ))
55
67
finally :
68
+ sys .stdout .flush ()
56
69
connection .close ()
57
70
58
71
@@ -75,7 +88,8 @@ def _traverse(key, element):
75
88
def load_tests_from_folder (test_folder ):
76
89
tests = {}
77
90
"""Read test specs from a folder"""
78
- specfiles = [f for f in listdir (test_folder ) if isfile (join (test_folder , f ))]
91
+ specfiles = [f for f in listdir (
92
+ test_folder ) if isfile (join (test_folder , f ))]
79
93
80
94
for file in specfiles :
81
95
print (f"Parsing spec file: { file } " )
0 commit comments