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 19828-fe528f7) Lines: 1508 1658 91.0 %
Date: 2016-12-07 05:49:12 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 5988646
FFT 0
FFTinit 0
QX_complex_roots 11718
RgX_addspec 194172
RgX_gtofp_bit 477845
RgX_normalize1 364
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 64610
ZX_Uspensky 10922
ZX_Uspensky_cst_pol 2240
ZX_Uspensky_equal 28
ZX_graeffe 4963
ZX_sturm 7308
ZX_sturmpart 1674
_gen_nored 641001
_gen_one 748942
_gen_zero 9505
_intervalcmp 0
_mp_add 3096052
_mp_cmul 3588801
_mp_mul 655049
_mp_sqr 649385
_mp_sub 0
a_posteriori_errors 13124
abs_update 861424
abs_update_r 38602
addCC 12484700
all_roots 12930
append_clone 64828
bkeval_single_power 251127
check_ab 5273
checkbound 3460
checkvalidpol 1226
clean_roots 12937
cleanroots 147
cmp_complex_appr 169709
conformal_mapping 24662
conformal_pol 73986
cook_square 5601170
dblexp 435098
dbllog2 21888975
dbllog2mp 4478554
dft 29168
dual_modulus 59340
eval_rel_pol 900263
fft 2129272
findpower 2139584
fix_roots 13124
fix_roots1 7643
fujiwara_bound 78905
fujiwara_bound_real 10947
graeffe 2800585
homothetie 99804
homothetie2n 606464
homothetie_gauss 1910940
ind_maxlog2 48722
initdft 55987
isexactpol 1219
isexactscalar 3812
isreal 51481
isvalidcoeff 7270
karasquare 6183686
logmax_modulus 228644
logmax_modulus_bound 1429
logmin_modulus 80113
logmodulus 41278
logpre_modulus 41278
logradius 26819
lower_bound 2139584
mulCC 22915060
mydbllog2i 15036656
mydbllog2r 9497750
mydbllogr 954690
mygprec 4591598
mygprec_absolute 203264
mygprec_special 13124
mygprecrc 17939668
mygprecrc_special 99150
myshiftic 9637209
myshiftrc 2601331
newton_polygon 377820
optimize_split 26819
parameters 26819
pol_to_gaussint 1128907
polgraeffe 14
polmod_to_embed 77
polsolve 7591
quicktofp 378544
realroots 3599
refine_F 29168
refine_H 146492
root_error 85984
roots 1100
roots_aux 1247
roots_com 1219
rootsdeg0 35
scalepol 228429
scalepol2n 0
set_karasquare_limit 2800585
solve_exact_pol 855
split_0 26954
split_0_1 24797
split_0_2 24797
split_1 24662
split_2 26819
split_complete 67032
split_fromU 26819
split_pols 7591
splitcauchy 7591
splitpoleval 251127
sqrCC 17775316
tocomplex 61096
update_radius 26819
usp 9138

Generated by: LCOV version 1.11