GHOP #217: add support for compiling Python with coverage checking enabled.

This commit is contained in:
Georg Brandl 2008-05-18 11:46:51 +00:00
parent 0bb0299ad8
commit 405b5f316a
2 changed files with 26 additions and 0 deletions

View File

@ -375,6 +375,12 @@ run_profile_task:
build_all_use_profile: build_all_use_profile:
$(MAKE) all CFLAGS="$(CFLAGS) -fprofile-use" $(MAKE) all CFLAGS="$(CFLAGS) -fprofile-use"
coverage:
@echo "Building with support for coverage checking:"
$(MAKE) clean
$(MAKE) all CFLAGS="$(CFLAGS) -O0 -pg -fprofile-arcs -ftest-coverage" LIBS="$(LIBS) -lgcov"
# Build the interpreter # Build the interpreter
$(BUILDPYTHON): Modules/python.o $(LIBRARY) $(LDLIBRARY) $(BUILDPYTHON): Modules/python.o $(LIBRARY) $(LDLIBRARY)
$(LINKCC) $(LDFLAGS) $(LINKFORSHARED) -o $@ \ $(LINKCC) $(LDFLAGS) $(LINKFORSHARED) -o $@ \

20
README
View File

@ -917,6 +917,26 @@ libraries. The Makefile/Setup mechanism can be used to compile and
link most extension modules statically. link most extension modules statically.
Coverage checking
-----------------
For C coverage checking using gcov, run "make coverage". This will
build a Python binary with profiling activated, and a ".gcno" and
".gcda" file for every source file compiled with that option. With
the built binary, now run the code whose coverage you want to check.
Then, you can see coverage statistics for each individual source file
by running gcov, e.g.
gcov -o Modules zlibmodule
This will create a "zlibmodule.c.gcov" file in the current directory
containing coverage info for that source file.
This works only for source files statically compiled into the
executable; use the Makefile/Setup mechanism to compile and link
extension modules you want to coverage-check statically.
Testing Testing
------- -------