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 23008-54b2e2f01) Lines: 1511 1650 91.6 %
Date: 2018-09-20 05:37:46 Functions: 109 116 94.0 %
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
ZX_Uspensky_cst_pol 5264
polrootsbound_i 5685
polrootsbound 5692
ZX_graeffe 7490
roots 8157
isexactpol 8346
roots_com 8346
roots_aux 8374
isexactscalar 12199
RgX_normalize1 12945
checkvalidpol 14045
ZX_sturm 15869
fix_roots1 25881
QX_complex_roots 29640
_gen_zero 33548
all_roots 37951
clean_roots 37986
a_posteriori_errors 38515
fix_roots 38515
mygprec_special 38515
conformal_mapping 38907
split_1 38907
split_0_1 39042
split_0_2 39042
logradius 42239
optimize_split 42239
parameters 42239
split_2 42239
split_fromU 42239
update_radius 42239
split_0 42374
realroots 43514
dft 44642
refine_F 44642
check_ab 45961
abs_update_r 54918
logmodulus 60996
logpre_modulus 60996
fujiwara_bound_real 62822
usp 64044
polsolve 67913
split_pols 67913
splitcauchy 67913
ZX_Uspensky 68494
ind_maxlog2 75587
checkbound 78758
isreal 81146
initdft 86881
dual_modulus 90802
isvalidcoeff 101322
conformal_pol 116721
tocomplex 120936
split_complete 123263
append_clone 129692
logmin_modulus 132231
homothetie 150653
root_error 162470
fujiwara_bound 167991
mygprecrc_special 224615
refine_H 238008
cmp_complex_appr 253226
scalepol 360159
logmax_modulus 373602
mygprec_absolute 392602
X2XP1 495276
newton_polygon 556292
dblexp 639964
quicktofp 651092
RgX_gtofp_bit 717271
homothetie2n 929894
abs_update 1105204
mydbllogr 1245794
eval_rel_pol 1325528
pol_to_gaussint 1699130
bkeval_single_power 2225828
splitpoleval 2225828
fft 2333661
homothetie_gauss 3108596
_mp_mul 3179413
findpower 3482198
lower_bound 3482198
myshiftrc 3777367
_mp_sqr 4064365
graeffe 4418909
set_karasquare_limit 4418909
_gen_nored 5155106
_gen_one 6612019
mygprec 6995147
dbllog2mp 8585500
cook_square 8837818
CX_square_spec 9124818
karasquare 9269767
addCC 14266410
myshiftic 14294346
mydbllog2r 14459923
_mp_add 17532150
_mp_cmul 21950258
mydbllog2i 23547363
sqrCC 25064534
mulCC 27924506
mygprecrc 28251942
dbllog2 33020414

Generated by: LCOV version 1.13