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 21351-66b5338) Lines: 1516 1658 91.4 %
Date: 2017-11-22 06:21:08 Functions: 109 116 94.0 %
Legend: Lines: hit not hit

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

Generated by: LCOV version 1.11