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 - base4.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.12.0 lcov report (development 23339-b1c33c51a) Lines: 1414 1562 90.5 %
Date: 2018-12-11 05:41:34 Functions: 141 155 91.0 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
ZV_cba 0
ZV_cba_extend 0
Z_dcba_rec 0
Z_ppgle 0
famat_Z_gcd 0
famat_to_nf 0
idealHNF_Z_factor 0
idealapprfact 0
nfdivmodpr 0
nfkermodpr 0
nfpowmodpr 0
nfsolvemodpr 0
to_famat 0
vecinv 0
err_divexact 7
famat_div_shallow 7
hnf_QC_QC 7
idealmin 7
nfmulmodpr 7
vec_mulid 7
idealappr 14
idealappr0 14
not_in_ideal 14
chk_vdir 21
hnf_Q_Q 21
hnf_Z_QC 21
idealintersect 21
mat_ideal_two_elt2 21
hnf_Q_QC 28
hnf_Z_ZC 28
in_ideal 28
trivial_merge 28
idealaddmultoone 35
idealpow0 42
idealtwoelt2 42
idealdiv0 49
idealmul0 56
idealtwoelt0 63
idealaddtoone0 70
idealcoprime 70
isideal 91
idealaddtoone 98
idealispower 105
idealhnf0 126
gpidealfactor 140
idealsqrtn_int 182
nf_coprime_part 273
idealprodprime 329
famat_to_Fp_coprime 621
idealprod 805
vecdiv 903
idealdivexact 1330
idealredmodpower 1687
ext_pow 1888
famat_pow 1888
idealprodval 1953
idealredmodpower_i 3360
Q_nffactor 3773
prV_e_muls 3801
famat_pows_shallow 3961
nf_to_Fp_coprime 4026
to_Fp_coprime 4741
pr_inv 5042
idealhnf 5068
famat_mulpows_shallow 6216
gpidealval 6573
idealnorm 7406
_mul 8846
make_integral 9044
factorbackprime 10514
famatsmall_reduce 14676
vecpow 16023
ext_inv 16149
famat_inv 16310
famat_sqr 16458
idealmulred 16616
famat_to_nf_moddivisor 18977
idealaddtoone_i 19348
idealcoprimefact 20111
pr_uniformizer 22253
addmul_mat 23248
pr_inv_p 25312
_idealmulred 25462
nf_get_Gtwist1 26952
twistG 26994
ext_sqr 27035
_idealsqrred 27049
_sqr 27049
idealsqr 27070
idealsqr_aux 27070
famat_inv_shallow 27993
idealdivpowprime 28364
idealapprfact_i 28474
idealdiv 28665
idealpows 29008
append 29899
famat_reduce 31871
idealsqrprime 39554
RM_round_maxrank 44039
addmul_col 52519
idealpowred 52691
prV_lcm_capZ 54227
idealHNF_factor 55704
idealtwoelt 55822
idealHNF_Z_factor_i 56537
idealHNF_factor_i 56537
idealfactor 57426
idealnumden 57706
idealfactor_limit 59519
ZM_famat_limit 59570
idealadd 61320
famat_pow_shallow 62503
famat_mulpow_shallow 62636
p_makecoprime 64393
idealHNF_inv 67437
get_random_a 73086
famat_add 78058
famat_mul_shallow 83648
famat_mul 84852
idealinv 109074
famat_makecoprime 118997
ext_mul 119593
idealmulpowprime 126253
ok_elt 139224
idealaddtoone_raw 142081
idealhnf_two 145797
zk_pvalrem 145972
idealred0 148906
nf_get_Gtwist 148913
idealpowprime 153265
_idealaddtoone 161426
mat_ideal_two_elt 179268
idealHNF_inv_Z 188119
idealpow 197037
idealpow_aux 197037
vecmul 200228
idealmulelt 228120
idealHNF_norm_pval 237496
idealHNF_val 257358
idealhnf_principal 274452
nf_remove_denom_p 276536
Z_cba 344778
idealhnf_shallow 358892
Z_ppio 454020
idealval 538109
Z_ppo 803020
to_famat_shallow 892988
idealHNF_mul 963637
idealmul 1328440
idealmul_aux 1328440
pr_hnf 1902709
idealHNF_mul_two 1971286
Z_cba_rec 3069766
idealtyp 4717297
u_ppo 33354050

Generated by: LCOV version 1.13