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 to exceed 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.18.0 lcov report (development 29806-4d001396c7) Lines: 2197 2397 91.7 %
Date: 2024-12-22 09:08:28 Functions: 155 166 93.4 %
Legend: Lines: hit not hit

Function Name Sort by function name Hit count Sort by hit count
Buchall 62365
Buchall_deg1 1176
Buchall_param 64974
FB_aut_perm 66038
FBgen 66037
Fincke_Pohst_bound 263947
Fincke_Pohst_ideal 263952
FlxqX_chinese_unit 1379
GRHchk 494661
GRHok 1528637
RgC_expbitprec 1167050
RgM_expbitprec 48566
RgV_is1 105
SPLIT 1338687
SPLIT_i 1204345
SUnits_archclean 77
Ur_ZC_mul 1322286
Vbase_to_FB 3349
ZM_remove_unused 164
ZV_divrem 1322282
ZV_mul 7283
_nfnewprec 57729
act_arch 1986736
add 2128076
addRe_modIm 6593844
add_cyclotomic_units 63861
add_principal_part 32151
add_rel 2412535
add_rel_i 2889710
add_to_fact 2831181
already_known 2885596
assign_subFB 66772
automorphism_matrices 63851
automorphism_perms 63791
bad_check 95514
bad_subFB 306084
ballvol 66035
be_honest 7
bnf_build_cheapfu 263697
bnf_build_cycgen 26726
bnf_build_matalpha 20
bnf_build_units 32054
bnf_compactfu 37190
bnf_compactfu_mat 70
bnf_get_B 2644582
bnf_get_C 2679090
bnf_get_GD 276793
bnf_get_Ur 1322286
bnf_get_W 1327257
bnf_get_ga 271837
bnf_get_vbase 1322364
bnf_has_fu 263977
bnfinit0 2611
bnfisprincipal0 1769268
bnfnewprec 7
bnfnewprec_shallow 97
bnftestprimes 63
bnrnewprec 7
bnrnewprec_shallow 0
buchall_end 64966
cache_prime_dec 918009
can_factor 18001379
chinese_unit 94
chinese_unit_slice 274
chinese_unit_worker 274
class_group_gen 63790
clean_cols 91617
cleanarch 2927667
cleanarchunit 132979
compute_R 95578
compute_invres 63791
compute_multiple_of_R 120220
compute_multiple_of_R_pivot 557903
dbg_newrel 0
delete_FB 66036
delete_cache 63861
diagact_arch 63887
divide_p 5397537
divide_p_elt 2293
divide_p_id 163557
divide_p_quo 5231693
dump_gen 1158021
err_units 0
expand 0
expandext 32171
expbitprec 2686607
extract_full_lattice 63798
fact_ok 1158565
fact_update 1971401
factorgen 16659260
fixarch 1236217
free_GRHcheck 134153
genback 28812
get_archclean 40
get_clg2 63887
get_embs 120916
get_fs 7481069
get_log_embed 720868
get_norm_fact 1161436
get_norm_fact_primes 69
get_pr_lists 1322346
get_random_ideal 54846
get_regulator 48663
get_y 69
getfu 63791
i2print 0
idealHNF_mulred 3518
idealmulpowprime2 4488
init_GRHcheck 134152
init_famat 65538
init_red_mod_units 1039917
init_rel 63861
inv_fact 0
isprincipal 174534
isprincipalall 1338642
isprincipalarch 1167046
isprincipalfact 32172
isprincipalfact_or_fail 0
isprincipalforce 0
isprincipalgen 0
isprincipalgenforce 0
log2Mbound 94
log2fubound 94
makecycgen 4956
makematal 20
makeunits 24900
matbotid 62251
matbotidembs 54221
matenlarge 54220
modIm 201904
myprecdbl 73
needed_bitprec 3831
nf_cxlog_normalize 194923
nfcyclotomicunits 63861
nfsign_from_logarch 148887
nfsign_fu 228312
nfsign_tu 227149
nfsign_units 35
not_given 389
nthideal 63791
pr_index 3349
pr_orbit_fill 11865
pre_allocate 120954
prec_arch 1340431
primeneeded 63790
reallocate 63861
recover_partFB 1322345
red_mod_units 1039916
rel_embed 1007557
rnd_rel 54847
set_fact 2240651
set_rel_alpha 938928
signunits 7
small_norm 66038
split_ideal 1322281
step 28017191
store 9118333
subFB_change 26155
subFBgen 66037
tailres 1125609
tailresback 2251200
trim_list 120954
triv_gen 462861
try_elt 1573
vec_chinese_units 94
wr_rel 0

Generated by: LCOV version 1.16