Merge pull request #36 from thequux/codecoverage

Added coverage support
This commit is contained in:
Meredith L. Patterson 2013-09-13 01:25:10 -07:00
commit 2f7f7d6fc4
3 changed files with 19 additions and 1 deletions

1
.gitignore vendored
View file

@ -17,3 +17,4 @@ TAGS
docs/milestone2.dot.pdf docs/milestone2.dot.pdf
*.dot.pdf *.dot.pdf
Session.vim Session.vim
*.gcov

View file

@ -2,6 +2,11 @@ language: c
compiler: compiler:
- gcc - gcc
- clang - clang
script: scons before_install:
- sudo pip install cpp-coveralls --use-mirrors
script:
- scons --coverage
after_success:
- coveralls
notifications: notifications:
irc: "irc.upstandinghackers.com#hammer" irc: "irc.upstandinghackers.com#hammer"

View file

@ -12,6 +12,12 @@ AddOption("--variant",
action="store", action="store",
help="Build variant (debug or opt)") help="Build variant (debug or opt)")
AddOption("--coverage",
dest="coverage",
default=False,
action="store_true",
help="Build with coverage instrumentation")
env['BUILDDIR'] = 'build/$VARIANT' env['BUILDDIR'] = 'build/$VARIANT'
dbg = env.Clone(VARIANT='debug') dbg = env.Clone(VARIANT='debug')
@ -25,6 +31,12 @@ if GetOption("variant") == 'debug':
else: else:
env = opt env = opt
if GetOption("coverage"):
env.Append(CFLAGS=["-fprofile-arcs", "-ftest-coverage"],
CXXFLAGS=["-fprofile-arcs", "-ftest-coverage"],
LDFLAGS=["-fprofile-arcs", "-ftest-coverage"],
LIBS=['gcov'])
if os.getenv("CC") == "clang": if os.getenv("CC") == "clang":
env.Replace(CC="clang", env.Replace(CC="clang",
CXX="clang++") CXX="clang++")