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 16962-5a32637) Lines: 1527 1681 90.8 %
Date: 2014-10-29 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 46395
ZX_graeffe 4462
ZX_sturm 3395
ZX_sturmpart 105
ZX_uspensky 5343
ZX_uspensky_cst_pol 630
_gen_nored 427702
_gen_one 499984
_gen_zero 6342
_intervalcmp 0
_mp_add 1616980
_mp_cmul 1947556
_mp_mul 355594
_mp_sqr 360069
a_posteriori_errors 9099
abs_update 607948
abs_update_r 30420
addCC 8376586
all_roots 8933
append_clone 48065
bkeval_single_power 168459
check_ab 2004
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 17018934
dbllog2mp 3390094
dft 22590
dual_modulus 45794
eval_rel_pol 690666
fft 1425102
findpower 1676110
fix_roots 9099
fix_roots1 5179
fujiwara_bound 63727
fujiwara_bound_real 5887
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 12263037
mydbllog2r 6775676
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 5011
quicktofp 303690
realroots 1899
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 5011
splitpoleval 168459
sqrCC 13027339
tocomplex 42132
update_radius 21042
usp 5019

Generated by: LCOV version 1.9