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 - rootpol.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.8.0 lcov report (development 16937-4bd9b4e) Lines: 1527 1681 90.8 %
Date: 2014-10-24 Functions: 109 115 94.8 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 869 1048 82.9 %

Function Name Sort by function name Hit count Sort by hit count
CX_square_spec 4514391
FFT 0
FFTinit 0
QX_complex_roots 8246
RUgen 91184
RgX_addspec 78842
RgX_gtofp_bit 365458
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 46507
ZX_graeffe 4466
ZX_sturm 3395
ZX_sturmpart 105
ZX_uspensky 5536
ZX_uspensky_cst_pol 630
_gen_nored 434126
_gen_one 508518
_gen_zero 6342
_intervalcmp 0
_mp_add 1619090
_mp_cmul 1956090
_mp_mul 355594
_mp_sqr 362179
a_posteriori_errors 9099
abs_update 607948
abs_update_r 30420
addCC 8376586
all_roots 8933
append_clone 48065
bkeval_single_power 171671
check_ab 2197
checkbound 308
checkvalidpol 694
clean_roots 8933
cleanroots 147
cmp_complex_appr 135287
conformal_mapping 19173
conformal_pol 57519
cook_square 4357190
dblexp 335233
dbllog2 17000047
dbllog2mp 3390094
dft 22590
dual_modulus 45794
eval_rel_pol 690666
fft 1425102
findpower 1676110
fix_roots 9099
fix_roots1 5179
fujiwara_bound 64032
fujiwara_bound_real 5999
graeffe 2178595
homothetie 76887
homothetie2n 469123
homothetie_gauss 1496769
ind_maxlog2 36954
initRU 43632
initRUgen 3920
isexactpol 687
isexactscalar 2062
isreal 40215
isvalidcoeff 2923
karasquare 4593716
logmax_modulus 179341
logmax_modulus_bound 427
logmin_modulus 63313
logmodulus 31905
logpre_modulus 31905
logradius 21042
lower_bound 1676110
mulCC 15825073
mydbllog2i 12250105
mydbllog2r 6770443
mydbllogr 679615
mygprec 3592535
mygprec_absolute 149677
mygprec_special 9099
mygprecrc 13502286
mygprecrc_special 74181
myreal_1 343297
myshiftic 7370294
myshiftrc 2013108
newton_polygon 289782
optimize_split 21042
parameters 21042
pol_to_gaussint 870007
polgraeffe 14
polmod_to_embed 77
polsolve 5123
quicktofp 304412
realroots 2092
refine_F 22590
refine_H 113854
root_error 65040
roots 568
roots_aux 715
roots_com 687
rootsdeg0 35
scalepol 178164
scalepol2n 0
set_karasquare_limit 2178595
solve_exact_pol 449
split_0 21042
split_0_1 19173
split_0_2 19173
split_1 19173
split_2 21042
split_complete 51183
split_fromU 21042
split_polynoms 5123
splitpoleval 171671
sqrCC 13027339
tocomplex 42132
update_radius 21042
usp 5131

Generated by: LCOV version 1.9