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_32 architecture at
Configure time via setarch 
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 |