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 - F2x.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.8.0 lcov report (development 17797-3bb6d2f) Lines: 869 938 92.6 %
Date: 2015-05-04 Functions: 104 107 97.2 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 474 603 78.6 %

Function Name Sort by function name Hit count Sort by hit count
F2x_degree_lg 121251139
F2x_addshiftip 71856572
F2x_mulspec 32893568
F2x_shiftip 32785194
F2v_add_inplace 28301420
F2x_degree 26687636
F2x_mul1 21553881
F2x_rem 15432498
F2x_add 13170024
F2x_addshift 11826395
F2x_mul 10429663
F2x_divrem 9470503
F2x_addspec 9455410
F2x_sqr 2113129
ZV_to_F2v 1978712
F2xq_sqr 1949611
F2xq_mul 1386999
F2x_gcd 1265717
F2c_to_ZC 930999
_F2xq_mul 397364
F2xq_inv 386671
F2xq_invsafe 386671
F2x_extgcd 386671
_F2xq_sqr 361066
F2x_to_F2v 336660
ZM_to_F2m 327478
F2xq_div 327178
_F2xq_cmul 320783
_F2xq_add 302623
F2x_deriv 270244
F2m_to_ZM 168702
F2xq_pow 147232
_F2xq_pow 141889
_F2xq_one 128731
F2x_shift 116788
F2x_shiftpos 116298
F2x_is_smooth_squarefree 109956
Flx_to_F2x 104555
Rg_to_F2xq 101642
F2x_to_ZX 95968
F2x_is_smooth 95417
ZX_to_F2x 89503
F2x_pow2n 81760
_F2xq_red 77533
F2xq_trace 65566
rel_Coppersmith 54019
F2xq_matrix_pow 51787
F2xq_powers 51787
F2xV_to_F2m 51787
F2xq_easylog 47292
F2x_valrem 45323
F2x_deflate 36771
F2xq_Artin_Schreier 30878
F2x_to_Flx 30137
F2xq_log 27559
F2xq_sqrt_fast 25897
F2x_even_odd 25892
F2x_sqrt 17780
F2x_F2xq_eval 17463
F2x_issquare 14539
F2xq_autpow_sqr 9904
mkF2 8030
RgV_to_F2v 7665
F2xq_autpow_mul 7545
F2x_factorel 7504
Flv_to_F2v 6034
F2xq_sqrt 5160
F2xq_autpow 4978
F2x_is_x 4978
F2xq_powu 3794
F2c_to_Flc 3374
F2c_to_mod 3045
Z_to_F2x 1813
ZXX_to_F2xX 1673
F2xC_to_ZXC 1673
F2m_to_Flm 1232
Flm_to_F2m 1232
F2x_1_add 879
_F2xq_rmul 728
F2xq_sqrtn 658
F2x_shiftneg 490
F2xq_order 382
F2x_halfgcd_i 315
F2x_halfgcd 315
RgM_to_F2m 280
_F2xq_equal0 182
_F2xq_neg 161
F2xq_log_find_rel 119
_F2xq_s 119
F2m_to_mod 112
_F2xq_inv 91
gener_F2xq 84
_F2xq_rand 84
get_F2xq_field 70
F2xq_log_Coppersmith_d 42
F2v_slice 28
F2xq_log_from_rel 28
F2xq_log_Coppersmith_rec 14
F2m_rowslice 14
F2xq_log_index 7
F2xq_conjvec 7
check_kernel 7
F2xq_log_Coppersmith 7
smallirred_F2x 7
F2x_F2xqV_eval 0
RgX_to_F2x 0
_F2xq_zero 0

Generated by: LCOV version 1.9