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 - FpX.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.10.0 lcov report (development 21343-6216058) Lines: 1241 1335 93.0 %
Date: 2017-11-19 06:21:17 Functions: 144 149 96.6 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
FpV_FpM_polint 0
FpX_FpV_multieval 0
FpX_Fp_add_shallow 0
FqV_inv 0
get_FpX_algebra 0
FpXQ_charpoly 1
FpX_extgcd_halfgcd 4
matid2_FpXM 4
FpXQ_auttrace_mul 7
FpXQ_auttrace_sqr 7
FpVV_polint_tree 8
FpV_polint 8
FpXQ_conjvec 8
FpXQ_autpow_mul 14
FpXQ_auttrace 14
FpX_disc 28
FpXQ_order 30
Fq_ispower 56
FpXQ_transmul_init 72
FpX_gcd_check 106
Fp_neg_FpX 130
FpXQM_autsum 140
FpX_FpXM_qmul 165
FpX_halfgcd_split 165
FpXM_FpX_mul2 169
FpXM_mul2 169
FpXn_mul 199
FpXQM_autsum_sqr 210
FpX_halfgcd_basecase 212
FpXQ_transmul 235
FpXM_FpXQV_eval 308
FpXQM_autsum_mul 308
FpX_addmulmul 346
FpX_halfgcd_i 377
FpX_halfgcd 489
FpX_matFrobenius 543
FpXQ_autpow 626
FpXQ_autpow_sqr 654
FpXQ_autpowers 770
FpXC_FpXQV_eval 854
FpX_dotproduct 860
FpXQ_matrix_pow 893
FpX_chinese_coprime 980
FpXQ_autsum 991
FpXQ_autsum_sqr 1026
FpX_invBarrett_Newton 1116
FpX_halve 1118
_FpXQ_easylog 1395
gener_FpXQ_local 1449
FpX_invBarrett_basecase 1453
gener_FpXQ_i 1472
FpX_Fp_sub_shallow 1560
Z_to_FpX 1710
FpXQ_autsum_mul 1957
get_FpXQ_star 1979
FpXV_FpX_fromdigits 2296
FpV_invVandermonde 2436
FpV_producttree 2444
FpX_FpV_multieval_tree 2444
FpX_is_squarefree 2555
FpX_invBarrett 2601
FpXQ_norm 3179
FpXQ_issquare 3255
_FpXQ_rand 3531
_FpXQ_zero 3556
FpXQ_minpoly 4124
FpV_inv 4867
FpX_digits 5642
bounded_order 5739
FpV_roots_to_pol 6160
FpX_resultant 6208
Fp_red_FpX 7795
gener_FpXQ 9053
_FpX_add 10241
Fp_FpX_sub 10599
FpXQ_sqrt 11820
FpXQ_sqrtn 12286
FpX_rescale 13524
get_FpXQ_algebra 13559
Fp_FpXQ_log 13979
FpXQ_trace 21084
FpXV_prod 23359
FpX_valrem 23996
random_FpX 25421
FpX_div_by_X_x 25683
FpX_Fp_mul_to_monic 48301
FpX_gcd_basecase 54390
_FpX_sqr 57015
_FpXQ_sub 57554
FpXQ_powu 66656
_FpX_divrem 69706
_FpX_mul 79413
FpXQ_log 81721
FpX_neg 81950
Fq_issquare 92064
Fp_issquare 92120
FpX_divrem_Barrett_noGC 100280
FpX_divrem_Barrettspec 100647
_FpXQ_pow 105883
FpXQ_pow_Frobenius 106635
FpX_FpXQV_eval 130418
FpX_FpXQ_eval 173528
FpXQ_powers 184635
FpX_recipspec 202626
FpX_Frobenius 207268
ZX_lgrenormalizespec 224440
FpXQ_div 233687
FpX_extgcd_basecase 265739
FpX_powu 272475
FpX_normalize 274409
FpXV_red 291113
FpX_Fp_sub 305117
FpXQ_inv 311667
FpXQ_invsafe 311688
_FpXQ_one 321539
_FpXQ_red 370136
FpX_get_red 385687
Fq_log 390068
FpX_extgcd 391404
FpX_eval 410330
FpX_gcd 449734
FpXQ_pow 518795
FpX_Fp_add 551358
FpX_deriv 641034
FpX_center 712209
to_Flxq 818342
_FpXQ_mul 899519
_FpXQ_add 1089642
FpXT_red 1112999
FpX_mulu 1185764
_FpXQ_cmul 1223722
FpX_mulspec 1971835
_FpXQ_sqr 3170156
FpX_Fp_mul 3396104
FpX_Fp_mulspec 3402500
FpXQ_sqr 3637123
FpX_sqr 3732290
FpX_divrem 3944191
FpXQ_red 3988958
FpX_sub 6912365
FpX_subspec 7013011
FpX_add 8337815
FpX_red 34863227
FpXQ_mul 40379866
FpX_mul 46847104
FpX_divrem_basecase 63947206
FpX_rem 64139064
get_FpX_red 68083327
to_Flx 76654320

Generated by: LCOV version 1.11