Branch data Line data Source code
1 : : /* Test the "verify" module.
2 : :
3 : : Copyright (C) 2005, 2009-2012 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 3 of the License, or
8 : : (at your option) 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, see <http://www.gnu.org/licenses/>. */
17 : :
18 : : /* Written by Bruno Haible. */
19 : :
20 : : #include <config.h>
21 : :
22 : : #include "verify.h"
23 : :
24 : : #ifndef EXP_FAIL
25 : : # define EXP_FAIL 0
26 : : #endif
27 : :
28 : : int x;
29 : : enum { a, b, c };
30 : :
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 */
39 : :
40 : : enum
41 : : {
42 : : item = verify_true (1 == 1) * 0 + 17 /* should be ok */
43 : : };
44 : :
45 : : static int
46 : 0 : function (int n)
47 : : {
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 */
56 : :
57 [ # # ]: 0 : if (n)
58 [ # ]: 0 : 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 [ # ][ # ]: 0 : return 0;
63 : : }
64 : :
65 : : int
66 : 0 : main (void)
67 : : {
68 [ # ][ # # ]: 0 : return !(function (0) == 0 && function (1) == 8);
[ # ][ # # ]
[ # ][ # ][ # ]
69 : : }
|