From c8e84b3a3a218de37d3059c903e82bebd41d5d84 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Fri, 22 Apr 2011 18:47:12 +0000 Subject: [PATCH] tools: clean up coverage report scripts --- Makefile | 24 +++++++++++++++--------- tools/coverage | 10 ---------- tools/runhledgerhpc | 31 +++++++++++++++++++++++++++++++ 3 files changed, 46 insertions(+), 19 deletions(-) delete mode 100644 tools/coverage create mode 100644 tools/runhledgerhpc diff --git a/Makefile b/Makefile index cdd8bd1bc..3b08ee836 100644 --- a/Makefile +++ b/Makefile @@ -210,10 +210,10 @@ hledgernowarnings: hledgerp: ghc --make $(MAIN) -prof -auto-all -o bin/hledgerp $(BUILDFLAGS) -# build the coverage-enabled binary. coverage-enabled .o files are kept -# separate to avoid contamination. -hledgercov: - ghc --make $(MAIN) -fhpc -o bin/hledgercov -outputdir .coverageobjs $(BUILDFLAGS) +# build the -fhpc hledger binary used for coverage reports and heap profiles. +# The associated .o files are kept separate from the regular ones. +hledgerhpc: + ghc --make $(MAIN) -fhpc -o bin/hledgerhpc -outputdir .hledgerhpcobjs $(BUILDFLAGS) # build the fastest binary we can hledgeropt: @@ -375,13 +375,19 @@ quickheap: samplejournals hledgerp hp2ps hledgerp.hp $(VIEWPS) hledger.ps -# generate a code coverage report -coverage: samplejournals hledgercov - @echo "Generating coverage report with $(COVCMD)" - tools/coverage "markup --destdir=profs/coverage" test +# display a code coverage text report from running hledger COVCMD +quickcoverage: + @echo "Generating code coverage text report for hledger command: $(COVCMD)" + tools/runhledgerhpc "report" $(COVCMD) + +# generate a code coverage html report from running hledger COVCMD +coverage: samplejournals hledgerhpc + @echo "Generating code coverage html report for hledger command: $(COVCMD)" + tools/runhledgerhpc "markup --destdir=profs/coverage" $(COVCMD) cd profs/coverage; rm -f index.html; ln -s hpc_index.html index.html -viewcoverage: coverage +# view the last html code coverage report +viewcoverage: $(VIEWHTML) profs/coverage/index.html # get a debug prompt diff --git a/tools/coverage b/tools/coverage deleted file mode 100644 index df705761b..000000000 --- a/tools/coverage +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env python -# usage: hledger$ tools/coverage HPCCOMMAND HLEDGERARGS -# A front-end for hledgercov/hpc. Resets the tix count on each invocation. - -import sys, os -cov="hledgercov" -cmd, args = sys.argv[1], ' '.join(sys.argv[2:]) -os.system("rm -f %s.tix" % cov) -os.system("bin/%s %s >/dev/null" % (cov,args)) -os.system("hpc %s %s" % (cmd,cov)) diff --git a/tools/runhledgerhpc b/tools/runhledgerhpc new file mode 100644 index 000000000..8dff790b0 --- /dev/null +++ b/tools/runhledgerhpc @@ -0,0 +1,31 @@ +#!/usr/bin/env python +# runhledgerhpc "HPCCOMMAND [HPCARGS]" [HLEDGERARGS] +# +# A front-end that resets the tix count, runs hledgerhpc with the +# specified hledger args, and runs hpc with the specified hpc args. +# Should be run from hledger's top source directory. +# +# Eg: +# hledger$ tools/runhledgerhpc report test +# hledger$ tools/runhledgerhpc "markup --destdir=coverage" test 'some unit test' + +hledgerhpc="hledgerhpc" +verbosity = 0 # 0=no output, 1=stderr only, 2=stdout+stderr + +import sys, os + +hpcargs, hledgerargs = sys.argv[1], ' '.join(sys.argv[2:]) + +# remove old tix files +os.system("rm -f %s.tix" % hledgerhpc) + +# run the hpc-enabled binary with the specified hledger arguments to generate tix files +if verbosity<1: + os.system("bin/%s %s >/dev/null 2>&1" % (hledgerhpc,hledgerargs)) +elif verbosity==1: + os.system("bin/%s %s >/dev/null" % (hledgerhpc,hledgerargs)) +else: + os.system("bin/%s %s" % (hledgerhpc,hledgerargs)) + +# run the specified hpc command on the tix files +os.system("hpc %s %s" % (hpcargs,hledgerhpc))