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 - rootpol.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.10.0 lcov report (development 21350-3349c1d) Lines: 1516 1658 91.4 %
Date: 2017-11-21 06:21:18 Functions: 109 116 94.0 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FFT 0
FFTinit 0
RgX_s_mulspec 0
RgX_shiftspec 0
_intervalcmp 0
_mp_sub 0
scalepol2n 0
polgraeffe 14
ZX_Uspensky_equal 28
rootsdeg0 35
polmod_to_embed 84
cleanroots 161
solve_exact_pol 904
ZX_sturmpart 2281
ZX_Uspensky_cst_pol 4130
roots 4530
isexactpol 4663
roots_com 4663
checkbound 4674
roots_aux 4691
polrootsbound_i 4957
polrootsbound 4964
realroots 5819
ZX_graeffe 7329
isexactscalar 7711
check_ab 8100
RgX_normalize1 8716
checkvalidpol 9634
ZX_sturm 15029
fix_roots1 21187
fujiwara_bound_real 24856
usp 26330
QX_complex_roots 27222
ZX_Uspensky 28372
polsolve 29364
split_pols 29364
splitcauchy 29364
_gen_zero 30779
all_roots 31878
clean_roots 31885
a_posteriori_errors 32232
fix_roots 32232
mygprec_special 32232
conformal_mapping 32521
split_1 32521
split_0_1 32656
split_0_2 32656
logradius 35570
optimize_split 35570
parameters 35570
split_2 35570
split_fromU 35570
update_radius 35570
split_0 35705
dft 37924
refine_F 37924
abs_update_r 47856
logmodulus 52941
logpre_modulus 52941
ind_maxlog2 64180
isreal 68091
isvalidcoeff 69912
initdft 73494
dual_modulus 77482
conformal_pol 97563
tocomplex 101431
split_complete 103642
logmin_modulus 109005
append_clone 110062
fujiwara_bound 121200
homothetie 129366
root_error 139940
mygprecrc_special 183806
refine_H 191519
cmp_complex_appr 226982
scalepol 301836
logmax_modulus 310261
mygprec_absolute 336922
X2XP1 440422
newton_polygon 483593
quicktofp 504569
dblexp 555028
RgX_gtofp_bit 623881
homothetie2n 793854
bkeval_single_power 853414
splitpoleval 853414
abs_update 996436
mydbllogr 1116037
eval_rel_pol 1148864
pol_to_gaussint 1459125
fft 2160623
_gen_nored 2374292
homothetie_gauss 2587227
_gen_one 2722234
_mp_sqr 2848290
findpower 2897488
lower_bound 2897488
_mp_mul 2974890
myshiftrc 3267226
graeffe 3722789
set_karasquare_limit 3722789
mygprec 5894861
dbllog2mp 6816958
cook_square 7445578
CX_square_spec 7726509
karasquare 7867951
mydbllog2r 10456983
myshiftic 12241769
addCC 13160513
_mp_add 13339634
_mp_cmul 15015683
mydbllog2i 19881326
sqrCC 21698625
mygprecrc 23638821
mulCC 25254355
dbllog2 26388900

Generated by: LCOV version 1.11