Code coverage measurement support (with lcov)
This was SVN commit r7203.
This commit is contained in:
parent
22ac887785
commit
f7e16d9f3e
31
build/coverage/gen.sh
Executable file
31
build/coverage/gen.sh
Executable file
@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Run "update-workspaces.sh --coverage" (in the appropriate directory) then
|
||||
# do "make test Collada", before running this script.
|
||||
# Also make sure you don't build via ccache. Also you might need a patch like
|
||||
# http://ltp.cvs.sourceforge.net/viewvc/ltp/utils/analysis/lcov/bin/lcov?r1=1.33&r2=1.34
|
||||
|
||||
rm -f app.info
|
||||
|
||||
for APPDIR in ../workspaces/gcc/obj/*; do
|
||||
lcov -d $APPDIR --zerocounters
|
||||
lcov -d $APPDIR -b ../workspaces/gcc --capture --initial -o temp.info
|
||||
if [[ -e app.info ]]; then
|
||||
lcov -a app.info -a temp.info -o app.info
|
||||
else
|
||||
mv temp.info app.info
|
||||
fi
|
||||
done
|
||||
|
||||
(cd ../../binaries/system/; ./test_dbg)
|
||||
|
||||
for APPDIR in ../workspaces/gcc/obj/*; do
|
||||
lcov -d $APPDIR -b ../workspaces/gcc --capture -o temp.info &&
|
||||
lcov -a app.info -a temp.info -o app.info
|
||||
done
|
||||
|
||||
lcov -r app.info '/usr/*' -o app.info
|
||||
lcov -r app.info '*/libraries/*' -o app.info
|
||||
|
||||
mkdir output
|
||||
(cd output; genhtml ../app.info)
|
@ -1,5 +1,6 @@
|
||||
addoption("atlas", "Include Atlas scenario editor packages")
|
||||
addoption("collada", "Include COLLADA packages (requires FCollada library)")
|
||||
addoption("coverage", "Enable code coverage data collection (GCC only)")
|
||||
addoption("aoe3ed", "Include AoE3Ed")
|
||||
addoption("icc", "Use Intel C++ Compiler (Linux only; should use either \"--cc icc\" or --without-pch too, and then set CXX=icpc before calling make)")
|
||||
addoption("outpath", "Location for generated project files")
|
||||
@ -196,6 +197,10 @@ function package_set_build_flags()
|
||||
"-Wl,--as-needed",
|
||||
})
|
||||
end
|
||||
if options["coverage"] then
|
||||
tinsert(package.buildoptions, {"-fprofile-arcs", "-ftest-coverage"})
|
||||
tinsert(package.links, "gcov")
|
||||
end
|
||||
end
|
||||
|
||||
tinsert(package.buildoptions, {
|
||||
|
Loading…
Reference in New Issue
Block a user