diff options
-rw-r--r-- | test/Makefile | 8 | ||||
-rwxr-xr-x | utils/test/TestRunner.py | 14 |
2 files changed, 15 insertions, 7 deletions
diff --git a/test/Makefile b/test/Makefile index 635759fa10..4c65d7c015 100644 --- a/test/Makefile +++ b/test/Makefile @@ -12,9 +12,15 @@ TESTARGS = -s endif endif +ifdef VG + VGARG="--vg" +else + VGARG= +endif + all:: @ echo '--- Running clang tests for $(TARGET_TRIPLE) ---' - @ PATH=$(ToolDir):$(LLVM_SRC_ROOT)/test/Scripts:$$PATH VG=$(VG) $(PROJ_SRC_DIR)/../utils/test/MultiTestRunner.py $(TESTARGS) $(TESTDIRS) + @ PATH=$(ToolDir):$(LLVM_SRC_ROOT)/test/Scripts:$$PATH $(PROJ_SRC_DIR)/../utils/test/MultiTestRunner.py $(TESTARGS) $(TESTDIRS) $(VGARG) clean:: @ rm -rf Output/ diff --git a/utils/test/TestRunner.py b/utils/test/TestRunner.py index 77158fd971..728d406e62 100755 --- a/utils/test/TestRunner.py +++ b/utils/test/TestRunner.py @@ -71,11 +71,13 @@ def runOneTest(FILENAME, SUBST, OUTPUT, TESTNAME, CLANG, CLANGCC, useDGCompat=False, useScript=None, output=sys.stdout): + OUTPUT = os.path.abspath(OUTPUT) if useValgrind: VG_OUTPUT = '%s.vg'%(OUTPUT,) - if os.path.exists: - remove(VG_OUTPUT) - CLANG = 'valgrind --leak-check=full --quiet --log-file=%s %s'%(VG_OUTPUT, CLANG) + os.system('rm -f %s.*'%(VG_OUTPUT)) + VALGRIND = 'valgrind -q --tool=memcheck --leak-check=full --trace-children=yes --log-file=%s.%%p'%(VG_OUTPUT) + CLANG = '%s %s'%(VALGRIND, CLANG) + CLANGCC = '%s %s'%(VALGRIND, CLANGCC) # Create the output directory if it does not already exist. mkdir_p(os.path.dirname(OUTPUT)) @@ -105,7 +107,6 @@ def runOneTest(FILENAME, SUBST, OUTPUT, TESTNAME, CLANG, CLANGCC, output.flush() return TestStatus.NoRunLine - OUTPUT = os.path.abspath(OUTPUT) FILENAME = os.path.abspath(FILENAME) SCRIPT = OUTPUT + '.script' TEMPOUTPUT = OUTPUT + '.tmp' @@ -168,7 +169,8 @@ def runOneTest(FILENAME, SUBST, OUTPUT, TESTNAME, CLANG, CLANGCC, SCRIPT_STATUS = not SCRIPT_STATUS if useValgrind: - VG_STATUS = len(list(open(VG_OUTPUT))) + VG_OUTPUT = capture(['/bin/sh','-c','cat %s.*'%(VG_OUTPUT)]) + VG_STATUS = len(VG_OUTPUT) else: VG_STATUS = 0 @@ -183,7 +185,7 @@ def runOneTest(FILENAME, SUBST, OUTPUT, TESTNAME, CLANG, CLANGCC, cat(OUTPUT, output) if VG_STATUS: print >>output, "Valgrind Output:" - cat(VG_OUTPUT, output) + print >>output, VG_OUTPUT print >>output, "******************** TEST '%s' FAILED! ********************"%(TESTNAME,) output.flush() if xfailLines: |