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.8.0 lcov report (development 19043-64ae2d8) Lines: 1513 1658 91.3 %
Date: 2016-06-25 Functions: 109 116 94.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 895 1071 83.6 %

Function Name Sort by function name Hit count Sort by hit count
CX_square_spec 5920887
FFT 0
FFTinit 0
QX_complex_roots 11938
RgX_addspec 206066
RgX_gtofp_bit 466169
RgX_normalize1 364
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 61506
ZX_Uspensky 9711
ZX_Uspensky_cst_pol 2191
ZX_Uspensky_equal 28
ZX_graeffe 5054
ZX_sturm 7063
ZX_sturmpart 798
_gen_nored 631044
_gen_one 735228
_gen_zero 9830
_intervalcmp 0
_mp_add 3091024
_mp_cmul 3573126
_mp_mul 653211
_mp_sqr 646503
_mp_sub 0
a_posteriori_errors 13294
abs_update 849684
abs_update_r 37958
addCC 12604994
all_roots 13101
append_clone 63790
bkeval_single_power 245966
check_ab 4300
checkbound 1736
checkvalidpol 1177
clean_roots 13108
cleanroots 147
cmp_complex_appr 167201
conformal_mapping 24270
conformal_pol 72810
cook_square 5510008
dblexp 427777
dbllog2 22501679
dbllog2mp 4398532
dft 28529
dual_modulus 58230
eval_rel_pol 879899
fft 2094407
findpower 2110774
fix_roots 13294
fix_roots1 7641
fujiwara_bound 77132
fujiwara_bound_real 9604
graeffe 2755004
homothetie 97662
homothetie2n 593948
homothetie_gauss 1885270
ind_maxlog2 48065
initdft 54893
isexactpol 1170
isexactscalar 3616
isreal 50634
isvalidcoeff 7074
karasquare 6128206
logmax_modulus 225504
logmax_modulus_bound 1715
logmin_modulus 79060
logmodulus 40281
logpre_modulus 40281
logradius 26364
lower_bound 2110774
mulCC 22986315
mydbllog2i 15714882
mydbllog2r 9385072
mydbllogr 941110
mygprec 4523470
mygprec_absolute 198966
mygprec_special 13294
mygprecrc 17652263
mygprecrc_special 98329
myshiftic 9549098
myshiftrc 2558657
newton_polygon 368444
optimize_split 26364
parameters 26364
pol_to_gaussint 1105403
polgraeffe 14
polmod_to_embed 77
polsolve 7390
quicktofp 371854
realroots 3502
refine_F 28529
refine_H 144042
root_error 84993
roots 1051
roots_aux 1198
roots_com 1170
rootsdeg0 35
scalepol 224712
scalepol2n 0
set_karasquare_limit 2755004
solve_exact_pol 806
split_0 26499
split_0_1 24405
split_0_2 24405
split_1 24270
split_2 26364
split_complete 66292
split_fromU 26364
split_pols 7390
splitcauchy 7390
splitpoleval 245966
sqrCC 17645935
tocomplex 59345
update_radius 26364
usp 8134

Generated by: LCOV version 1.9