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 16861-9aeb453) Lines: 1527 1681 90.8 %
Date: 2014-10-08 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 4563881
FFT 0
FFTinit 0
QX_complex_roots 8505
RUgen 92353
RgX_addspec 78842
RgX_gtofp_bit 369637
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 47557
ZX_graeffe 4480
ZX_sturm 3591
ZX_sturmpart 105
ZX_uspensky 5630
ZX_uspensky_cst_pol 665
_gen_nored 442803
_gen_one 518188
_gen_zero 6893
_intervalcmp 0
_mp_add 1630612
_mp_cmul 1973781
_mp_mul 357994
_mp_sqr 364694
a_posteriori_errors 9442
abs_update 611644
abs_update_r 30840
addCC 8387520
all_roots 9276
append_clone 48975
bkeval_single_power 175031
check_ab 2095
checkbound 308
checkvalidpol 778
clean_roots 9276
cleanroots 161
cmp_complex_appr 136778
conformal_mapping 19397
conformal_pol 58191
cook_square 4406680
dblexp 338600
dbllog2 17141981
dbllog2mp 3406614
dft 22849
dual_modulus 46354
eval_rel_pol 698247
fft 1432235
findpower 1695535
fix_roots 9442
fix_roots1 5389
fujiwara_bound 64896
fujiwara_bound_real 6335
graeffe 2203340
homothetie 77790
homothetie2n 474422
homothetie_gauss 1514087
ind_maxlog2 37360
initRU 44150
initRUgen 4053
isexactpol 771
isexactscalar 2377
isreal 40698
isvalidcoeff 3266
karasquare 4643206
logmax_modulus 181448
logmax_modulus_bound 448
logmin_modulus 64076
logmodulus 32255
logpre_modulus 32255
logradius 21301
lower_bound 1695535
mulCC 15883040
mydbllog2i 12369591
mydbllog2r 6804692
mydbllogr 684074
mygprec 3625981
mygprec_absolute 152575
mygprec_special 9442
mygprecrc 13601466
mygprecrc_special 75763
myreal_1 347336
myshiftic 7432411
myshiftrc 2029895
newton_polygon 292974
optimize_split 21301
parameters 21301
pol_to_gaussint 879695
polgraeffe 14
polmod_to_embed 77
polsolve 5249
quicktofp 307694
realroots 1990
refine_F 22849
refine_H 115043
root_error 66279
roots 638
roots_aux 799
roots_com 771
rootsdeg0 35
scalepol 180285
scalepol2n 0
set_karasquare_limit 2203340
solve_exact_pol 533
split_0 21301
split_0_1 19397
split_0_2 19397
split_1 19397
split_2 21301
split_complete 52044
split_fromU 21301
split_polynoms 5249
splitpoleval 175031
sqrCC 13136987
tocomplex 43126
update_radius 21301
usp 5453

Generated by: LCOV version 1.9