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 to exceed 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 - lfun.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.12.0 lcov report (development 23008-54b2e2f01) Lines: 1337 1403 95.3 %
Date: 2018-09-20 05:37:46 Functions: 138 139 99.3 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
lfun_get_dom 0
lfunthetacost0 14
lfun_get_bitprec 42
lfuncost0 42
lfunzeros 42
sersplit1 42
Rtor 56
checkconductor 84
lfunconductor 84
parse_maxcond 84
lfunthetaspec 91
derivnser 112
vecpowuu 112
ser_coeff0 210
lfunthetainit 259
lfuncenterinit 406
lfuninit0 406
lfunorderzero 427
Z_radical 588
znchargauss_i 588
znchargauss 805
lfunlambda 812
lfunan 819
der_level 1086
gammafrac 1099
lfunlambda0 1211
lfunderiv 1267
lfunlambda_product 1279
ldata_isreal 1706
lfunprod_get_fact 1797
lfunlambdaord 1834
powersshift 1939
lfuninit_vecc2_sum 2058
wrap2 2194
lfunrootres 2471
lfunparams2 2485
lfuninit_vecc_sum 2506
lfuncheckfeq 2562
theta_get_R 2663
lfun 3185
lfun0 3206
lfunsumcoth 3316
theta_pole_contrib 3675
lfunrootno 3787
get_eno 3822
ropm1 3843
lfun_OK 3962
lfun_get_factgammavec 3962
gammaordinary 4032
lfun_get_Residue 4205
lfunpoleresidue 4205
theta_add_polar_part 4270
lfuninit_vecc 4424
lfun_init_theta 4431
gamma_C 4459
lfuninit_pol 4564
lfuninit_make 5110
get_domain 5257
mkvroots 5267
theta_get_K 5267
simple_pole 5334
ldata_get_type 5530
normalize_simple_pole 5712
theta_dual 6321
wrap1 6473
lfunrtopoles 6482
rtoR 6531
veccothderivn 6639
polepart 6702
lfunthetainit_i 7000
normalizepoles 7273
fracgammadegree 7854
vecpowug 8342
condset 8667
residues_known 8883
antwist 9898
lfunhardyzeros 10344
lfuncost 10421
gamma_R 10801
lfun_get_expot 10834
lfun_get_w2 10834
lfunhardy 10841
ldata_get_degree 11079
lfunthetainit0 11417
mysercoeff 11721
checklfuninit 13340
sdomain_isincl 13340
deg1ser_shallow 13489
domain_get_der 13739
vgaell 13804
ldata_get_an 13839
lfunrtoR 13839
fracgammaeval 14497
gammafactproduct 14497
lfunparams 14852
isnegint 15260
gammafactor 15491
polgammaeval 15687
lfunrtoR_eno 16499
lfunrtoR_i 16576
lfun_get_pol 18077
lfun_get_step 18077
lfuninit 18247
domain_get_bitprec 18520
lfunlambda_OK 19356
theta1 25348
lfun_get_k2 28491
ldata_get_dual 28621
domain_get_dom 31445
lfun_get_domain 31858
lfuntheta 32320
theta_get_an 32446
theta_get_tdom 34707
theta_get_sqrtN 36737
lfunthetacheckinit 38613
lfunthetacost 39215
vgaeasytheta 39222
theta_get_bitprec 43479
ldata_get_rootno 44488
get_cone_fuzz 50618
gammavec_expo 54060
ldata_get_k1 54067
sumVga 59170
theta_get_m 64350
linit_get_type 72023
parse_dom 77686
get_cone 85325
ldata_get_k 89641
ldata_get_residue 103350
linit_get_ldata 106466
is_linit 109585
theta2 115175
ldata_get_conductor 122096
linit_get_tech 131299
mulT 140523
ldata_get_gammavec 169214
get_an 4673014
mul_an 11278649
vecan_cmul 23339281

Generated by: LCOV version 1.13