Index: src/tests/test.py
===================================================================
--- src/tests/test.py	(revision 76c7f65e402f9bce5fa6b0d2b1f84466d81a7bbf)
+++ src/tests/test.py	(revision a43e1d7c3231cb18eeecb91c0c4d77666dc79121)
@@ -9,4 +9,5 @@
 import os
 import re
+import stat
 import sys
 
@@ -60,4 +61,13 @@
 		return result;
 
+def fileIsExecutable(file) :
+	try :
+		fileinfo = os.stat(file)
+		return bool(fileinfo.st_mode & stat.S_IXUSR)
+	except Exception as inst:
+		print(type(inst))    # the exception instance
+		print(inst.args)     # arguments stored in .args
+		print(inst)
+		return False
 
 ################################################################################
@@ -78,6 +88,10 @@
 		stdinput = "< .in/%s.txt" % test if isfile(".in/%s.txt" % test) else ""
 
-		# run test
-		sh("./%s %s > %s 2>&1" % (test, stdinput, out_file), dry_run)
+		if fileIsExecutable(test) :
+			# run test
+			sh("./%s %s > %s 2>&1" % (test, stdinput, out_file), dry_run)
+		else :
+			# simply cat the result into the output
+			sh("cat %s > %s" % (test, out_file), dry_run)
 
 	retcode = 0
