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 21940-9a7b1a1) Lines: 1519 1661 91.5 %
Date: 2018-02-22 06:15:58 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 8521309
FFT 0
FFTinit 0
QX_complex_roots 28044
RgX_gtofp_bit 672327
RgX_normalize1 12501
RgX_s_mulspec 0
RgX_shiftspec 0
X2XP1 440018
ZX_Uspensky 28891
ZX_Uspensky_cst_pol 4165
ZX_Uspensky_equal 28
ZX_graeffe 7343
ZX_sturm 15344
ZX_sturmpart 2281
_gen_nored 2359535
_gen_one 2702749
_gen_zero 31012
_intervalcmp 0
_mp_add 13310902
_mp_cmul 14972194
_mp_mul 2971540
_mp_sqr 2842039
_mp_sub 0
a_posteriori_errors 36638
abs_update 1048416
abs_update_r 52012
addCC 13331478
all_roots 36086
append_clone 122563
bkeval_single_power 846152
check_ab 8318
checkbound 4674
checkvalidpol 13433
clean_roots 36121
cleanroots 168
cmp_complex_appr 239276
conformal_mapping 36308
conformal_pol 108924
cook_square 8240014
dblexp 603521
dbllog2 28097444
dbllog2mp 7769090
dft 41907
dual_modulus 85464
eval_rel_pol 1243661
fft 2219924
findpower 3237521
fix_roots 36638
fix_roots1 24959
fujiwara_bound 125865
fujiwara_bound_real 24683
graeffe 4120007
homothetie 141476
homothetie2n 868371
homothetie_gauss 2890158
ind_maxlog2 71652
initdft 81432
isexactpol 8077
isexactscalar 11461
isreal 75833
isvalidcoeff 97637
karasquare 8662933
logmax_modulus 347363
logmin_modulus 122785
logmodulus 57097
logpre_modulus 57097
logradius 39525
lower_bound 3237521
mulCC 26026507
mydbllog2i 21740409
mydbllog2r 10803501
mydbllogr 1179651
mygprec 6426658
mygprec_absolute 368827
mygprec_special 36638
mygprecrc 25656744
mygprecrc_special 213685
myshiftic 13206857
myshiftrc 3497504
newton_polygon 521008
optimize_split 39525
parameters 39525
pol_to_gaussint 1591024
polgraeffe 14
polmod_to_embed 84
polrootsbound 5349
polrootsbound_i 5342
polsolve 29114
quicktofp 521605
realroots 6037
refine_F 41907
refine_H 212282
root_error 153545
roots 7937
roots_aux 8105
roots_com 8077
rootsdeg0 35
scalepol 336423
scalepol2n 0
set_karasquare_limit 4120007
solve_exact_pol 918
split_0 39660
split_0_1 36443
split_0_2 36443
split_1 36308
split_2 39525
split_complete 115958
split_fromU 39525
split_pols 29114
splitcauchy 29114
splitpoleval 846152
sqrCC 23360973
tocomplex 113335
update_radius 39525
usp 26108

Generated by: LCOV version 1.11