* check-module: Add copyright notice.
[gnulib.git] / tests / test-verify.c
1 /* Test the "verify" module.
2
3    Copyright (C) 2005 Free Software Foundation, Inc.
4
5    This program is free software; you can redistribute it and/or modify
6    it under the terms of the GNU General Public License as published by
7    the Free Software Foundation; either version 2, or (at your option)
8    any later version.
9
10    This program is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13    GNU General Public License for more details.
14
15    You should have received a copy of the GNU General Public License
16    along with this program; if not, write to the Free Software Foundation,
17    Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
18
19 /* Written by Bruno Haible.  */
20
21 #ifdef HAVE_CONFIG_H
22 # include <config.h>
23 #endif
24
25 #include "verify.h"
26
27 int x;
28 enum { a, b, c };
29
30 verify (x >= 0);                  /* should give ERROR: non-constant expression */
31 verify (c == 2);                  /* should be ok */
32 verify (1 + 1 == 3);              /* should give ERROR */
33 verify (1 == 1); verify (1 == 1); /* should be ok */
34
35 enum
36 {
37   item = verify_true (1 == 1) * 0 + 17 /* should be ok */
38 };
39
40 int function (int n)
41 {
42   verify (n >= 0);                  /* should give ERROR: non-constant expression */
43   verify (c == 2);                  /* should be ok */
44   verify (1 + 1 == 3);              /* should give ERROR */
45   verify (1 == 1); verify (1 == 1); /* should be ok */
46
47   if (n)
48     return (verify_true (1 == 1), verify_true (1 == 1), 7); /* should be ok */
49   else
50     return (verify_true (1 == 2), 5); /* should give ERROR */
51 }