summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile.pre.in6
-rw-r--r--README20
2 files changed, 26 insertions, 0 deletions
diff --git a/Makefile.pre.in b/Makefile.pre.in
index 80043c2..b692a46 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -375,6 +375,12 @@ run_profile_task:
build_all_use_profile:
$(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
$(BUILDPYTHON): Modules/python.o $(LIBRARY) $(LDLIBRARY)
$(LINKCC) $(LDFLAGS) $(LINKFORSHARED) -o $@ \
diff --git a/README b/README
index e97bb17..8f53ca4 100644
--- a/README
+++ b/README
@@ -917,6 +917,26 @@ libraries. The Makefile/Setup mechanism can be used to compile and
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
-------