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 21064-a7054ad) Lines: 1514 1658 91.3 %
Date: 2017-09-25 06:24:50 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 7715337
FFT 0
FFTinit 0
QX_complex_roots 26928
RgX_gtofp_bit 622397
RgX_normalize1 8667
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 437258
ZX_Uspensky 29282
ZX_Uspensky_cst_pol 4249
ZX_Uspensky_equal 28
ZX_graeffe 6566
ZX_sturm 15589
ZX_sturmpart 2281
_gen_nored 2332716
_gen_one 2666072
_gen_zero 28879
_intervalcmp 0
_mp_add 13284888
_mp_cmul 14919361
_mp_mul 2968144
_mp_sqr 2833704
_mp_sub 0
a_posteriori_errors 31896
abs_update 995876
abs_update_r 47814
addCC 13152435
all_roots 31542
append_clone 109103
bkeval_single_power 831676
check_ab 8450
checkbound 4674
checkvalidpol 9564
clean_roots 31549
cleanroots 147
cmp_complex_appr 226289
conformal_mapping 32465
conformal_pol 97395
cook_square 7434406
dblexp 554202
dbllog2 26139231
dbllog2mp 6810840
dft 37882
dual_modulus 77391
eval_rel_pol 1147030
fft 2158306
findpower 2893253
fix_roots 31896
fix_roots1 20655
fujiwara_bound 120283
fujiwara_bound_real 24114
graeffe 3717203
homothetie 129177
homothetie2n 792440
homothetie_gauss 2583440
ind_maxlog2 64124
initdft 73410
isexactpol 4621
isexactscalar 7585
isreal 67993
isvalidcoeff 69527
karasquare 7856779
logmax_modulus 309813
logmin_modulus 108858
logmodulus 52843
logpre_modulus 52843
logradius 35528
lower_bound 2893253
mulCC 25229869
mydbllog2i 19852885
mydbllog2r 10229448
mydbllogr 1115232
mygprec 5886263
mygprec_absolute 337272
mygprec_special 31896
mygprecrc 23610902
mygprecrc_special 182602
myshiftic 12223541
myshiftrc 3261695
newton_polygon 482627
optimize_split 35528
parameters 35528
pol_to_gaussint 1456843
polgraeffe 14
polmod_to_embed 77
polrootsbound 4943
polrootsbound_i 4936
polsolve 28538
quicktofp 501363
realroots 6169
refine_F 37882
refine_H 191358
root_error 139128
roots 4502
roots_aux 4649
roots_com 4621
rootsdeg0 35
scalepol 301374
scalepol2n 0
set_karasquare_limit 3717203
solve_exact_pol 890
split_0 35663
split_0_1 32600
split_0_2 32600
split_1 32465
split_2 35528
split_complete 103222
split_fromU 35528
split_pols 28538
splitcauchy 28538
splitpoleval 831676
sqrCC 21669463
tocomplex 102019
update_radius 35528
usp 25490

Generated by: LCOV version 1.11