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 - galconj.c (source / functions) Coverage Total Hit
Test: PARI/GP v2.18.1 lcov report (development 31042-0fbe168e69) Lines: 83.6 % 2318 1937
Test Date: 2026-07-23 17:04:59 Functions: 79.1 % 153 121
Legend: Lines:     hit not hit

Function Name Sort by function name Hit count Sort by function hit count
Flm_newtonsum 18070
Flv_sympol_eval 11530
FlxV_Flx_gcd 0
FlxV_minpolymod 0
Flx_FlxV_minpolymod 0
FpXV_ffisom 91
Qevproj_RgX 4585
Vmatrix 5881
a4galoisgen 98
aut_to_groupelts 1253
automorphismlift 32027
br_get 0
brl_add 0
cc_char_det 56
cc_chartable 553
cc_id 37051
checkgal 31227
checkgaloischar 1491
checkgroup 5110
checkgroupelts 4655
chiFT 945
chival 4116
chk_perm 7546
conjclasses_count 315
conjcyclo 1029
cyclic_pc 24304
embed_disc 135919
embed_roots 12408
f36galoisgen 14
f36releveauto2 910
f36releveauto4 35
factperm 0
findp 0
findpsi 72
fixedfieldfactmod 5566
fixedfieldfactor 91
fixedfieldinclusion 1057
fixedfieldorbits 11453
fixedfieldsurmer 11453
fixedfieldsympol 11453
freetest 5643
frobeniusliftall 1981
galois_find_totally_split 14
galois_group 3388
galois_test_perm 117600
galoisanalysis 97076
galoisborne 31438
galoischar_aut_charpoly 12355
galoischar_charpoly 1491
galoischar_dim 1547
galoischardet 56
galoischarpoly 1435
galoischartable 560
galoisconj 70525
galoisconj0 63
galoisconj1 36447
galoisconj4 0
galoisconj4_main 97258
galoisconj_monic 70525
galoisconjclasses 315
galoiscosets 91
galoisdolift 30080
galoisdoliftn 1359
galoisexport 35
galoisfindfrobenius 29884
galoisfindgroups 98
galoisfixedfield 5887
galoisfrobeniuslift 2205
galoisfrobeniuslift_nilp 27784
galoisfrobeniustest 60764
galoisgen 30073
galoisgenfixedfield 5566
galoisgenfixedfield0 5566
galoisgenlift 5545
galoisgenlift_nilp 0
galoisgenliftauto 6770
galoisidentify 924
galoisinit 51415
galoisinitfromaut 1706
galoisisabelian 644
galoisisnormal 56
galoismakepsi 1694
galoisperm_free 0
galoisperm_init 0
galoispermtopol 17976
galoispermtopol_i 17976
galoissplittinginit 1239
galoissubfields 112
galoissubgroups 3248
galoisvecpermtopol 9086
genorbit 0
get_image 6770
get_pow 0
getfr 0
gg_get_std 33587
group_is_elt 9506
groupelts_to_group_or_elts 1239
improves 164567
init_group 97076
initgaloisborne 85449
initlift 30080
inittest 5643
inittestlift 1736
intheadlong 1363209
is2sparse 11011
is_group 14231
lincomb 319426
listznstarelts 1743
makeLden 29975
matheadlong 5881
matrixnorm 512188
mkliftpow 91
monomorphismratlift 32027
monoratlift 64330
muldiv 0
nilp_froblift 0
notgalois 66996
numberofconjugates 35994
padicisint 95382
pc_bracket 0
pc_evalcache 0
pc_exp 0
pc_inv 0
pc_mul 0
pc_normalize 0
pc_to_perm 0
pcgrp_get_br 0
pcgrp_get_ord 0
pcgrp_get_pow 0
pcgrp_insert 0
pcgrp_lift 0
permprodeval 0
permtoaut 0
permtopol 50149
polheadlong 38786
poltopermtest 65982
psi_order 29870
s4galoisgen 77
s4makelift 1458
s4releveauto 513
s4test 239307
stpow 15024
sympol_aut_evalmod 5566
sympol_eval 11453
sympol_eval_newtonsum 11530
sympol_is1to1_lg 12027
testpermutation 9011
vec_groupelts_to_group_or_elts 21
vecheadlong 59035
vecsmall_increase 0
vectopol 51745
vecvecsmall_increase 0
wpow 6770

Generated by: LCOV version 2.0-1