Changeset f58522b0
- Timestamp:
- Sep 29, 2022, 3:16:51 PM (2 years ago)
- Branches:
- ADT, ast-experimental, master
- Children:
- 2e94d94f
- Parents:
- 77125cc
- Location:
- tests
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
tests/pybin/tools.py
r77125cc rf58522b0 23 23 24 24 # helper functions to run terminal commands 25 def sh(*cmd, timeout = False, output_file = None, input_file = None, input_text = None, error = subprocess.STDOUT, ignore_dry_run = False, pass_fds = [] ):25 def sh(*cmd, timeout = False, output_file = None, input_file = None, input_text = None, error = subprocess.STDOUT, ignore_dry_run = False, pass_fds = [], nice = False): 26 26 try: 27 27 cmd = list(cmd) … … 58 58 error = openfd(error, 'w', onexit, False) 59 59 60 # prepare the parameters to the call 61 popen_kwargs = { 62 'stdout' : output_file, 63 'stderr' : error, 64 'pass_fds': pass_fds, 65 } 66 67 # depending on how we are passing inputs we need to set a different argument to popen 68 if input_text: 69 popen_kwargs['input'] = bytes(input_text, encoding='utf-8') 70 else: 71 popen_kwargs['stdin'] = input_file 72 73 # we might want to nice this so it's not to obnixious to users 74 if nice: 75 popen_kwargs['preexec_fn'] = lambda: os.nice(5) 76 60 77 # run the desired command 61 78 # use with statement to make sure proc is cleaned 62 79 # don't use subprocess.run because we want to send SIGABRT on exit 63 with subprocess.Popen( 64 cmd, 65 **({'input' : bytes(input_text, encoding='utf-8')} if input_text else {'stdin' : input_file}), 66 stdout = output_file, 67 stderr = error, 68 pass_fds = pass_fds 69 ) as proc: 70 80 with subprocess.Popen( cmd, **popen_kwargs ) as proc: 71 81 try: 72 82 out, errout = proc.communicate( -
tests/test.py
r77125cc rf58522b0 190 190 if settings.dry_run or is_exe(exe_file): 191 191 # run test 192 retcode, _, _ = sh(exe_file, output_file=out_file, input_file=in_file, timeout=True )192 retcode, _, _ = sh(exe_file, output_file=out_file, input_file=in_file, timeout=True, nice=True) 193 193 else : 194 194 # simply cat the result into the output
Note: See TracChangeset
for help on using the changeset viewer.