summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/README_gcov.txt
blob: 02f090f69ff361abf6e0b2c05d09b3169d779b80 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Here is how to use gcov to test code coverage in ldb.

Step 1: enable gcov support

     Edit Makefile.ldb and uncommend the two GCOV_ lines
     
Step 2: build ldb

     make -sf Makefile.ldb clean all

Step 3: run the test suite
     make -sf Makefile.ldb test-tdb

Step 4: produce the gcov report
     make -sf Makefile.ldb gcov

Step 5: read the summary reports
     less *.report.gcov

Step 6: examine the per-file reports
     less ldb_tdb\#ldb_tdb.c.gcov

You can also combine steps 2 to 4 like this:

     make -sf Makefile.ldb clean all test-tdb gcov

Note that you should not expect 100% coverage, as some error paths
(such as memory allocation failures) are verr hard to trigger. There
are ways of working around this, but they are quite tricky (they
involve allocation wrappers that "fork and fail on malloc").

The lines to look for in the per-file reports are the ones starting
with "#####". Those are lines that are never executed.