From 1019462d60f9253f5ba1bbe54b843c7cfac664c4 Mon Sep 17 00:00:00 2001 From: q66 Date: Sun, 31 May 2015 16:33:49 +0100 Subject: [PATCH] no color test output on windows + other testrunner changes --- run_tests.py | 47 ++++++++++++++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 13 deletions(-) diff --git a/run_tests.py b/run_tests.py index cc26745..2f960fe 100644 --- a/run_tests.py +++ b/run_tests.py @@ -1,6 +1,6 @@ from sys import stdout, exit -from os import listdir, remove -from os.path import splitext +from os import listdir, remove, name as osname +from os.path import splitext, join as joinp import subprocess as sp COMPILER = "c++" @@ -10,38 +10,59 @@ CXXFLAGS = [ "-Wno-missing-braces", # clang false positive "-I." ] +COLORS = (osname != "nt") nsuccess = 0 nfailed = 0 +def print_result(modname, fmsg = None): + if fmsg: + if COLORS: + print "%s...\t\033[91m\033[1m(%s)\033[0m" % (modname, fmsg) + else: + print "%s...\t(%s)" % (modname, fmsg) + else: + if COLORS: + print "%s...\t\033[92m\033[1m(success)\033[0m" % modname + else: + print "%s...\t(success)" % modname + for fname in listdir("tests"): (modname, modext) = splitext(fname) if modext != ".cpp": continue - pc = sp.Popen([ COMPILER, "tests/%s" % fname, "-o", "tests/%s" % modname ] - + CXXFLAGS, stdout = sp.PIPE, stderr = sp.STDOUT) + srcpath = joinp("tests", fname) + exepath = joinp("tests", modname) + + pc = sp.Popen([ COMPILER, srcpath, "-o", exepath ] + CXXFLAGS, + stdout = sp.PIPE, stderr = sp.STDOUT) stdout.write(pc.communicate()[0]) if pc.returncode != 0: - print "%s...\t\033[91m\033[1m(compile error)\033[0m" % modname + print_result(modname, "compile error") nfailed += 1 continue - pc = sp.Popen("tests/%s" % modname, stdout = sp.PIPE, stderr = sp.STDOUT) + pc = sp.Popen(exepath, stdout = sp.PIPE, stderr = sp.STDOUT) stdout.write(pc.communicate()[0]) if pc.returncode != 0: - remove("tests/%s" % modname) - print "%s...\t\033[91m\033[1m(runtime error)\033[0m" % modname + remove(exepath) + print_result(modname, "runtime error") nfailed += 1 continue - remove("tests/%s" % modname) - print "%s...\t\033[92m\033[1m(success)\033[0m" % modname + remove(exepath) + print_result(modname) nsuccess += 1 -print "\n\033[94m\033[1mtesting done:\033[0m" -print "\033[92mSUCCESS\033[0m: \033[1m%d\033[0m" % nsuccess -print "\033[91mFAILURE\033[0m: \033[1m%d\033[0m" % nfailed \ No newline at end of file +if COLORS: + print "\n\033[94m\033[1mtesting done:\033[0m" + print "\033[92mSUCCESS\033[0m: \033[1m%d\033[0m" % nsuccess + print "\033[91mFAILURE\033[0m: \033[1m%d\033[0m" % nfailed +else: + print "\ntesting done:" + print "SUCCESS: %d" % nsuccess + print "FAILURE: %d" % nfailed \ No newline at end of file