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 21925-0da0e71) Lines: 1519 1661 91.5 %
Date: 2018-02-21 06:16:18 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 168
solve_exact_pol 918
ZX_sturmpart 2281
ZX_Uspensky_cst_pol 4165
checkbound 4674
polrootsbound_i 5342
polrootsbound 5349
realroots 6106
ZX_graeffe 7343
roots 7935
isexactpol 8075
roots_com 8075
roots_aux 8103
check_ab 8387
isexactscalar 11459
RgX_normalize1 12499
checkvalidpol 13431
ZX_sturm 15344
fujiwara_bound_real 24793
fix_roots1 25056
usp 26218
QX_complex_roots 28164
ZX_Uspensky 28960
polsolve 29231
split_pols 29231
splitcauchy 29231
_gen_zero 31351
all_roots 36204
clean_roots 36239
conformal_mapping 36352
split_1 36352
split_0_1 36487
split_0_2 36487
a_posteriori_errors 36756
fix_roots 36756
mygprec_special 36756
logradius 39569
optimize_split 39569
parameters 39569
split_2 39569
split_fromU 39569
update_radius 39569
split_0 39704
dft 41951
refine_F 41951
abs_update_r 52088
logmodulus 57149
logpre_modulus 57149
ind_maxlog2 71732
isreal 75921
initdft 81520
dual_modulus 85554
isvalidcoeff 97629
conformal_pol 109056
tocomplex 113579
split_complete 116164
append_clone 122830
logmin_modulus 122954
fujiwara_bound 126282
homothetie 141618
root_error 153833
refine_H 213339
mygprecrc_special 214091
cmp_complex_appr 239462
scalepol 336819
logmax_modulus 347762
mygprec_absolute 369678
X2XP1 440142
newton_polygon 521482
quicktofp 522777
dblexp 604109
RgX_gtofp_bit 672989
bkeval_single_power 849455
splitpoleval 849455
homothetie2n 869244
abs_update 1048896
mydbllogr 1180273
eval_rel_pol 1244773
pol_to_gaussint 1592535
fft 2220684
_gen_nored 2365802
_gen_one 2711194
_mp_sqr 2844217
homothetie_gauss 2893414
_mp_mul 2971674
findpower 3241176
lower_bound 3241176
myshiftrc 3500594
graeffe 4124365
set_karasquare_limit 4124365
mygprec 6445434
dbllog2mp 7772238
cook_square 8248730
CX_square_spec 8530025
karasquare 8671649
mydbllog2r 10807198
myshiftic 13218800
_mp_add 13313471
addCC 13337244
_mp_cmul 14981030
mydbllog2i 21759573
sqrCC 23381257
mygprecrc 25717951
mulCC 26041495
dbllog2 28117515

Generated by: LCOV version 1.11