|
1 /* -*- C++ -*- |
|
2 * |
|
3 * This file is a part of LEMON, a generic C++ optimization library |
|
4 * |
|
5 * Copyright (C) 2003-2007 |
|
6 * Egervary Jeno Kombinatorikus Optimalizalasi Kutatocsoport |
|
7 * (Egervary Research Group on Combinatorial Optimization, EGRES). |
|
8 * |
|
9 * Permission to use, modify and distribute this software is granted |
|
10 * provided that this copyright notice appears in all copies. For |
|
11 * precise terms see the accompanying LICENSE file. |
|
12 * |
|
13 * This software is provided "AS IS" with no warranty of any kind, |
|
14 * express or implied, and with no claim as to its suitability for any |
|
15 * purpose. |
|
16 * |
|
17 */ |
|
18 |
|
19 #ifndef LEMON_TEST_TEST_TOOLS_H |
|
20 #define LEMON_TEST_TEST_TOOLS_H |
|
21 |
|
22 #include <iostream> |
|
23 |
|
24 //! \ingroup misc |
|
25 //! \file |
|
26 //! \brief Some utilities to write test programs. |
|
27 |
|
28 |
|
29 ///If \c rc is fail, writes an error message end exit. |
|
30 |
|
31 ///If \c rc is fail, writes an error message end exit. |
|
32 ///The error message contains the file name and the line number of the |
|
33 ///source code in a standard from, which makes it possible to go there |
|
34 ///using good source browsers like e.g. \c emacs. |
|
35 /// |
|
36 ///For example |
|
37 ///\code check(0==1,"This is obviously false.");\endcode will |
|
38 ///print this (and then exits). |
|
39 ///\verbatim graph_test.cc:123: error: This is obviously false. \endverbatim |
|
40 /// |
|
41 ///\todo It should be in \c error.h |
|
42 #define check(rc, msg) \ |
|
43 if(!(rc)) { \ |
|
44 std::cerr << __FILE__ ":" << __LINE__ << ": error: " << msg << std::endl; \ |
|
45 abort(); \ |
|
46 } else { } \ |
|
47 |
|
48 #endif |