all: prefer https: URLs
[gnulib.git] / tests / test-verify.c
blobdd17b9a1eef319751d6e8e2370dd8b8c79ec726f
1 /* Test the "verify" module.
3 Copyright (C) 2005, 2009-2017 Free Software Foundation, Inc.
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 3 of the License, or
8 (at your option) any later version.
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.
15 You should have received a copy of the GNU General Public License
16 along with this program. If not, see <https://www.gnu.org/licenses/>. */
18 /* Written by Bruno Haible. */
20 #include <config.h>
22 #include "verify.h"
24 #ifndef EXP_FAIL
25 # define EXP_FAIL 0
26 #endif
28 int x;
29 enum { a, b, c };
31 #if EXP_FAIL == 1
32 verify (x >= 0); /* should give ERROR: non-constant expression */
33 #endif
34 verify (c == 2); /* should be ok */
35 #if EXP_FAIL == 2
36 verify (1 + 1 == 3); /* should give ERROR */
37 #endif
38 verify (1 == 1); verify (1 == 1); /* should be ok */
40 enum
42 item = verify_true (1 == 1) * 0 + 17 /* should be ok */
45 static int
46 function (int n)
48 #if EXP_FAIL == 3
49 verify (n >= 0); /* should give ERROR: non-constant expression */
50 #endif
51 verify (c == 2); /* should be ok */
52 #if EXP_FAIL == 4
53 verify (1 + 1 == 3); /* should give ERROR */
54 #endif
55 verify (1 == 1); verify (1 == 1); /* should be ok */
57 if (n)
58 return ((void) verify_expr (1 == 1, 1), verify_expr (1 == 1, 8)); /* should be ok */
59 #if EXP_FAIL == 5
60 return verify_expr (1 == 2, 5); /* should give ERROR */
61 #endif
62 return 0;
65 int
66 main (void)
68 return !(function (0) == 0 && function (1) == 8);