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 - FpXX.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.12.0 lcov report (development 23008-54b2e2f01) Lines: 826 983 84.0 %
Date: 2018-09-20 05:37:46 Functions: 101 114 88.6 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpXQXQ_div 0
FpXQXQ_matrix_pow 0
FpXQX_extgcd_basecase 0
FpXQX_extgcd_halfgcd 0
FpXQX_mulhigh_i 0
FpXQXn_exp 0
FpXQXn_inv 0
FpXQXn_mulhigh 0
FpXQXn_sqr 0
FpXX_halve 0
FpXX_integ 0
FpXXn_red 0
matid2_FpXQXM 0
FpXQXQ_auttrace_mul 1
FpXQXQ_auttrace_sqr 1
FpXQXQ_auttrace 8
FpXQXQ_minpoly 8
polxn_FpXX 8
FpXQXQ_transmul_init 16
random_FpXQX 16
FpXQXQ_inv 21
FpXQXQ_invsafe 21
FpXQXn_mul 32
FpXQX_powu 35
FpXQXQ_transmul 40
get_FpXQX_algebra 42
FpXQX_recipspec 48
FpXQXM_mul2 56
FpXQX_FpXQXM_qmul 56
FpXQX_halfgcd_split 56
FpXQXM_FpXQX_mul2 68
FpXQX_dotproduct 68
_FpXQXQ_zero 68
FpXQX_halfgcd_basecase 76
FpXQX_to_mod 77
ZXX_copy 81
FpXQXQ_autpow_mul 85
FpXQX_halfgcd 132
FpXQX_halfgcd_i 132
FpXQX_addmulmul 136
FpXQXV_prod 137
FpXY_FpXQ_evalx 147
FpXQX_invBarrett_Newton 182
FpXYQQ_pow 182
FpXQXV_FpXQX_fromdigits 189
FpXYQQ_mul 196
FpXQXQ_autpow 231
FpXQXQ_autpow_sqr 245
FpXYQQ_sqr 280
FpXQX_FpXQXQ_eval 353
FpXX_neg 471
FpXYQQ_redswap 476
FpXQX_digits 588
get_FpXQXQ_algebra 628
FpXQXQ_autsum 1120
FpXQXQ_autsum_sqr 1134
FpXQXQ_autsum_mul 1174
FpXQXQ_powers 1403
FpXQXQ_pow 1431
_FpXQX_sqr 1925
ZXX_sqr_Kronecker 2086
FpXQX_FpXQXQV_eval 2629
_FpXQX_mul 2689
FpXY_FpXQV_evalx 2825
FpXQX_invBarrett_basecase 2865
FpXQX_invBarrett 3068
FpXQX_gcd_basecase 3290
_FpXQX_sub 4088
FpXQX_extgcd 5866
FpXQX_div_by_X_x 5936
FpXY_FpY_mulspec 8542
FpXQX_get_red 9162
FpXX_deriv 9502
_FpXQXQ_one 9729
_FpXQX_divrem 9905
Fq_addmul 11872
_FpXQXQ_red 12420
FpXQX_gcd 12772
FpXX_sub 13294
FpXY_eval 13909
FpXY_evaly 18834
_FpXQXQ_mul 30537
FpXX_red 32606
FpXQXQ_mul 32647
_FpXQX_add 34846
FpXX_FpX_mul 36636
_FpXQXQ_cmul 36659
FpXX_FpX_mulspec 45178
FpXY_evalx 48083
FpXQX_divrem_Barrett_noGC 50088
FpXX_mulu 50368
FpXX_Fp_mul 64248
Kronecker_to_ZXX 93254
FpXQX_divrem_Barrettspec 118022
FpXX_subspec 118022
FpXQX_divrem_basecase 124709
FpXQXQ_sqr 137897
_FpXQXQ_sqr 137897
FpXQX_sqr 141019
ZXX_is_ZX 141051
ZXX_mul_Kronecker 146839
FpXQX_red 171336
FpXQX_rem 190322
FpXQX_divrem 199139
to_FlxqX 213139
FpXX_recipspec 236044
ZXX_lgrenormalizespec 239509
FpXQX_FpXQ_mul 239730
FpXQX_mul 301729
get_FpXQX_red 389477
FpXX_add 397520
FpXQX_mulspec 540083
Kronecker_to_FpXQX 668961
ZXX_is_ZX_spec 1221217

Generated by: LCOV version 1.13