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.1 lcov report (development 22708-0f0e6fe44) Lines: 1514 1656 91.4 %
Date: 2018-06-18 05:36:21 Functions: 109 116 94.0 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FFT 0
FFTinit 0
RgX_s_mulspec 0
RgX_shiftspec 0
_intervalcmp 0
_mp_sub 0
scalepol2n 0
polgraeffe 14
ZX_Uspensky_equal 28
rootsdeg0 35
polmod_to_embed 84
cleanroots 203
solve_exact_pol 1086
ZX_sturmpart 2447
ZX_Uspensky_cst_pol 4172
checkbound 4922
polrootsbound_i 5671
polrootsbound 5678
realroots 6498
ZX_graeffe 7462
roots 8157
isexactpol 8332
roots_com 8332
roots_aux 8360
check_ab 8945
isexactscalar 12185
RgX_normalize1 12917
checkvalidpol 14017
ZX_sturm 15813
fujiwara_bound_real 25666
fix_roots1 25841
usp 26951
polsolve 29322
split_pols 29322
splitcauchy 29322
QX_complex_roots 29613
ZX_Uspensky 30351
_gen_zero 31362
all_roots 37910
clean_roots 37945
a_posteriori_errors 38448
fix_roots 38448
mygprec_special 38448
conformal_mapping 38882
split_1 38882
split_0_1 39017
split_0_2 39017
logradius 42186
optimize_split 42186
parameters 42186
split_2 42186
split_fromU 42186
update_radius 42186
split_0 42321
dft 44589
refine_F 44589
abs_update_r 54812
logmodulus 60956
logpre_modulus 60956
ind_maxlog2 75534
isreal 81068
initdft 86775
dual_modulus 90721
isvalidcoeff 101168
conformal_pol 116646
tocomplex 120802
split_complete 123090
append_clone 129532
fujiwara_bound 130724
logmin_modulus 132134
homothetie 150546
root_error 162244
mygprecrc_special 224322
refine_H 237796
cmp_complex_appr 252959
scalepol 359850
logmax_modulus 373309
mygprec_absolute 392004
X2XP1 450293
quicktofp 541223
newton_polygon 556010
dblexp 639520
RgX_gtofp_bit 716984
bkeval_single_power 853708
splitpoleval 853708
homothetie2n 929319
abs_update 1106500
mydbllogr 1247027
eval_rel_pol 1324947
pol_to_gaussint 1698256
fft 2335032
_gen_nored 2376399
_gen_one 2723251
_mp_sqr 2848212
_mp_mul 2973997
homothetie_gauss 3106283
findpower 3479592
lower_bound 3479592
myshiftrc 3775319
graeffe 4416043
set_karasquare_limit 4416043
mygprec 6990397
dbllog2mp 8585758
cook_square 8832086
CX_square_spec 9119086
karasquare 9264035
_mp_add 13321785
mydbllog2r 13925942
addCC 14276802
myshiftic 14289267
_mp_cmul 14997839
mydbllog2i 23537992
sqrCC 25056959
mulCC 27935253
mygprecrc 28241617
dbllog2 32586855

Generated by: LCOV version 1.13