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 - FpXX.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.10.0 lcov report (development 21064-a7054ad) Lines: 817 899 90.9 %
Date: 2017-09-25 06:24:50 Functions: 101 106 95.3 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpXQXM_FpXQX_mul2 68
FpXQXM_mul2 56
FpXQXQ_autpow 166
FpXQXQ_autpow_mul 29
FpXQXQ_autpow_sqr 166
FpXQXQ_autsum 1113
FpXQXQ_autsum_mul 1167
FpXQXQ_autsum_sqr 1113
FpXQXQ_auttrace 8
FpXQXQ_auttrace_mul 1
FpXQXQ_auttrace_sqr 1
FpXQXQ_div 0
FpXQXQ_inv 21
FpXQXQ_invsafe 21
FpXQXQ_matrix_pow 0
FpXQXQ_minpoly 8
FpXQXQ_mul 32392
FpXQXQ_pow 1359
FpXQXQ_powers 1320
FpXQXQ_sqr 130712
FpXQXQ_transmul 40
FpXQXQ_transmul_init 16
FpXQXV_FpXQX_fromdigits 189
FpXQXV_prod 109
FpXQX_FpXQXM_qmul 56
FpXQX_FpXQXQV_eval 2618
FpXQX_FpXQXQ_eval 218
FpXQX_FpXQ_mul 152695
FpXQX_addmulmul 136
FpXQX_digits 588
FpXQX_div_by_X_x 5957
FpXQX_divrem 199263
FpXQX_divrem_Barrett_noGC 47083
FpXQX_divrem_Barrettspec 47545
FpXQX_divrem_basecase 122690
FpXQX_dotproduct 68
FpXQX_extgcd 5901
FpXQX_extgcd_basecase 0
FpXQX_extgcd_halfgcd 0
FpXQX_gcd 11223
FpXQX_gcd_basecase 1895
FpXQX_get_red 8586
FpXQX_halfgcd 132
FpXQX_halfgcd_basecase 76
FpXQX_halfgcd_i 132
FpXQX_halfgcd_split 56
FpXQX_invBarrett 1318
FpXQX_invBarrett_Newton 182
FpXQX_invBarrett_basecase 979
FpXQX_mul 302525
FpXQX_mulspec 399925
FpXQX_powu 182
FpXQX_recipspec 48
FpXQX_red 160518
FpXQX_rem 184821
FpXQX_sqr 133393
FpXQX_to_mod 42
FpXQXn_mul 32
FpXX_FpX_mul 36877
FpXX_FpX_mulspec 42933
FpXX_Fp_mul 63996
FpXX_add 403031
FpXX_deriv 270117
FpXX_mulu 51908
FpXX_neg 471
FpXX_recipspec 95090
FpXX_red 32515
FpXX_sub 13872
FpXX_subspec 47545
FpXYQQ_mul 42
FpXYQQ_pow 28
FpXYQQ_redswap 112
FpXYQQ_sqr 70
FpXY_FpXQV_evalx 2676
FpXY_FpXQ_evalx 147
FpXY_FpY_mulspec 6056
FpXY_eval 12397
FpXY_evalx 55461
FpXY_evaly 16692
Fq_addmul 11914
Kronecker_to_FpXQX 522621
Kronecker_to_ZXX 99127
ZXX_copy 81
ZXX_is_ZX 133393
ZXX_is_ZX_spec 933243
ZXX_lgrenormalizespec 98555
ZXX_mul_Kronecker 250556
ZXX_sqr_Kronecker 3487
_FpXQXQ_cmul 36900
_FpXQXQ_mul 29864
_FpXQXQ_one 9340
_FpXQXQ_red 12352
_FpXQXQ_sqr 130712
_FpXQXQ_zero 68
_FpXQX_add 35233
_FpXQX_divrem 9905
_FpXQX_mul 2745
_FpXQX_sqr 2142
_FpXQX_sub 4109
get_FpXQXQ_algebra 495
get_FpXQX_algebra 42
get_FpXQX_red 384100
matid2_FpXQXM 0
polxn_FpXX 8
random_FpXQX 16
to_FlxqX 215446

Generated by: LCOV version 1.11