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 20704-afbaa81) Lines: 1503 1647 91.3 %
Date: 2017-05-26 05:56:59 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 7185107
FFT 0
FFTinit 0
QX_complex_roots 13354
RgX_gtofp_bit 570646
RgX_normalize1 5944
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 428452
ZX_Uspensky 20119
ZX_Uspensky_cst_pol 2506
ZX_Uspensky_equal 28
ZX_graeffe 5733
ZX_sturm 8337
ZX_sturmpart 2274
_gen_nored 2221528
_gen_one 2521598
_gen_zero 27709
_intervalcmp 0
_mp_add 13101841
_mp_cmul 14631704
_mp_mul 2935237
_mp_sqr 2772270
_mp_sub 0
a_posteriori_errors 18308
abs_update 919864
abs_update_r 45626
addCC 12105642
all_roots 17954
append_clone 83124
bkeval_single_power 778786
check_ab 6490
checkbound 4660
checkvalidpol 6827
clean_roots 17961
cleanroots 147
cmp_complex_appr 197253
conformal_mapping 30594
conformal_pol 91782
cook_square 6943868
dblexp 518741
dbllog2 24731522
dbllog2mp 6278948
dft 35804
dual_modulus 72757
eval_rel_pol 1074092
fft 2001906
findpower 2699991
fix_roots 18308
fix_roots1 11983
fujiwara_bound 88144
fujiwara_bound_real 13425
graeffe 3471934
homothetie 121300
homothetie2n 741341
homothetie_gauss 2410347
ind_maxlog2 60252
initdft 69352
isexactpol 4607
isexactscalar 7522
isreal 64142
isvalidcoeff 57067
karasquare 7306682
logmax_modulus 289644
logmin_modulus 102442
logmodulus 49546
logpre_modulus 49546
logradius 33548
lower_bound 2699991
mulCC 23297579
mydbllog2i 18435864
mydbllog2r 9888588
mydbllogr 1031807
mygprec 5420927
mygprec_absolute 248691
mygprec_special 18308
mygprecrc 21479025
mygprecrc_special 136364
myshiftic 11395282
myshiftrc 3052523
newton_polygon 451697
optimize_split 33548
parameters 33548
pol_to_gaussint 1363736
polgraeffe 14
polmod_to_embed 77
polrootsbound 2220
polrootsbound_i 2213
polsolve 26592
quicktofp 419117
realroots 4216
refine_F 35804
refine_H 179064
root_error 106478
roots 4488
roots_aux 4635
roots_com 4607
rootsdeg0 35
scalepol 284208
scalepol2n 0
set_karasquare_limit 3471934
solve_exact_pol 876
split_0 33683
split_0_1 30729
split_0_2 30729
split_1 30594
split_2 33548
split_complete 85674
split_fromU 33548
split_pols 26592
splitcauchy 26592
splitpoleval 778786
sqrCC 20126099
tocomplex 74084
update_radius 33548
usp 18364

Generated by: LCOV version 1.11