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-bordeaux1.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.8.0 lcov report (development 16624-25b9976) Lines: 973 1069 91.0 %
Date: 2014-06-24 Functions: 123 128 96.1 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 475 620 76.6 %

Function Name Sort by function name Hit count Sort by hit count
FpX_red 43581433
FpX_mul 35260134
get_FpX_red 35025182
FpX_divrem_basecase 33328490
FpX_rem 33046114
FpXQ_mul 26868082
to_Flx 23571341
FpX_subspec 8181835
FpX_sub 8140182
FpX_add 2681031
FpXQ_red 2138894
FpX_divrem 1979068
FpX_Fp_mulspec 1910903
FpX_Fp_mul 1910132
FpX_sqr 1388188
FpXQ_sqr 1367313
_FpXQ_sqr 1085602
FpX_mulu 652647
FpX_center 421212
_FpXQ_cmul 379466
_FpXQ_add 341246
FpX_eval 331969
FpX_deriv 311984
to_Flxq 302380
get_FpX_degree 281574
FpXT_red 261059
get_FpX_var 259304
FpX_Fp_add 216661
get_FpX_mod 212623
FpX_extgcd 211647
_FpXQ_mul 194736
FpXQ_invsafe 193693
FpXQ_inv 193368
FpX_mulspec 183143
FpX_normalize 166483
FpX_extgcd_basecase 164277
FpXQ_div 151083
FpX_FpXQ_eval 123852
FpXV_red 104386
_FpXQ_red 94232
_FpXQ_one 94046
FpX_get_red 88140
FpX_neg 84949
FpXQ_pow 83965
ZX_lgrenormalizespec 83575
FpX_recipspec 83327
FpXQ_powers 67977
FpX_gcd 61445
FpX_Fp_sub 44518
FpXQ_log 43178
FpX_divrem_Barrettspec 41653
FpX_divrem_Barrett_noGC 41512
_FpX_mul 36802
FpXQ_powu 36548
FpX_Fp_mul_to_monic 35701
Fq_issquare 33270
Fp_issquare 33270
FpX_FpXQV_eval 32210
Fp_FpXQ_log 25275
_FpX_divrem 24400
random_FpX 22180
FpX_valrem 16440
FpX_div_by_X_x 12744
FpX_gcd_basecase 12714
FpXV_prod 11711
FpXQ_pow_Frobenius 10608
_FpXQ_pow 10286
FpX_rescale 9239
_FpX_sqr 9105
FpXQ_trace 7326
Fp_FpX_sub 5859
gener_FpXQ 4546
FpXQ_matrix_pow 4457
FpX_resultant 3343
_FpX_add 3230
FpV_roots_to_pol 2887
bounded_order 2582
FpV_inv 2423
FpX_digits 2405
FpXQ_charpoly 2067
FpXQ_minpoly 2066
FpXQ_issquare 1639
_FpXQ_rand 1617
FpX_is_squarefree 1500
FpXQ_sqrtn 1469
FpXQ_autsum_mul 1374
Z_to_FpX 1216
FpX_fromdigits 1020
FpX_Fp_sub_shallow 995
gener_FpXQ_i 972
gener_FpXQ_local 961
Fq_log 900
FpXQ_sqrt 898
get_FpXQ_star 855
FpX_invBarrett 772
FpX_invBarrett_basecase 748
FpXQ_autsum_sqr 710
FpXQ_autsum 700
FpX_addmulmul 700
_FpXQ_easylog 624
FpX_chinese_coprime 475
FpX_halve 385
FpXQ_autpowers 385
FpXQ_autpow_sqr 385
FpXQ_autpow 367
FpXM_FpX_mul2 348
FpX_halfgcd 260
FpX_halfgcd_i 234
Fp_red_FpX 234
FpX_halfgcd_basecase 120
FpXM_mul2 116
FpX_halfgcd_split 114
FpX_FpXM_qmul 114
FpX_invBarrett_Newton 21
_FpXQ_zero 16
Fp_neg_FpX 10
FpXQ_order 10
FpX_disc 10
FpXQ_conjvec 6
FpXQ_autpow_mul 5
FpX_extgcd_halfgcd 2
matid2_FpXM 2
FpXQ_norm 1
FpX_Fp_add_shallow 0
FpX_gcd_check 0
FqV_inv 0
famat_Z_gcd 0
FpX_powu 0

Generated by: LCOV version 1.9