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 20838-243a3c2) Lines: 1503 1647 91.3 %
Date: 2017-07-28 06:22:09 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 7212569
FFT 0
FFTinit 0
QX_complex_roots 23626
RgX_gtofp_bit 583818
RgX_normalize1 6021
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 436005
ZX_Uspensky 29065
ZX_Uspensky_cst_pol 4151
ZX_Uspensky_equal 28
ZX_graeffe 6559
ZX_sturm 15407
ZX_sturmpart 2274
_gen_nored 2312164
_gen_one 2643218
_gen_zero 28879
_intervalcmp 0
_mp_add 13133663
_mp_cmul 14754162
_mp_mul 2936077
_mp_sqr 2803378
_mp_sub 0
a_posteriori_errors 28580
abs_update 924288
abs_update_r 45710
addCC 12137652
all_roots 28226
append_clone 100673
bkeval_single_power 824689
check_ab 8373
checkbound 4660
checkvalidpol 6904
clean_roots 28233
cleanroots 147
cmp_complex_appr 208284
conformal_mapping 30678
conformal_pol 92034
cook_square 6971134
dblexp 520346
dbllog2 24906163
dbllog2mp 6283134
dft 35923
dual_modulus 72982
eval_rel_pol 1078919
fft 2011342
findpower 2709896
fix_roots 28580
fix_roots1 19009
fujiwara_bound 115909
fujiwara_bound_real 24009
graeffe 3485567
homothetie 121735
homothetie2n 744779
homothetie_gauss 2419223
ind_maxlog2 60407
initdft 69555
isexactpol 4607
isexactscalar 7522
isreal 64310
isvalidcoeff 57774
karasquare 7334242
logmax_modulus 290673
logmin_modulus 102820
logmodulus 49777
logpre_modulus 49777
logradius 33632
lower_bound 2709896
mulCC 23370343
mydbllog2i 18524658
mydbllog2r 10042800
mydbllogr 1036645
mygprec 5500286
mygprec_absolute 311059
mygprec_special 28580
mygprecrc 21785437
mygprecrc_special 167465
myshiftic 11437305
myshiftrc 3063759
newton_polygon 454106
optimize_split 33632
parameters 33632
pol_to_gaussint 1369592
polgraeffe 14
polmod_to_embed 77
polrootsbound 2297
polrootsbound_i 2290
polsolve 28377
quicktofp 485305
realroots 6099
refine_F 35923
refine_H 179439
root_error 127307
roots 4488
roots_aux 4635
roots_com 4607
rootsdeg0 35
scalepol 284964
scalepol2n 0
set_karasquare_limit 3485567
solve_exact_pol 876
split_0 33767
split_0_1 30813
split_0_2 30813
split_1 30678
split_2 33632
split_complete 96114
split_fromU 33632
split_pols 28377
splitcauchy 28377
splitpoleval 824689
sqrCC 20199292
tocomplex 94850
update_radius 33632
usp 25427

Generated by: LCOV version 1.11