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 22344-f2bf0a3) Lines: 1519 1661 91.5 %
Date: 2018-04-25 06:16:49 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 9061642
FFT 0
FFTinit 0
QX_complex_roots 29099
RgX_gtofp_bit 710873
RgX_normalize1 12805
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 447709
ZX_Uspensky 29485
ZX_Uspensky_cst_pol 4270
ZX_Uspensky_equal 28
ZX_graeffe 7392
ZX_sturm 15673
ZX_sturmpart 2295
_gen_nored 2371488
_gen_one 2716640
_gen_zero 31237
_intervalcmp 0
_mp_add 13315654
_mp_cmul 14986797
_mp_mul 2972409
_mp_sqr 2845906
_mp_sub 0
a_posteriori_errors 37752
abs_update 1102240
abs_update_r 53988
addCC 14250083
all_roots 37214
append_clone 127809
bkeval_single_power 851190
check_ab 8611
checkbound 4702
checkvalidpol 13772
clean_roots 37249
cleanroots 196
cmp_complex_appr 249302
conformal_mapping 38622
conformal_pol 115866
cook_square 8774642
dblexp 640804
dbllog2 30613242
dbllog2mp 8692522
dft 44247
dual_modulus 90087
eval_rel_pol 1315409
fft 2322358
findpower 3457953
fix_roots 37752
fix_roots1 25633
fujiwara_bound 128490
fujiwara_bound_real 25031
graeffe 4387321
homothetie 149420
homothetie2n 922377
homothetie_gauss 3086976
ind_maxlog2 75023
initdft 86119
isexactpol 8150
isexactscalar 11611
isreal 80494
isvalidcoeff 100328
karasquare 9206591
logmax_modulus 370977
logmin_modulus 131396
logmodulus 60464
logpre_modulus 60464
logradius 41872
lower_bound 3457953
mulCC 27843228
mydbllog2i 23460332
mydbllog2r 12076310
mydbllogr 1241837
mygprec 6943525
mygprec_absolute 385174
mygprec_special 37752
mygprecrc 28210166
mygprecrc_special 220774
myshiftic 14215025
myshiftrc 3751719
newton_polygon 551400
optimize_split 41872
parameters 41872
pol_to_gaussint 1686386
polgraeffe 14
polmod_to_embed 84
polrootsbound 5615
polrootsbound_i 5608
polsolve 29224
quicktofp 534476
realroots 6316
refine_F 44247
refine_H 236650
root_error 159406
roots 7982
roots_aux 8178
roots_com 8150
rootsdeg0 35
scalepol 357348
scalepol2n 0
set_karasquare_limit 4387321
solve_exact_pol 953
split_0 42007
split_0_1 38757
split_0_2 38757
split_1 38622
split_2 41872
split_complete 121766
split_fromU 41872
split_pols 29224
splitcauchy 29224
splitpoleval 851190
sqrCC 24920224
tocomplex 118400
update_radius 41872
usp 26379

Generated by: LCOV version 1.11