/* -*- Mode: C++; c-basic-offset:4 ; -*- */
/*
* (C) 2004 by Argonne National Laboratory.
* See COPYRIGHT in top-level directory.
*
* This is a *very* simple tool for basic coverage analysis.
* This is intended as a stop-gap until gcov works with the C++ files
* used in the MPICH binding of C++ (as of 2/23/2004, gcov aborts when
* processing the coverage files produced by g++ for the MPICH C++
* binding).
*/
/* style: c++ header */
#ifndef MPIX_SIMPLECOVERAGE_H
#define MPIX_SIMPLECOVERAGE_H
typedef struct _covinfo {
char *name; // Routine name (or block)
int argcount; // Number of arguments
int count; // Number of times called
char *sourceFile; // Name of source file
int firstLine, lastLine; // source lines for block
struct _covinfo *fLink, *bLink;
} covinfo;
class MPIX_Coverage {
private:
covinfo *head;
covinfo *findOrInsert( const char name[], int argcount ); // return an initialize record
public:
// New and delete
MPIX_Coverage(void) { head = 0; }
//
void Init( void );
void Add( const char name[], int argcnt, const char file[], int line );
void AddEnd( const char name[], int argcnt, const char file[], int line );
int FileMerge( const char filename[] );
};
extern MPIX_Coverage MPIR_Cov;
#endif