Index: tests/pybin/tools.py
===================================================================
--- tests/pybin/tools.py	(revision a659b31f9366d9a17ae8f8dbdc7a64ba5e1a646a)
+++ tests/pybin/tools.py	(revision f58522b05a8f78072879b14d46c767b3c9209e06)
@@ -23,5 +23,5 @@
 
 # helper functions to run terminal commands
-def sh(*cmd, timeout = False, output_file = None, input_file = None, input_text = None, error = subprocess.STDOUT, ignore_dry_run = False, pass_fds = []):
+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):
 	try:
 		cmd = list(cmd)
@@ -58,15 +58,25 @@
 			error = openfd(error, 'w', onexit, False)
 
+			# prepare the parameters to the call
+			popen_kwargs = {
+				'stdout' : output_file,
+				'stderr' : error,
+				'pass_fds': pass_fds,
+			}
+
+			# depending on how we are passing inputs we need to set a different argument to popen
+			if input_text:
+				popen_kwargs['input'] = bytes(input_text, encoding='utf-8')
+			else:
+				popen_kwargs['stdin'] = input_file
+
+			# we might want to nice this so it's not to obnixious to users
+			if nice:
+				popen_kwargs['preexec_fn'] = lambda: os.nice(5)
+
 			# run the desired command
 			# use with statement to make sure proc is cleaned
 			# don't use subprocess.run because we want to send SIGABRT on exit
-			with subprocess.Popen(
-				cmd,
-				**({'input' : bytes(input_text, encoding='utf-8')} if input_text else {'stdin' : input_file}),
-				stdout  = output_file,
-				stderr  = error,
-				pass_fds = pass_fds
-			) as proc:
-
+			with subprocess.Popen( cmd, **popen_kwargs ) as proc:
 				try:
 					out, errout = proc.communicate(
Index: tests/test.py
===================================================================
--- tests/test.py	(revision a659b31f9366d9a17ae8f8dbdc7a64ba5e1a646a)
+++ tests/test.py	(revision f58522b05a8f78072879b14d46c767b3c9209e06)
@@ -190,5 +190,5 @@
 				if settings.dry_run or is_exe(exe_file):
 					# run test
-					retcode, _, _ = sh(exe_file, output_file=out_file, input_file=in_file, timeout=True)
+					retcode, _, _ = sh(exe_file, output_file=out_file, input_file=in_file, timeout=True, nice=True)
 				else :
 					# simply cat the result into the output
