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.16.1 lcov report (development 28880-3b5364847c) Lines: 1477 1513 97.6 %
Date: 2023-12-01 07:53:15 Functions: 158 159 99.4 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
lfun_get_dom 0
lfunthetacost0 21
sersplit1 42
lfuncost0 49
derservec 63
lfun_get_bitprec 77
checkconductor 84
lfunzeros 84
lfunzeros_i 84
ldata_get_k1 98
lfunconductor 98
parse_maxcond 98
lfununext 105
lfununextvec 105
derser 126
lfunthetainit 322
lfunser 357
lfunservec 357
ser_coeff0 385
Rtor 399
lfunthetaspec 406
lfuninit0 483
lfuncenterinit 525
lfunorderzero 525
Z_radical 560
znchargauss_i 560
lfunlambda 1008
ginvsqrtvec 1043
znchargauss 1218
lfunan 1274
der_level 1401
lfunlambda_product 1426
lfunlambda0 1463
lfunderiv 1575
gammafrac 1708
rfrac_degree 1799
theta_pole_contrib 1806
lfunprod_get_fact 2035
lfunlambdaord 2198
ldata_isreal 2280
lfunparams2 2856
lfunrootno 3325
get_eno 3374
gsubvec 3486
lfuncheckfeq_i 3528
polgammaeval 3640
lfuncheckfeq 3647
lfunrtopoles 3689
ropm1 3724
lfunrootres 3745
serpole 3878
rtoR 3920
simple_pole 3969
lfunsumcoth 4079
theta_add_polar_part 4235
normalizepoles 4536
gammaordinary 4739
normalize_simple_pole 4809
wrap2 5032
lfun_OK 5033
lfun_get_factgammavec 5033
lfun_get_Residue 5066
lfunpoleresidue 5066
fracgammadegree 5544
lfuninit_ab 5656
lfun_init_theta 5670
serisscalar 5747
serextendifnegint 5768
lfuninit_pol 5810
theta_get_R 5935
gamma_C 6363
lfuninit_make 6489
lfun0 6545
deg1ser_shallow 6706
lfun 6762
gdivvec 6881
wrap1 6888
theta_dual 6902
mkvroots 7133
theta_get_K 7133
residues_known 7371
lfunthetainit_i 7812
veccothderivn 8221
polepart 8340
gamma_R 8624
is_ser 8820
get_domain 9338
mulrealvec 10773
antwist 11004
mysercoeff 11749
condset 11962
lfuncost 12098
lfunhardyzeros 12507
ldata_get_type 12733
lfun_get_expot 13130
lfun_get_w2 13130
lfunhardy 13137
lfunrtoR 13454
lfunthetainit0 13454
prec_fix 13454
ldata_get_degree 13809
fracgammaeval 14000
gammafactproduct 14000
lfuninit_theta2_worker 14508
isnegint 14728
lfunrtoR_eno 15106
gammafactor 15225
lfunrtoR_i 15568
checklfuninit 16084
sdomain_isincl 16084
domain_get_der 16560
lfunp_set 17768
sumVgaimpos 17768
gmulvec 21199
lfun_get_pol 21598
lfun_get_step 21598
lfuninit 22412
domain_get_bitprec 22524
lfunlambda_OK 23024
vgaell 30047
lfun_get_k2 34329
ldata_get_dual 35413
theta1 37170
lfuninit_worker 37297
domain_get_dom 37710
lfun_get_domain 38235
ldata_get_an 42021
lfuntheta 46952
theta_get_an 47239
theta_get_tdom 48611
worker_init 51803
theta_get_isqrtN 52601
lfunthetacheckinit 54169
lfunthetacost 56696
theta_get_bitprec 60608
ldata_get_rootno 68164
get_cone_fuzz 70136
Vgaeasytheta 71774
gammavec_expo 74457
ldata_get_k1_dbl 74464
sumVga 80946
theta_get_m 91552
linit_get_type 93074
parse_dom 93132
ldata_get_k 99421
get_cone 118747
ldata_get_residue 128549
linit_get_ldata 139330
theta2 148346
theta2_i 154040
an_msum 155075
is_linit 167565
ldata_get_conductor 170651
linit_get_tech 175415
mulT 191210
ldata_get_gammavec 238344
mul_an 11136305
get_an 14711879
vecan_cmul 28281777

Generated by: LCOV version 1.14