home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / harbb30g.zip / INCLUDE / assert.ch < prev    next >
Text File  |  1999-09-15  |  2KB  |  60 lines

  1. /*
  2.  * $Id: assert.ch,v 1.3 1999/09/15 14:03:36 vszel Exp $
  3.  */
  4.  
  5. /*
  6.  * Harbour Project source code:
  7.  * Header file assertion macros
  8.  *
  9.  * Copyright 1999 {list of individual authors and e-mail addresses}
  10.  * www - http://www.harbour-project.org
  11.  *
  12.  * This program is free software; you can redistribute it and/or modify
  13.  * it under the terms of the GNU General Public License as published by
  14.  * the Free Software Foundation; either version 2 of the License, or
  15.  * (at your option) any later version, with one exception:
  16.  *
  17.  * The exception is that if you link the Harbour Runtime Library (HRL)
  18.  * and/or the Harbour Virtual Machine (HVM) with other files to produce
  19.  * an executable, this does not by itself cause the resulting executable
  20.  * to be covered by the GNU General Public License. Your use of that
  21.  * executable is in no way restricted on account of linking the HRL
  22.  * and/or HVM code into it.
  23.  *
  24.  * This program is distributed in the hope that it will be useful,
  25.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  26.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  27.  * GNU General Public License for more details.
  28.  *
  29.  * You should have received a copy of the GNU General Public License
  30.  * along with this program; if not, write to the Free Software
  31.  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA (or visit
  32.  * their web site at http://www.gnu.org/).
  33.  *
  34.  */
  35.  
  36. #ifndef _ASSERT_CH
  37. #define _ASSERT_CH
  38.  
  39. #ifdef NDEBUG
  40.  
  41. /* When NDEBUG is definded, ignore all ASSERT() calls */
  42. #command ASSERT( <exp> [, <msg>] )      =>
  43.  
  44. #else
  45.  
  46. #command ASSERT( <exp> [, <msg>] )      =>                              ;
  47.          IF ( !(<exp>) )                                                ;
  48.        ;   OUTSTD(                                                      ;
  49.                    CHR(13) + CHR(10) + PROCNAME(0) +                    ;
  50.                    "(" + LTRIM(STR(PROCLINE())) + ")" +                 ;
  51.                    "  Assertion failed: " +                             ;
  52.                    IF( <.msg.>, <msg>, <"exp"> )                        ;
  53.                  )                                                      ;
  54.        ;   QUIT                                                         ;
  55.        ; ENDIF
  56.  
  57. #endif /* NDEBUG */
  58.  
  59. #endif /* _ASSERT_CH */
  60.