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 - buch2.c (source / functions) Hit Total Coverage
Test: PARI/GP v2.10.0 lcov report (development 20422-b487f4d) Lines: 2332 2493 93.5 %
Date: 2017-03-22 05:51:54 Functions: 143 151 94.7 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Buchall 1246
Buchall_deg1 462
Buchall_param 2380
FB_aut_perm 2065
FBgen 2065
Fincke_Pohst_ideal 326362
GRHchk 17742
GRHok 423511
RgV_is1 8646
SPLIT 278078
Vbase_to_FB 10563
act_arch 506302
addRe_modIm 677865
add_cyclotomic_units 2065
add_principal_part 22142
add_rel 525269
add_rel_i 585556
add_to_fact 15255
already_known 585416
assign_subFB 2198
automorphism_matrices 1967
automorphism_perms 1918
bad_subFB 9170
be_honest 7
bestappr_noer 3566
bnf_build_cycgen 3129
bnf_build_matalpha 37
bnf_build_units 10117
bnf_get_B 524474
bnf_get_C 532454
bnf_get_W 261805
bnf_get_vbase 261854
bnfcompress 7
bnfinit0 1141
bnfisprincipal0 249619
bnfisunit 2310
bnfnewprec 14
bnfnewprec_shallow 30
bnftestprimes 49
bnrnewprec 7
bnrnewprec_shallow 0
buchall_end 2387
cache_prime_dec 37516
can_factor 1438959
class_group_gen 1955
clean_cols 8080
cleanarch 254432
codeprime 49
codeprimes 7
compute_R 3565
compute_invres 1918
compute_multiple_of_R 8535
compute_multiple_of_R_pivot 833288
compute_vecG 1918
dbg_cancelrel 0
dbg_newrel 0
decode_pr_lists 7
decodeprime 49
delete_FB 2065
delete_cache 2065
divide_p 1311641
divide_p_elt 1038970
divide_p_id 58083
divide_p_quo 214588
exp_OK 1628
expand 0
expandext 22164
extract_full_lattice 2020
fact_ok 210977
factorgen 311915
famat_get_arch_real 1334
famat_to_arch 2365
free_GRHcheck 42860
get_arch 200141
get_arch_real 6959
get_archclean 106
get_clfu 2387
get_fs 308770
get_log_embed 48470
get_norm_fact 210605
get_norm_fact_primes 775
get_pr_lists 261796
get_random_ideal 2933
get_regulator 37
get_y 790
getfu 2020
idealHNF_mulred 16537
idnorm 5364
init_GRHcheck 42860
init_famat 15962
init_red_mod_units 208769
init_rel 2065
inv_fact 2927
inverse_if_smaller 1788
isprincipal 53109
isprincipalall 262699
isprincipalarch 212052
isprincipalfact 22134
isprincipalfact_or_fail 30
isprincipalforce 0
isprincipalgen 0
isprincipalgenforce 0
log_m1 1519
low_prec 13980
makecycgen 917
makematal 28
makeunits 1562
my_class_group_gen 30
needed_bitprec 1075
neg_row 254
nfcyclotomicunits 2065
nfsign_from_logarch 5887
nfsign_units 5670
not_given 109
nthideal 3836
perm_log_embed 31465
powFBgen 442
powPgen 857
pr_index 10612
pr_orbit_fill 11851
pre_allocate 19530
prec_arch 269697
primeneeded 1918
reallocate 2086
recover_partFB 261789
red 2933
red_mod_units 208769
remove_content 2933
rnd_rel 2933
sbnf2bnf 7
scalar_get_arch_real 1323
set_fact 514988
setlg_col 189
shift_G 8922
shift_embed 13689
signunits 7
small_norm 15791
smooth_norm 1343167
split_ideal 261740
step 4463755
store 2205293
subFB_change 427
subFBgen 2065
tailres 35016
tailresback 70032
trim_list 19088
triv_arch 1810
triv_gen 9093
try_elt 1659
unclone_subFB 2065
wr_rel 0

Generated by: LCOV version 1.11