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 20296-0a10b35) Lines: 1512 1660 91.1 %
Date: 2017-02-26 05:50:47 Functions: 110 117 94.0 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
CX_square_spec 5816279
FFT 0
FFTinit 0
QX_complex_roots 12145
RgX_addspec 119608
RgX_gtofp_bit 473953
RgX_normalize1 2185
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 78331
ZX_Uspensky 11914
ZX_Uspensky_cst_pol 2401
ZX_Uspensky_equal 28
ZX_graeffe 5474
ZX_sturm 7532
ZX_sturmpart 2274
_gen_nored 1322535
_gen_one 1467923
_gen_zero 13335
_intervalcmp 0
_mp_add 11309095
_mp_cmul 12158966
_mp_mul 2481407
_mp_sqr 2296347
_mp_sub 0
a_posteriori_errors 13489
abs_update 796484
abs_update_r 38222
addCC 11016704
all_roots 13294
append_clone 65245
bkeval_single_power 431603
check_ab 6181
checkbound 4660
checkvalidpol 3061
clean_roots 13301
cleanroots 147
cmp_complex_appr 171986
conformal_mapping 24332
conformal_pol 72996
cook_square 5577700
dblexp 426860
dbllog2 21703185
dbllog2mp 4687350
dft 28927
dual_modulus 58730
eval_rel_pol 888097
fft 1813404
findpower 2140413
fix_roots 13489
fix_roots1 7726
fujiwara_bound 80828
fujiwara_bound_real 11876
graeffe 2788850
homothetie 98925
homothetie2n 604124
homothetie_gauss 1911523
ind_maxlog2 47960
initdft 55731
isexactpol 1156
isexactscalar 3770
isreal 51136
isvalidcoeff 29900
karasquare 5936524
logmax_modulus 228890
logmin_modulus 80580
logmodulus 41079
logpre_modulus 41079
logradius 26804
lower_bound 2140413
mulCC 20686670
mydbllog2i 14972387
mydbllog2r 9488193
mydbllogr 887590
mygprec 4486791
mygprec_absolute 203995
mygprec_special 13489
mygprecrc 17599983
mygprecrc_special 100768
myshiftic 9464995
myshiftrc 2560156
newton_polygon 375234
optimize_split 26804
parameters 26804
pol_to_gaussint 1116987
polgraeffe 14
polmod_to_embed 77
polrootsbound 1905
polrootsbound_i 1898
polsolve 12281
quicktofp 386125
realroots 3907
refine_F 28927
refine_H 143300
root_error 87167
roots 1037
roots_aux 1184
roots_com 1156
rootsdeg0 35
scalepol 226404
scalepol2n 0
set_karasquare_limit 2788850
solve_exact_pol 869
split_0 26939
split_0_1 24467
split_0_2 24467
split_1 24332
split_2 26804
split_complete 67367
split_fromU 26804
split_pols 12281
splitcauchy 12281
splitpoleval 431603
sqrCC 16838046
tocomplex 58523
update_radius 26804
usp 9843

Generated by: LCOV version 1.11