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:
- with GMP kernel
- with GMP kernel using --mt=pthread
- with native kernel, including micro-assembler code
- with native kernel, without micro-assembler
- with native kernel, without micro-assembler, disabling GCC extensions
(DISABLE_INLINE)
- with GMP kernel, emulating an x86_32architecture at
Configure time viasetarch
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 | 
    |  | 
    
      |  | 
    |  | 
  
  
  
    
      | 
 |  |  |  |  |  | 
    
      | Filename  | Line Coverage  | Functions  | 
    
      | add.c |  | 100.0 % | 187 / 187 | 100.0 % | 10 / 10 | 
    
      | addll.h |  | 100.0 % | 16 / 16 | 100.0 % | 4 / 4 | 
    
      | bfffo.h |  | 100.0 % | 8 / 8 | 100.0 % | 1 / 1 | 
    
      | cmp.c |  | 95.8 % | 68 / 71 | 100.0 % | 7 / 7 | 
    
      | divll.h |  | 100.0 % | 34 / 34 | 100.0 % | 1 / 1 | 
    
      | divll_pre.h |  | 100.0 % | 48 / 48 | 100.0 % | 5 / 5 | 
    
      | gcd.c |  | 100.0 % | 66 / 66 | 100.0 % | 4 / 4 | 
    
      | gcdext.c |  | 97.6 % | 122 / 125 | 100.0 % | 4 / 4 | 
    
      | gcdll.c |  | 99.4 % | 338 / 340 | 100.0 % | 14 / 14 | 
    
      | halfgcd.c |  | 98.2 % | 215 / 219 | 100.0 % | 20 / 20 | 
    
      | invmod.c |  | 98.0 % | 50 / 51 | 100.0 % | 2 / 2 | 
    
      | level1.h |  | 89.0 % | 605 / 680 | 89.9 % | 214 / 238 | 
    
      | mp.c |  | 96.7 % | 1115 / 1153 | 98.6 % | 69 / 70 | 
    
      | mp_indep.c |  | 94.4 % | 535 / 567 | 98.1 % | 51 / 52 | 
    
      | mulll.h |  | 100.0 % | 25 / 25 | 100.0 % | 2 / 2 | 
    
      | ratlift.c |  | 90.7 % | 98 / 108 | 100.0 % | 3 / 3 |