Code coverage tests

This page documents the degree to which the PARI/GP source code is tested by our public test suite, distributed with the source distribution in directory src/test/. This is measured by the gcov utility; we then process gcov output using the lcov frond-end.

We test a few variants depending on Configure flags on the pari.math.u-bordeaux1.fr machine (x86_64 architecture), and agregate them in the final report:

The target is 90% coverage for all mathematical modules (given that branches depending on DEBUGLEVEL or DEBUGMEM are not covered). This script is run to produce the results below.

LCOV - code coverage report
Current view: top level - kernel/gmp - mp.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.8.0 lcov report (development 17097-9391e68) Lines: 641 716 89.5 %
Date: 2014-11-21 Functions: 53 54 98.1 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 421 533 79.0 %

Function Name Sort by function name Hit count Sort by hit count
GEN2mpz 52302687
addiispec 591195173
adduispec 450066251
adduispec_offset 146130814
addumului 625402
affir 59424404
cmpiispec 812617008
convi 165291
diviiexact 157751937
divis 12157
divis_rem 17708824
diviu_rem 71090616
diviuexact 151609983
diviuuexact 36303
divri 6817755
divri_with_gmp 1939258
divrr 43248098
divrr_with_gmp 9698754
dvmdii 291892228
equaliispec 11261523
floorr 204354
icopy_ef 4612614
incloop 10505373
incneg 2692
incpos 10498247
int_normalize 66071160
mantissa2nr 8225753
mpz2GEN 46482556
muliispec 605526935
muliispec_mirror 53040718
muluispec 618806482
muluui 47407
pari_gmp_free 1448
pari_gmp_realloc 0
pari_kernel_close 364
pari_kernel_init 376
red_montgomery 1774121
remi2n 3978553
resetloop 72734
roundr_up_ip 45692726
setloop 737430
shiftispec 106011685
sqrispec 290944677
sqrispec_mirror 6562473
sqrtr_abs 5882144
sqrtremi 699613
subiispec 732422057
subiuspec 392680736
truncr 245242
umodiu 175885552
xmpn_copy 1220473
xmpn_mirror 121442538
xmpn_mirrorcopy 158709818
xmpn_zero 17520156

Generated by: LCOV version 1.9