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 to exceed 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.12.0 lcov report (development 23348-5caea72e3) Lines: 1512 1651 91.6 %
Date: 2018-12-14 05:41:32 Functions: 108 115 93.9 %
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 217
solve_exact_pol 1086
ZX_sturmpart 2447
polrootsbound_i 5699
polrootsbound 5706
ZX_Uspensky_cst_pol 6132
ZX_graeffe 7581
roots 8157
isexactpol 8346
roots_com 8346
roots_aux 8374
isexactscalar 12199
RgX_normalize1 12959
checkvalidpol 14059
ZX_sturm 19327
fix_roots1 29278
QX_complex_roots 34679
_gen_zero 34981
conformal_mapping 39950
split_1 39950
split_0_1 40085
split_0_2 40085
all_roots 42990
clean_roots 43025
logradius 43371
optimize_split 43371
parameters 43371
split_2 43371
split_fromU 43371
update_radius 43371
split_0 43506
a_posteriori_errors 43554
fix_roots 43554
mygprec_special 43554
realroots 44774
dft 45802
refine_F 45802
check_ab 47221
abs_update_r 56292
logmodulus 62739
logpre_modulus 62739
usp 68413
fujiwara_bound_real 68863
polsolve 69768
split_pols 69768
splitcauchy 69768
ZX_Uspensky 73135
ind_maxlog2 77490
checkbound 79318
isreal 83321
initdft 89173
dual_modulus 93186
isvalidcoeff 101504
conformal_pol 119850
split_complete 130566
tocomplex 133440
logmin_modulus 135914
append_clone 140022
homothetie 154713
root_error 175281
fujiwara_bound 182907
mygprecrc_special 242465
refine_H 244213
cmp_complex_appr 265732
scalepol 369813
logmax_modulus 384200
mygprec_absolute 430421
X2XP1 502641
newton_polygon 572344
dblexp 657090
quicktofp 690479
RgX_gtofp_bit 741892
homothetie2n 956544
abs_update 1138288
mydbllogr 1282737
eval_rel_pol 1362282
pol_to_gaussint 1746482
bkeval_single_power 2273449
splitpoleval 2273449
fft 2400093
_mp_mul 3189499
homothetie_gauss 3196441
findpower 3580641
lower_bound 3580641
myshiftrc 3890916
_mp_sqr 4099507
graeffe 4543027
set_karasquare_limit 4543027
_gen_nored 5252481
_gen_one 6740307
mygprec 7213678
cook_square 9086054
CX_square_spec 9380040
karasquare 9528482
addCC 14649060
myshiftic 14716441
mydbllog2r 14717031
_mp_add 17607061
_mp_cmul 22118978
mydbllog2i 24260199
sqrCC 25766204
mulCC 28697539
mygprecrc 29224416
dbllog2 42668385

Generated by: LCOV version 1.13