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 - basemath - gen3.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.8.0 lcov report (development 17960-0cd23ba) Lines: 2003 2197 91.2 %
Date: 2015-09-03 Functions: 198 207 95.7 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 1524 1934 78.8 %

Function Name Sort by function name Hit count Sort by hit count
Itos 697294
QpV_to_QV 56
RgM_mulreal 0
RgX_RgM_eval_col 0
RgX_cxeval 248757
RgX_deflate_max 31381
RgX_degree 21448
RgX_integ 98
_egal 21795961
_egal_i 21795961
_gtopoly 2389646
_polcoeff 128366
_quot 546
_quotfi 7
_quotfs 77
_quotri 14
_quotrs 42
_quotsf 35
_quotsr 105
_rfraccoeff 21
_sercoeff 896
ceil_safe 55177
ceilr 1745
centerlift 12376
centerlift0 98
centerliftii 10059
checkdeflate 31430
coefstoser 7
compo 312
deg1pol 2961
deg1pol_shallow 521412
degree 0
denom 9176426
deriv 108129
derivser 2023
diffop 3535
diffop0 42
diviiround 9549113
divrem 896
err_intformal 35
floor_safe 7753
gceil 10805
gcvtoi 74014
gdeflate 210
gdivent 5497940
gdiventgs 1422
gdiventres 903
gdiventsg 5496063
gdivmod 0
gdivround 491792
gdvd 3906
geq 901010
geval 0
geval_gp 9814
gfloor 3948403
gfrac 91
gge 124152
ggrando 3927
ggt 126441
gimag 175
gle 7720853
glt 6210956
gmod 7185822
gmodgs 13781
gmodsg 6932241
gmodulo 814607
gmodulsg 692952
gmodulss 598258
gne 20894951
gnot 259427
gppoldegree 3745
gprecision 2316187
greal 158902
grndtoi 7922941
ground 906886
gshift 37115320
gsubst 109193
gsubst_expr 35
gsubstpol 84
gsubstvec 756
gtocol 182
gtocol0 1197
gtocolrev 0
gtocolrev0 252
gtopoly 68537
gtopolyrev 2321109
gtoser 357
gtovec 226261
gtovec0 227430
gtovecpost 1029
gtovecpre 336
gtovecrev 7
gtovecrev0 259
gtovecsmall 432733
gtovecsmall0 798
gtovecsmallpost 84
gtovecsmallpre 84
gtrunc 868
gtrunc2n 9276927
gvar 97136257
gvar2 19903549
gvar9 43232
hqfeval 0
imag_i 291677
init_qf_apply 143759
init_vectopre 245
integ 350
integ_act 14
integser 2541
inv_ser 294
iscomplex 21
isinexact 128270148
isinexactreal 12544
isint 7672
isrationalzeroscalar 0
isrealappr 72825
issmall 7469
lift 109000
lift0 176015
lift_intern 204137
liftall 56
liftall_shallow 119
liftint 112
liftint_shallow 511
liftpol 49
liftpol_shallow 134029
listdeflate 21
lookup 833
mkcoln 0
mkintn 8827
mkpoln 1332017
mkvecn 9030
mkvecsmalln 91
mod_r 168
modr_safe 423847
modrs 14
modsf 35
modsr 35
mulreal 10658655
multi_coeff 39466
numer 8235947
op_ReIm 358890
padic_to_Q 784
padic_to_Q_shallow 7
padicprec 126
padicprec_relative 770
polcoeff0 4970
polcoeff_i 169421
poldeflate 112
poldegree 7138
poleval 525713
pollead 2914
poltoser 504
prec0 9577
precCOMPLEX 1756914
precREAL 881169
precision 983293
precision0 1491
precrealexact 321014
qf_apply_RgM 448
qf_apply_ZM 143311
qfbil 42
qfeval 21
qfevalb 21
qfnorm 56
quot 497
quotfi 7
quotfs 77
quotrem 259
quotri 14
quotrs 28
quotsf 35
quotsr 70
real_i 2780210
recvar 329
rfractoser 49
round0 1939
round_i 15628685
roundr 1345367
roundr_safe 9662919
scalarpol 5074872
scalarpol_shallow 55380
scalarser 4312
ser2pol_i 751177
ser2rfrac 252
ser2rfrac_i 1848
ser_unscale 588
serdeflate 35
serreverse 49
simplify 10800075
simplify_shallow 293570758
swapvar_act 21
tayl 7
tayl_act 7
toser_i 1128488
triv_integ 35
trunc0 217
uu32toi 105143
var2_aux 8169
var2_polmod 1134
var2_rfrac 7035
variables_vec 14
variables_vecsmall 7
vdeflate 63
vec_padicprec 21
vec_padicprec_relative 224
vecdenom 742

Generated by: LCOV version 1.9