epetra_test_err.h

Go to the documentation of this file.
00001 /*@HEADER
00002 ************************************************************************
00003 
00004               Epetra: Linear Algebra Services Package 
00005                 Copyright (2001) Sandia Corporation
00006 
00007 Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
00008 license for use of this work by or on behalf of the U.S. Government.
00009 
00010 This library is free software; you can redistribute it and/or modify
00011 it under the terms of the GNU Lesser General Public License as
00012 published by the Free Software Foundation; either version 2.1 of the
00013 License, or (at your option) any later version.
00014  
00015 This library is distributed in the hope that it will be useful, but
00016 WITHOUT ANY WARRANTY; without even the implied warranty of
00017 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018 Lesser General Public License for more details.
00019  
00020 You should have received a copy of the GNU Lesser General Public
00021 License along with this library; if not, write to the Free Software
00022 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
00023 USA
00024 Questions? Contact Michael A. Heroux (maherou@sandia.gov) 
00025 
00026 ************************************************************************
00027 */
00028 //@HEADER
00029 
00030 /* The purpose of this file is to allow for 
00031 informative error reporting that will not abort a test program after a single
00032 error the way that an assert command does. */
00033 
00034 /* The macro takes two arguments.  The first is the error code to be examined.  The second is an int that can be viewed either as an error count, or as a bool that simply indicates if any errors have occurred as of the time that the macro was run (zero -> no prior errors, non-zero -> prior errors).  If the error code is > 0, it is interpreted as a warning, and the code is printed, but an error is not tallied.  If it is < 0, it is interpreted as an error.*/
00035 
00036 #ifndef EPETRA_TEST_ERR_H
00037 #define EPETRA_TEST_ERR_H
00038 #include "Epetra_ConfigDefs.h"
00039 using namespace std;
00040 // This function is to be used when first identifying an error.
00041 #define EPETRA_TEST_ERR(a,b) { { int epetra_testing_err = (a); \
00042   if (epetra_testing_err != 0) {\
00043     cerr << "Non zero error code " << epetra_testing_err << \
00044        ", file: " << __FILE__ << ", line: " << __LINE__ << endl;\
00045     if (epetra_testing_err < 0) {\
00046       (b)+=1;\
00047     }\
00048   }\
00049   }\
00050 }
00051 
00052 #endif /* EPETRA_TEST_ERR_H */

Generated on Wed May 12 21:41:05 2010 for Epetra Package Browser (Single Doxygen Collection) by  doxygen 1.4.7