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 20422-b487f4d) Lines: 1244 1332 93.4 %
Date: 2017-03-22 05:51:54 Functions: 148 153 96.7 %
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
FpVV_polint_tree 1
FpV_polint 1
FpXQ_charpoly 1
FpX_extgcd_halfgcd 4
matid2_FpXM 4
FpXQ_autpow_mul 7
FpXQ_auttrace_mul 7
FpXQ_auttrace_sqr 7
FpXQ_conjvec 8
Fp_neg_FpX 8
FpXQ_auttrace 14
FpX_disc 28
FpXQ_order 30
FpXQ_transmul_init 30
FpX_gcd_check 105
FpXn_mul 108
FpXQ_transmul 123
Fq_ispower 133
FpXQM_autsum 140
FpX_FpXM_qmul 165
FpX_halfgcd_split 165
FpXM_FpX_mul2 169
FpXM_mul2 169
FpX_halfgcd_basecase 191
FpXQM_autsum_sqr 210
FpXM_FpXQV_eval 308
FpXQM_autsum_mul 308
FpX_addmulmul 346
FpX_matFrobenius 354
FpX_halfgcd_i 356
FpX_halfgcd 465
FpXQ_autpow 514
FpX_invBarrett_Newton 520
FpXQ_autpow_sqr 542
FpXQ_matrix_pow 564
FpX_dotproduct 566
FpXQ_autpowers 707
FpXQ_autsum 795
FpXQ_autsum_sqr 809
FpXC_FpXQV_eval 854
FpX_chinese_coprime 980
FpX_halve 1083
_FpXQ_easylog 1416
gener_FpXQ_local 1435
FpX_invBarrett_basecase 1456
gener_FpXQ_i 1458
FpXQ_autsum_mul 1551
FpX_Fp_sub_shallow 1568
Z_to_FpX 1710
get_FpXQ_star 1769
FpX_invBarrett 2012
FpV_invVandermonde 2156
FpV_producttree 2157
FpX_FpV_multieval_tree 2157
FpXV_FpX_fromdigits 2296
FpX_is_squarefree 2345
FpXQ_norm 3179
FpXQ_issquare 3227
_FpXQ_rand 3230
_FpXQ_zero 3537
FpXQ_minpoly 3774
FpV_inv 4580
bounded_order 5207
Fp_FpXQ_log 5592
FpX_digits 5642
FpX_resultant 5721
FpV_roots_to_pol 5824
Fp_red_FpX 6605
gener_FpXQ 6841
FpXQ_sqrt 7333
FpXQ_sqrtn 7764
Fp_FpX_sub 8518
deg2pol_shallow 9725
_FpX_add 10241
FpX_rescale 13398
get_FpXQ_algebra 13559
random_FpX 18840
FpXV_prod 19092
FpXQ_trace 20796
FpX_div_by_X_x 23275
FpX_valrem 23793
FpX_Fp_mul_to_monic 44915
FpX_gcd_basecase 52032
_FpX_sqr 56917
_FpXQ_sub 57554
FpXQ_powu 63028
_FpX_divrem 69706
FpXQ_log 71676
_FpX_mul 72034
FpX_neg 73864
Fq_issquare 90664
Fp_issquare 90811
FpX_divrem_Barrett_noGC 96668
FpX_divrem_Barrettspec 97063
FpX_FpXQV_eval 127876
FpX_Frobenius 160375
FpX_FpXQ_eval 170244
FpXQ_powers 182773
FpX_recipspec 194736
ZX_lgrenormalizespec 204653
FpXQ_div 226645
_FpXQ_pow 241018
FpXQ_pow_Frobenius 241679
FpX_extgcd_basecase 245634
Fq_log 257537
FpX_normalize 260433
FpX_powu 273147
FpXQ_inv 289567
FpXQ_invsafe 289588
FpXV_red 290580
FpX_Fp_sub 300280
_FpXQ_one 312530
_FpXQ_red 361073
FpX_extgcd 363914
FpX_eval 376261
get_FpX_mod 386896
FpX_gcd 441667
FpX_get_red 512027
FpX_Fp_add 550313
FpXQ_pow 607400
FpX_deriv 637200
FpX_center 661501
to_Flxq 755268
_FpXQ_mul 1053448
_FpXQ_add 1070473
FpXT_red 1098815
FpX_mulu 1181193
_FpXQ_cmul 1201196
get_FpX_var 1382162
FpX_mulspec 1654174
get_FpX_degree 1663844
_FpXQ_sqr 2640860
FpXQ_red 2680612
FpXQ_sqr 3106957
FpX_sqr 3198051
FpX_Fp_mul 3496524
FpX_Fp_mulspec 3502208
FpX_divrem 3648094
FpX_sub 6466422
FpX_subspec 6563485
FpX_add 8074740
FpXQ_mul 40087222
to_Flx 40099340
FpX_mul 46230586
FpX_rem 61172505
FpX_divrem_basecase 61871044
get_FpX_red 64820632
FpX_red 66420429

Generated by: LCOV version 1.11