@@ -1064,7 +1064,8 @@ def cleanup(line):
10641064 def run_js (self , filename , engine = None , args = None ,
10651065 output_nicerizer = None ,
10661066 assert_returncode = 0 ,
1067- interleaved_output = True ):
1067+ interleaved_output = True ,
1068+ timeout = None , timeout_as_error = True ):
10681069 # use files, as PIPE can get too full and hang us
10691070 stdout_file = self .in_dir ('stdout' )
10701071 stderr_file = None
@@ -1086,9 +1087,11 @@ def run_js(self, filename, engine=None, args=None,
10861087 jsrun .run_js (filename , engine , args ,
10871088 stdout = stdout ,
10881089 stderr = stderr ,
1089- assert_returncode = assert_returncode )
1090+ assert_returncode = assert_returncode ,
1091+ timeout = timeout )
10901092 except subprocess .TimeoutExpired as e :
1091- timeout_error = e
1093+ if timeout_as_error :
1094+ timeout_error = e
10921095 except subprocess .CalledProcessError as e :
10931096 error = e
10941097 finally :
@@ -1506,7 +1509,8 @@ def _build_and_run(self, filename, expected_output, args=None, output_nicerizer=
15061509 check_for_error = True , force_c = False , emcc_args = None ,
15071510 interleaved_output = True ,
15081511 regex = False ,
1509- output_basename = None ):
1512+ output_basename = None ,
1513+ timeout = None , timeout_as_error = True ):
15101514 logger .debug (f'_build_and_run: { filename } ' )
15111515
15121516 if no_build :
@@ -1533,7 +1537,9 @@ def _build_and_run(self, filename, expected_output, args=None, output_nicerizer=
15331537 js_output = self .run_js (js_file , engine , args ,
15341538 output_nicerizer = output_nicerizer ,
15351539 assert_returncode = assert_returncode ,
1536- interleaved_output = interleaved_output )
1540+ interleaved_output = interleaved_output ,
1541+ timeout = timeout ,
1542+ timeout_as_error = timeout_as_error )
15371543 js_output = js_output .replace ('\r \n ' , '\n ' )
15381544 if expected_output :
15391545 if type (expected_output ) not in [list , tuple ]:
0 commit comments