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 19350-bd5f220) Lines: 1508 1658 91.0 %
Date: 2016-08-24 06:11:24 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 5906807
FFT 0
FFTinit 0
QX_complex_roots 11302
RgX_addspec 206066
RgX_gtofp_bit 466718
RgX_normalize1 364
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 61611
ZX_Uspensky 9774
ZX_Uspensky_cst_pol 2198
ZX_Uspensky_equal 28
ZX_graeffe 4935
ZX_sturm 7105
ZX_sturmpart 798
_gen_nored 632087
_gen_one 736660
_gen_zero 9965
_intervalcmp 0
_mp_add 3092137
_mp_cmul 3575282
_mp_mul 653339
_mp_sqr 646892
_mp_sub 0
a_posteriori_errors 12658
abs_update 848288
abs_update_r 38050
addCC 12610143
all_roots 12465
append_clone 63028
bkeval_single_power 246555
check_ab 4321
checkbound 1736
checkvalidpol 1177
clean_roots 12472
cleanroots 147
cmp_complex_appr 166664
conformal_mapping 24274
conformal_pol 72822
cook_square 5495928
dblexp 427739
dbllog2 22733063
dbllog2mp 4336954
dft 28527
dual_modulus 58069
eval_rel_pol 880212
fft 2098374
findpower 2102508
fix_roots 12658
fix_roots1 7414
fujiwara_bound 76584
fujiwara_bound_real 9639
graeffe 2747964
homothetie 97603
homothetie2n 594011
homothetie_gauss 1877939
ind_maxlog2 47882
initdft 54832
isexactpol 1170
isexactscalar 3616
isreal 50579
isvalidcoeff 7074
karasquare 6114126
logmax_modulus 224569
logmax_modulus_bound 1757
logmin_modulus 78622
logmodulus 40369
logpre_modulus 40369
logradius 26305
lower_bound 2102508
mulCC 22993458
mydbllog2i 15877975
mydbllog2r 9421462
mydbllogr 939844
mygprec 4516465
mygprec_absolute 197401
mygprec_special 12658
mygprecrc 17606904
mygprecrc_special 96548
myshiftic 9534049
myshiftrc 2561933
newton_polygon 369442
optimize_split 26305
parameters 26305
pol_to_gaussint 1104781
polgraeffe 14
polmod_to_embed 77
polsolve 7411
quicktofp 370801
realroots 3523
refine_F 28527
refine_H 143841
root_error 83848
roots 1051
roots_aux 1198
roots_com 1170
rootsdeg0 35
scalepol 224559
scalepol2n 0
set_karasquare_limit 2747964
solve_exact_pol 806
split_0 26440
split_0_1 24409
split_0_2 24409
split_1 24274
split_2 26305
split_complete 65538
split_fromU 26305
split_pols 7411
splitcauchy 7411
splitpoleval 246555
sqrCC 17626523
tocomplex 59107
update_radius 26305
usp 8169

Generated by: LCOV version 1.11