00001 /*@HEADER 00002 // *********************************************************************** 00003 // 00004 // EpetraExt: Epetra Extended - 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 //@HEADER 00028 */ 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). */ 00035 00036 #ifndef _EPETRA_TEST_ERR_H_ 00037 #define _EPETRA_TEST_ERR_H_ 00038 #include <iostream> 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 cout << "Non zero error code " << epetra_testing_err << \ 00044 ", file: " << __FILE__ << ", line: " << __LINE__ << endl;\ 00045 b+=1;\ 00046 }\ 00047 }\ 00048 } 00049 00050 #endif /*_EPETRA_TEST_ERR_H_ */
1.3.9.1