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-bordeaux1.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 16791-0d1274a) Lines: 1520 1672 90.9 %
Date: 2014-09-16 Functions: 108 114 94.7 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 862 1041 82.8 %

Function Name Sort by function name Hit count Sort by hit count
CX_square_spec 3259635
FFT 0
FFTinit 0
QX_complex_roots 6067
RUgen 65951
RgX_addspec 56278
RgX_gtofp_bit 263973
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 34015
ZX_graeffe 3200
ZX_sturm 2560
ZX_sturmpart 70
ZX_uspensky 4024
_gen_nored 318573
_gen_one 373024
_gen_zero 4979
_intervalcmp 0
_mp_add 1168504
_mp_cmul 1415767
_mp_mul 256336
_mp_sqr 261486
a_posteriori_errors 6736
abs_update 436812
abs_update_r 22024
addCC 5990062
all_roots 6618
append_clone 34967
bkeval_single_power 126121
check_ab 1499
checkbound 210
checkvalidpol 556
clean_roots 6618
cleanroots 115
cmp_complex_appr 97650
conformal_mapping 13853
conformal_pol 41559
cook_square 3147424
dblexp 241828
dbllog2 12244585
dbllog2mp 2433662
dft 16319
dual_modulus 33106
eval_rel_pol 498683
fft 1022709
findpower 1211059
fix_roots 6736
fix_roots1 3849
fujiwara_bound 46380
fujiwara_bound_real 4545
graeffe 1573712
homothetie 55556
homothetie2n 338826
homothetie_gauss 1081457
ind_maxlog2 26678
initRU 31532
initRUgen 2887
isexactpol 551
isexactscalar 1699
isreal 29066
isvalidcoeff 2334
karasquare 3316258
logmax_modulus 129602
logmax_modulus_bound 320
logmin_modulus 45766
logmodulus 23035
logpre_modulus 23035
logradius 15213
lower_bound 1211059
mulCC 11343560
mydbllog2i 8835655
mydbllog2r 4860838
mydbllogr 488540
mygprec 2592047
mygprec_absolute 108863
mygprec_special 6736
mygprecrc 9724382
mygprecrc_special 54069
myreal_1 248078
myshiftic 5309719
myshiftrc 1448647
newton_polygon 209224
optimize_split 15213
parameters 15213
pol_to_gaussint 628285
polgraeffe 10
polmod_to_embed 55
polsolve 3775
quicktofp 219864
realroots 1429
refine_F 16319
refine_H 82397
root_error 47303
roots 456
roots_aux 571
roots_com 551
rootsdeg0 25
scalepol 128757
scalepol2n 0
set_karasquare_limit 1573712
solve_exact_pol 381
split_0 15213
split_0_1 13853
split_0_2 13853
split_1 13853
split_2 15213
split_complete 37162
split_fromU 15213
split_polynoms 3775
splitpoleval 126121
sqrCC 9382785
tocomplex 30772
update_radius 15213
usp 3915

Generated by: LCOV version 1.9