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 - ecpp.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.10.0 lcov report (development 21348-d75f58f) Lines: 845 917 92.1 %
Date: 2017-11-20 06:21:05 Functions: 97 103 94.2 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Dmq_get_cnum 0
FpE_get_lambda 0
cert_get_J 0
cert_get_T 0
cert_get_lambda 0
timer_record 0
cert_out 7
magma_out 7
primo_out 7
cert_get_x 14
primo_printval_center 14
ecppexport 21
cert_get_D 28
cert_get_E 28
ecpp_flattencert 28
ecpp_step2 28
polmodular_db_init_allinv 28
allh 35
ecpp0 35
ecpp_disclist_init 35
ecpp_param_get_maxdisc 35
ecpp_param_get_maxsqrt 35
ecpp_param_set 35
ecpp_param_set_disclist 35
ecpp_param_set_maxdisc 35
ecpp_param_set_maxpcdg 35
ecpp_param_set_maxsqrt 35
ecpp_param_set_tdivexp 35
ecpp_primelist_init 35
ecpp_step1 35
primelist_to_indexlist 35
primorial_vec 35
producttree_find_partialprod 49
cert_get_a6 56
ecpp 56
ecppisvalid 56
ecppisvalid0 56
primo_printval 70
cert_get_q 77
j0_find_g 112
D_polclass 427
Fp_ellfromj 665
NDinfomqgJ_find_EP 665
NDinfomqg_get_N 665
NDinfomqg_get_g 665
NDinfomqg_get_m 665
NDinfomqg_get_q 665
NDinfor_find_J 665
ecpp_param_get_maxpcdg 686
primelist_sqrtlist_init 686
tunevec_batchsize 686
N_downrun_NDinfomq 714
sort_Dmq_by_cnum 924
Nq_isvalid 931
cert_get_P 1029
cert_get_m 1036
cert_get_s 1036
cert_get_a4 1043
Dmbatch_factor_Dmqvec 1351
Dmqvec_slice_Dmqvec 1351
Dmqvec_to_qvec 1351
Dmvec_batchfactor_Dmqvec 1351
Dmvec_qvec_to_Dmqvec 1351
Dmvec_to_mvec 1351
ecpp_param_get_primorial 1351
ecpp_param_get_primorial_vec 1351
ecpp_qlo 1351
mvec_batchfactor_qvec 1351
NmqEP_check 1385
random_FpJ 1385
cert_get_t 2023
cert_get_N 2100
zv_binsearch0 2702
tunevec 2723
tunevec_tdivbd 2723
sort_NDmq_by_D 2807
FpJ_is_inf 3701
NDinfomqg_get_longD 5614
gained_bits 6097
NDinfomqg_get_D 6279
lessthan_qlo 6923
NDinfomqg_get_Dinfo 6944
NUV_find_mvec 9884
Dmq_get_Dinfo 15778
Dmq_get_m 15778
Dmq_isgoodq 15778
Dmq_get_q 31556
D_find_discsqrt 34027
p_find_primesqrt 64988
sort_Dmq_by_q 68593
earlyabort_pcdg 158039
ecpp_param_get_disclist 158725
Dinfo_get_Dfac 194635
index_to_p 217511
D_collectcards 319998
ecpp_param_get_primelist 354746
p_to_index 22797019
sort_disclist 36583029
Dinfo_get_h 73166058
Dinfo_get_bi 73166723
Dinfo_get_D 73173002
D_get_wD 73176299
Dinfo_get_pd 73326134

Generated by: LCOV version 1.11