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 20777-d2a9243) Lines: 1238 1329 93.2 %
Date: 2017-06-25 05:59:24 Functions: 147 152 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
FpXQ_auttrace 14
Fp_neg_FpX 22
FpX_disc 28
FpXQ_order 30
FpXQ_transmul_init 30
FpX_gcd_check 106
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 355
FpX_halfgcd_i 356
FpX_halfgcd 476
FpXQ_autpow 514
FpXQ_autpow_sqr 542
FpXQ_matrix_pow 565
FpX_dotproduct 566
FpXQ_autpowers 770
FpXQ_autsum 795
FpXQ_autsum_sqr 809
FpXC_FpXQV_eval 854
FpX_chinese_coprime 980
FpX_halve 1083
FpX_invBarrett_Newton 1110
_FpXQ_easylog 1416
gener_FpXQ_local 1435
FpX_invBarrett_basecase 1447
gener_FpXQ_i 1458
FpXQ_autsum_mul 1551
FpX_Fp_sub_shallow 1557
Z_to_FpX 1710
get_FpXQ_star 1769
FpXV_FpX_fromdigits 2296
FpV_invVandermonde 2436
FpV_producttree 2437
FpX_FpV_multieval_tree 2437
FpX_is_squarefree 2513
FpX_invBarrett 2589
FpXQ_norm 3179
_FpXQ_rand 3230
FpXQ_issquare 3255
_FpXQ_zero 3537
FpXQ_minpoly 4103
FpV_inv 4860
bounded_order 5207
FpX_digits 5642
FpX_resultant 5725
FpV_roots_to_pol 5964
Fp_red_FpX 6738
Fp_FpX_sub 8805
gener_FpXQ 9025
_FpX_add 10241
FpXQ_sqrt 11771
FpXQ_sqrtn 12279
FpX_rescale 13503
get_FpXQ_algebra 13559
Fp_FpXQ_log 14013
random_FpX 18893
FpXQ_trace 21081
FpXV_prod 23152
FpX_valrem 23996
FpX_div_by_X_x 25683
FpX_Fp_mul_to_monic 45378
FpX_gcd_basecase 52026
_FpXQ_sub 57554
_FpX_sqr 57561
FpXQ_powu 65179
_FpX_divrem 69706
FpX_neg 73595
_FpX_mul 78628
FpXQ_log 81553
Fq_issquare 92064
Fp_issquare 92120
FpX_divrem_Barrett_noGC 100228
FpX_divrem_Barrettspec 100585
FpX_FpXQV_eval 129145
FpX_FpXQ_eval 171551
FpXQ_powers 183216
FpX_recipspec 202366
FpX_Frobenius 205645
ZX_lgrenormalizespec 224186
FpXQ_div 226778
_FpXQ_pow 241018
FpXQ_pow_Frobenius 241680
FpX_extgcd_basecase 245634
FpX_normalize 265380
FpX_powu 277655
FpXV_red 290735
FpXQ_inv 291835
FpXQ_invsafe 291856
FpX_Fp_sub 302674
_FpXQ_one 317129
_FpXQ_red 366565
FpX_extgcd 369332
FpX_eval 381364
Fq_log 393008
get_FpX_mod 395614
FpX_gcd 445895
FpX_get_red 515615
FpX_Fp_add 550663
FpX_deriv 638504
FpXQ_pow 654780
FpX_center 714845
to_Flxq 817282
_FpXQ_mul 1057606
_FpXQ_add 1084395
FpXT_red 1111960
FpX_mulu 1181487
_FpXQ_cmul 1216715
get_FpX_var 1475128
FpX_mulspec 1668268
get_FpX_degree 1670194
_FpXQ_sqr 2644701
FpXQ_sqr 3111258
FpXQ_red 3202595
FpX_sqr 3206583
FpX_Fp_mul 3523016
FpX_Fp_mulspec 3528700
FpX_divrem 3768064
FpX_sub 6439851
FpX_subspec 6540435
FpX_add 8075153
FpXQ_mul 40101263
to_Flx 40582666
FpX_mul 46248425
FpX_rem 61752157
FpX_divrem_basecase 62330470
get_FpX_red 65520251
FpX_red 67297613

Generated by: LCOV version 1.11