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 22344-f2bf0a3) Lines: 827 984 84.0 %
Date: 2018-04-25 06:16:49 Functions: 101 114 88.6 %
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 222
FpXQXQ_autpow_mul 85
FpXQXQ_autpow_sqr 236
FpXQXQ_autsum 1120
FpXQXQ_autsum_mul 1174
FpXQXQ_autsum_sqr 1134
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 33358
FpXQXQ_pow 1422
FpXQXQ_powers 1411
FpXQXQ_sqr 137292
FpXQXQ_transmul 40
FpXQXQ_transmul_init 16
FpXQXV_FpXQX_fromdigits 189
FpXQXV_prod 137
FpXQX_FpXQXM_qmul 56
FpXQX_FpXQXQV_eval 2674
FpXQX_FpXQXQ_eval 344
FpXQX_FpXQ_mul 242253
FpXQX_addmulmul 136
FpXQX_digits 588
FpXQX_div_by_X_x 5936
FpXQX_divrem 198339
FpXQX_divrem_Barrett_noGC 50537
FpXQX_divrem_Barrettspec 118384
FpXQX_divrem_basecase 129285
FpXQX_dotproduct 68
FpXQX_extgcd 5761
FpXQX_extgcd_basecase 0
FpXQX_extgcd_halfgcd 0
FpXQX_gcd 12987
FpXQX_gcd_basecase 3722
FpXQX_get_red 9083
FpXQX_halfgcd 132
FpXQX_halfgcd_basecase 76
FpXQX_halfgcd_i 132
FpXQX_halfgcd_split 56
FpXQX_invBarrett 3141
FpXQX_invBarrett_Newton 182
FpXQX_invBarrett_basecase 2851
FpXQX_mul 300935
FpXQX_mulhigh_i 0
FpXQX_mulspec 540013
FpXQX_powu 21
FpXQX_recipspec 48
FpXQX_red 171013
FpXQX_rem 195400
FpXQX_sqr 140190
FpXQX_to_mod 77
FpXQXn_exp 0
FpXQXn_inv 0
FpXQXn_mul 32
FpXQXn_mulhigh 0
FpXQXn_sqr 0
FpXX_FpX_mul 37570
FpXX_FpX_mulspec 45680
FpXX_Fp_mul 64241
FpXX_add 403143
FpXX_deriv 272007
FpXX_halve 0
FpXX_integ 0
FpXX_mulu 52027
FpXX_neg 471
FpXX_recipspec 236768
FpXX_red 32599
FpXX_sub 14169
FpXX_subspec 118384
FpXXn_red 0
FpXYQQ_mul 196
FpXYQQ_pow 182
FpXYQQ_redswap 476
FpXYQQ_sqr 280
FpXY_FpXQV_evalx 2816
FpXY_FpXQ_evalx 147
FpXY_FpY_mulspec 8110
FpXY_eval 13279
FpXY_evalx 47264
FpXY_evaly 18393
Fq_addmul 11872
Kronecker_to_FpXQX 668611
Kronecker_to_ZXX 91784
ZXX_copy 81
ZXX_is_ZX 140222
ZXX_is_ZX_spec 1220248
ZXX_lgrenormalizespec 240233
ZXX_mul_Kronecker 144319
ZXX_sqr_Kronecker 2086
_FpXQXQ_cmul 37593
_FpXQXQ_mul 30774
_FpXQXQ_one 9795
_FpXQXQ_red 12590
_FpXQXQ_sqr 137292
_FpXQXQ_zero 68
_FpXQX_add 35744
_FpXQX_divrem 9905
_FpXQX_mul 2689
_FpXQX_sqr 1925
_FpXQX_sub 4151
get_FpXQXQ_algebra 523
get_FpXQX_algebra 42
get_FpXQX_red 393755
matid2_FpXQXM 0
polxn_FpXX 8
random_FpXQX 16
to_FlxqX 211923

Generated by: LCOV version 1.11