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-bordeaux.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 - basemath - gen2.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.10.0 lcov report (development 19823-d80e022) Lines: 1330 1535 86.6 %
Date: 2016-12-03 05:49:13 Functions: 136 147 92.5 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Q_pval 1345102
Q_pvalrem 371599
RgX_to_ser 935987
RgX_to_ser_inexact 335413
ZV_Z_dvd 77
ZV_lval 0
ZV_lvalrem 0
ZV_pval 2702
ZV_pvalrem 83689
ZX_lval 28
ZX_lvalrem 0
ZX_pval 6307
ZX_pvalrem 530299
Z_lval 10199569
Z_lvalrem 7343969
Z_lvalrem_stop 472198662
Z_pval 6195820
Z_pvalrem 5103334
Z_pvalrem_DC 1360727
_domul 67310
cgetp 1532893
closure_identical 28
cmp_str 476
cmp_universal 46207182
cmp_universal_rec 25960788
cmpfrac 39818
cmpgen 42
cmpifrac 11403
cmprfrac 35840
col_test 84
croak 0
ctop 14
cvstop2 0
cvtop 44979
cvtop2 263050
ensure_nb 786023
factorial_lval 65734
gabs 8056534
gaffect 245878
gaffsg 1008
gassoc_proto 96469
gcmp 155054870
gcmpsg 24408
gcvtop 28
gen_2val 483
gen_2valrem 292107
gen_Z_divides 3836
gen_lval 6863
gen_lvalrem 613952
gen_pval 9009
gen_pvalrem 613988
gen_pvalrem_DC 6305
gen_z_divides 2492
gequal 52452711
gequal0 389439945
gequal1 142996396
gequalX 176218
gequal_try 1717459
gequalm1 1209659
gequalsg 22855
gexpo 67169911
gidentical 35403368
gisexactzero 43268050
glength 4397024
gmax 7830131
gmaxgs 0
gmin 90582
gmings 0
gneg 191945274
gneg_i 38541693
gpvaluation 3661
greffe_aux 1271379
gsigne 2766506
gtolist 410
gtolong 77
gvaluation 195258
identicalrr 21
intdvd 91
is_monomial_test 13052526
is_negative 0
isexactzero 193762116
isless_iu 169980105
isrationalzero 272891799
lexcmp 31528
lexcmp_s_matvec 21
lexcmp_scal_matvec 224
lexcmp_scal_vecsmall 28
lexcmp_similar 10794
lexcmp_vec_mat 84
lexcmp_vecsmall_mat 42
lexcmp_vecsmall_other 182
lexcmp_vecsmall_vec 154
lexcmpgs 28
lexcmpsg 329
list_cmp 336
listcreate_gp 7
listinsert 35014
listkill 7
listpop 21910
listpop0 35
listput 751051
listput0 700049
listsort 21
map_proto_G 182
map_proto_lG 3544381
map_proto_lGL 126
mat_test 98
matsize 112
minval 224
mklist 687
mklist_typ 729
mklistcopy 49
mkmap 35
normalize 5647431
normalizepol 94930
normalizepol_approx 665
normalizepol_lg 164246647
padic_to_Fl 77
padic_to_Fp 3892
padicaff0 0
polequal 431703
polidentical 748484
qtop 14
quadtofp 112
ratval 57134
rfrac_to_ser 133
roughtype 63385
serequal 294
seridentical 14
sizedigit 7
u_lval 9412474
u_lvalrem 11924182
u_lvalrem_stop 410320980
u_pval 2072
u_pvalrem 380331
vecequal 752845
vecidentical 3655631
vecindexmax 5702
vecindexmin 5604
vecmax 1608
vecmax0 1748
vecmin 5576
vecmin0 5646
z_lval 196221
z_lvalrem 0
z_pval 41699
z_pvalrem 0

Generated by: LCOV version 1.11