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 | 
      | 
    
      | 
        
       | 
    
      | 
  
  
  
    
      
  | 
       | 
       | 
       | 
       | 
       | 
    
    
      Directory   | 
      Line Coverage   | 
      Functions   | 
    
    
      | basemath | 
      
        
       | 
      91.6 % | 
      126462 / 138096 | 
      93.6 % | 
      11638 / 12430 | 
    
    
      | gp | 
      
        
       | 
      50.1 % | 
      348 / 695 | 
      45.9 % | 
      28 / 61 | 
    
    
      | graph | 
      
        
       | 
      78.1 % | 
      1328 / 1701 | 
      76.9 % | 
      123 / 160 | 
    
    
      | headers | 
      
        
       | 
      92.7 % | 
      1426 / 1539 | 
      92.1 % | 
      653 / 709 | 
    
    
      | kernel/gmp | 
      
        
       | 
      95.6 % | 
      789 / 825 | 
      96.7 % | 
      58 / 60 | 
    
    
      | kernel/none | 
      
        
       | 
      95.5 % | 
      3530 / 3698 | 
      94.1 % | 
      411 / 437 | 
    
    
      | language | 
      
        
       | 
      79.6 % | 
      12213 / 15336 | 
      84.8 % | 
      1203 / 1419 | 
    
    
      | modules | 
      
        
       | 
      95.5 % | 
      11868 / 12429 | 
      99.0 % | 
      798 / 806 | 
    
    
      | mt | 
      
        
       | 
      93.8 % | 
      315 / 336 | 
      85.7 % | 
      48 / 56 |