1 /* ==========================================================================
7 *==========================================================================
8 *####COPYRIGHTBEGIN####
10 * ----------------------------------------------------------------------------
11 * Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
13 * This file is part of the eCos host tools.
15 * This program is free software; you can redistribute it and/or modify it
16 * under the terms of the GNU General Public License as published by the Free
17 * Software Foundation; either version 2 of the License, or (at your option)
20 * This program is distributed in the hope that it will be useful, but WITHOUT
21 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
22 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
25 * You should have received a copy of the GNU General Public License along with
26 * this program; if not, write to the Free Software Foundation, Inc.,
27 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
29 * ----------------------------------------------------------------------------
32 *==========================================================================
33 *#####DESCRIPTIONBEGIN####
39 * Description: A C equivalent of tassert1.cxx
41 *####DESCRIPTIONEND####
42 *==========================================================================
45 #include <cyg/infra/testcase.h>
46 #include <cyg/infra/cyg_ass.h>
49 #ifdef CYGDBG_USE_ASSERTS
50 # error Assertions should not be enabled by default.
53 static const char message[] = "This should never be seen.";
55 int main(int argc, char** argv)
57 CYG_ASSERT( true, message);
58 CYG_ASSERT( false, message);
64 CYG_CHECK_DATA_PTR( &argc, message);
65 CYG_CHECK_DATA_PTR( 0, message);
66 CYG_CHECK_FUNC_PTR( &main, message);
67 CYG_CHECK_FUNC_PTR( 0, message);
68 CYG_CHECK_DATA_PTRC(&argc);
69 CYG_CHECK_DATA_PTRC(0);
70 CYG_CHECK_FUNC_PTRC(&main);
71 CYG_CHECK_FUNC_PTRC(0);
73 CYG_PRECONDITION(true, message);
74 CYG_PRECONDITION(false, message);
75 CYG_PRECONDITIONC(true);
76 CYG_PRECONDITIONC(false);
78 CYG_POSTCONDITION(true, message);
79 CYG_POSTCONDITION(false, message);
80 CYG_POSTCONDITIONC(true);
81 CYG_POSTCONDITIONC(false);
83 CYG_LOOP_INVARIANT(true, message);
84 CYG_LOOP_INVARIANT(false, message);
85 CYG_LOOP_INVARIANTC(true);
86 CYG_LOOP_INVARIANTC(false);
88 CYG_INVARIANT(true, message);
89 CYG_INVARIANT(false, message);
91 CYG_INVARIANTC(false);
93 CYG_TEST_PASS_FINISH("disabled assertions in C code do nothing");
97 #ifdef CYG_ASSERT_CLASS
98 # error CYG_ASSERT_CLASS macro should not be defined in C code
100 #ifdef CYG_ASSERT_CLASSC
101 # error CYG_ASSERT_CLASSC macro should not be defined in C code
103 #ifdef CYG_ASSERT_CLASSO
104 # error CYG_ASSERT_CLASSO macro should not be defined in C code
106 #ifdef CYG_ASSERT_CLASSOC
107 # error CYG_ASSERT_CLASSOC macro should not be defined in C code
109 #ifdef CYG_ASSERT_ZERO_OR_CLASS
110 # error CYG_ASSERT_ZERO_OR_CLASS macro should not be defined in C code
112 #ifdef CYG_ASSERT_ZERO_OR_CLASSC
113 # error CYG_ASSERT_ZERO_OR_CLASSC macro should not be defined in C code
115 #ifdef CYG_ASSERT_THIS
116 # error CYG_ASSERT_THIS macro should not be defined in C code
118 #ifdef CYG_ASSERT_THISC
119 # error CYG_ASSERT_THISC macro should not be defined in C code
121 #ifdef CYGDBG_DEFINE_CHECK_THIS
122 # error CYGDBG_DEFINE_CHECK_THIS macro should not be defined in C code
125 #ifdef CYG_PRECONDITION_CLASS
126 # error CYG_PRECONDITION_CLASS macro should not be defined in C code
128 #ifdef CYG_PRECONDITION_CLASSC
129 # error CYG_PRECONDITION_CLASSC macro should not be defined in C code
131 #ifdef CYG_PRECONDITION_CLASSO
132 # error CYG_PRECONDITION_CLASSO macro should not be defined in C code
134 #ifdef CYG_PRECONDITION_CLASSOC
135 # error CYG_PRECONDITION_CLASSOC macro should not be defined in C code
137 #ifdef CYG_PRECONDITION_ZERO_OR_CLASS
138 # error CYG_PRECONDITION_ZERO_OR_CLASS macro should not be defined in C code
140 #ifdef CYG_PRECONDITION_ZERO_OR_CLASSC
141 # error CYG_PRECONDITION_ZERO_OR_CLASSC macro should not be defined in C code
143 #ifdef CYG_PRECONDITION_THIS
144 # error CYG_PRECONDITION_THIS macro should not be defined in C code
146 #ifdef CYG_PRECONDITION_THISC
147 # error CYG_PRECONDITION_THISC macro should not be defined in C code
150 #ifdef CYG_POSTCONDITION_CLASS
151 # error CYG_POSTCONDITION_CLASS macro should not be defined in C code
153 #ifdef CYG_POSTCONDITION_CLASSC
154 # error CYG_POSTCONDITION_CLASSC macro should not be defined in C code
156 #ifdef CYG_POSTCONDITION_CLASSO
157 # error CYG_POSTCONDITION_CLASSO macro should not be defined in C code
159 #ifdef CYG_POSTCONDITION_CLASSOC
160 # error CYG_POSTCONDITION_CLASSOC macro should not be defined in C code
162 #ifdef CYG_POSTCONDITION_ZERO_OR_CLASS
163 # error CYG_POSTCONDITION_ZERO_OR_CLASS macro should not be defined in C code
165 #ifdef CYG_POSTCONDITION_ZERO_OR_CLASSC
166 # error CYG_POSTCONDITION_ZERO_OR_CLASSC macro should not be defined in C code
168 #ifdef CYG_POSTCONDITION_THIS
169 # error CYG_POSTCONDITION_THIS macro should not be defined in C code
171 #ifdef CYG_POSTCONDITION_THISC
172 # error CYG_POSTCONDITION_THISC macro should not be defined in C code
175 #ifdef CYG_LOOP_INVARIANT_CLASS
176 # error CYG_LOOP_INVARIANT_CLASS macro should not be defined in C code
178 #ifdef CYG_LOOP_INVARIANT_CLASSC
179 # error CYG_LOOP_INVARIANT_CLASSC macro should not be defined in C code
181 #ifdef CYG_LOOP_INVARIANT_CLASSO
182 # error CYG_LOOP_INVARIANT_CLASSO macro should not be defined in C code
184 #ifdef CYG_LOOP_INVARIANT_CLASSOC
185 # error CYG_LOOP_INVARIANT_CLASSOC macro should not be defined in C code
187 #ifdef CYG_LOOP_INVARIANT_ZERO_OR_CLASS
188 # error CYG_LOOP_INVARIANT_ZERO_OR_CLASS macro should not be defined in C code
190 #ifdef CYG_LOOP_INVARIANT_ZERO_OR_CLASSC
191 # error CYG_LOOP_INVARIANT_ZERO_OR_CLASSC macro should not be defined in C code
193 #ifdef CYG_LOOP_INVARIANT_THIS
194 # error CYG_LOOP_INVARIANT_THIS macro should not be defined in C code
196 #ifdef CYG_LOOP_INVARIANT_THISC
197 # error CYG_LOOP_INVARIANT_THISC macro should not be defined in C code
200 #ifdef CYG_INVARIANT_CLASS
201 # error CYG_INVARIANT_CLASS macro should not be defined in C code
203 #ifdef CYG_INVARIANT_CLASSC
204 # error CYG_INVARIANT_CLASSC macro should not be defined in C code
206 #ifdef CYG_INVARIANT_CLASSO
207 # error CYG_INVARIANT_CLASSO macro should not be defined in C code
209 #ifdef CYG_INVARIANT_CLASSOC
210 # error CYG_INVARIANT_CLASSOC macro should not be defined in C code
212 #ifdef CYG_INVARIANT_THIS
213 # error CYG_INVARIANT_THIS macro should not be defined in C code
215 #ifdef CYG_INVARIANT_THISC
216 # error CYG_INVARIANT_THISC macro should not be defined in C code