Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(268)

Side by Side Diff: src/shared/assert.h

Issue 1659163007: Rename fletch -> dartino (Closed) Base URL: https://github.com/dartino/sdk.git@master
Patch Set: address comments Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/shared/asan_helper.h ('k') | src/shared/assert.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dartino project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dartino project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE.md file. 3 // BSD-style license that can be found in the LICENSE.md file.
4 4
5 #ifndef SRC_SHARED_ASSERT_H_ 5 #ifndef SRC_SHARED_ASSERT_H_
6 #define SRC_SHARED_ASSERT_H_ 6 #define SRC_SHARED_ASSERT_H_
7 7
8 #ifdef TESTING 8 #ifdef TESTING
9 #include <sstream> 9 #include <sstream>
10 #include <string> 10 #include <string>
11 #endif 11 #endif
12 12
13 #include <assert.h> 13 #include <assert.h>
14 #ifdef static_assert 14 #ifdef static_assert
15 #undef static_assert 15 #undef static_assert
16 #endif 16 #endif
17 17
18 #include "src/shared/globals.h" 18 #include "src/shared/globals.h"
19 19
20 namespace fletch { 20 namespace dartino {
21 namespace DynamicAssertionHelper { 21 namespace DynamicAssertionHelper {
22 22
23 template <typename K> 23 template <typename K>
24 void Fail(const char* file, int line, const char* format, ...); 24 void Fail(const char* file, int line, const char* format, ...);
25 25
26 // two specializations of the above helper routine 26 // two specializations of the above helper routine
27 class ASSERT; 27 class ASSERT;
28 class EXPECT; 28 class EXPECT;
29 29
30 template <> 30 template <>
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 if (left >= right) return; 92 if (left >= right) return;
93 std::stringstream ess, ass; 93 std::stringstream ess, ass;
94 ess << left; 94 ess << left;
95 ass << right; 95 ass << right;
96 std::string es = ess.str(), as = ass.str(); 96 std::string es = ess.str(), as = ass.str();
97 Fail<K>(file, line, "expected: %s >= %s", es.c_str(), as.c_str()); 97 Fail<K>(file, line, "expected: %s >= %s", es.c_str(), as.c_str());
98 } 98 }
99 #endif // ifdef TESTING 99 #endif // ifdef TESTING
100 100
101 } // namespace DynamicAssertionHelper 101 } // namespace DynamicAssertionHelper
102 } // namespace fletch 102 } // namespace dartino
103 103
104 #define FATAL(error) \ 104 #define FATAL(error) \
105 fletch::DynamicAssertionHelper::Fail< \ 105 dartino::DynamicAssertionHelper::Fail< \
106 fletch::DynamicAssertionHelper::ASSERT>(__FILE__, __LINE__, "%s", error) 106 dartino::DynamicAssertionHelper::ASSERT>(__FILE__, __LINE__, "%s", error)
107 107
108 #define FATAL1(format, p1) \ 108 #define FATAL1(format, p1) \
109 fletch::DynamicAssertionHelper::Fail< \ 109 dartino::DynamicAssertionHelper::Fail< \
110 fletch::DynamicAssertionHelper::ASSERT>(__FILE__, __LINE__, format, \ 110 dartino::DynamicAssertionHelper::ASSERT>(__FILE__, __LINE__, format, \
111 (p1)) 111 (p1))
112 112
113 #define FATAL2(format, p1, p2) \ 113 #define FATAL2(format, p1, p2) \
114 fletch::Assert(__FILE__, __LINE__).Fail(format, (p1), (p2)) 114 dartino::Assert(__FILE__, __LINE__).Fail(format, (p1), (p2))
115 115
116 #define UNIMPLEMENTED() FATAL("unimplemented code") 116 #define UNIMPLEMENTED() FATAL("unimplemented code")
117 117
118 #define UNREACHABLE() FATAL("unreachable code") 118 #define UNREACHABLE() FATAL("unreachable code")
119 119
120 #if !defined(TESTING) 120 #if !defined(TESTING)
121 // Only define the minimal set of assertions when not building the test 121 // Only define the minimal set of assertions when not building the test
122 // binaries. 122 // binaries.
123 123
124 // If the system already has an assert of its own, undefine it here so that 124 // If the system already has an assert of its own, undefine it here so that
125 // ours gets used. 125 // ours gets used.
126 #ifdef ASSERT 126 #ifdef ASSERT
127 #undef ASSERT 127 #undef ASSERT
128 #endif 128 #endif
129 129
130 #if defined(DEBUG) 130 #if defined(DEBUG)
131 // DEBUG binaries use assertions in the code. Due to concerns about the code 131 // DEBUG binaries use assertions in the code. Due to concerns about the code
132 // size we do not use the Equals templates for the ASSERT_EQ at the moment. 132 // size we do not use the Equals templates for the ASSERT_EQ at the moment.
133 133
134 #define ASSERT(condition) \ 134 #define ASSERT(condition) \
135 if (!(condition)) { \ 135 if (!(condition)) { \
136 fletch::DynamicAssertionHelper::Fail< \ 136 dartino::DynamicAssertionHelper::Fail< \
137 fletch::DynamicAssertionHelper::ASSERT>(__FILE__, __LINE__, \ 137 dartino::DynamicAssertionHelper::ASSERT>(__FILE__, __LINE__, \
138 "expected: %s", #condition); \ 138 "expected: %s", #condition); \
139 } 139 }
140 140
141 #else // if defined(DEBUG) 141 #else // if defined(DEBUG)
142 142
143 // In order to avoid variable unused warnings for code that only uses 143 // In order to avoid variable unused warnings for code that only uses
144 // a variable in an ASSERT or EXPECT, we make sure to use the macro 144 // a variable in an ASSERT or EXPECT, we make sure to use the macro
145 // argument. 145 // argument.
146 #define ASSERT(condition) \ 146 #define ASSERT(condition) \
147 while (false && (condition)) { \ 147 while (false && (condition)) { \
148 } 148 }
149 149
150 #endif // if defined(DEBUG) 150 #endif // if defined(DEBUG)
151 151
152 #else // if !defined(TESTING) 152 #else // if !defined(TESTING)
153 // TESTING is defined when building the test files. They do have a much wider 153 // TESTING is defined when building the test files. They do have a much wider
154 // variety of checks and error reporting available when compared to the normal 154 // variety of checks and error reporting available when compared to the normal
155 // runtime code. Also all of the checks are enabled for the tests themselves. 155 // runtime code. Also all of the checks are enabled for the tests themselves.
156 // The runtime code only has assertions enabled when running the debug test 156 // The runtime code only has assertions enabled when running the debug test
157 // binaries. 157 // binaries.
158 158
159 #define ASSERT(condition) \ 159 #define ASSERT(condition) \
160 if (!(condition)) { \ 160 if (!(condition)) { \
161 fletch::DynamicAssertionHelper::Fail< \ 161 dartino::DynamicAssertionHelper::Fail< \
162 fletch::DynamicAssertionHelper::ASSERT>(__FILE__, __LINE__, \ 162 dartino::DynamicAssertionHelper::ASSERT>(__FILE__, __LINE__, \
163 "expected: %s", #condition); \ 163 "expected: %s", #condition); \
164 } 164 }
165 165
166 #define ASSERT_EQ(expected, actual) \ 166 #define ASSERT_EQ(expected, actual) \
167 fletch::DynamicAssertionHelper::Equals< \ 167 dartino::DynamicAssertionHelper::Equals< \
168 fletch::DynamicAssertionHelper::ASSERT>(__FILE__, __LINE__, (expected), \ 168 dartino::DynamicAssertionHelper::ASSERT>(__FILE__, __LINE__, (expected), \
169 (actual)) 169 (actual))
170 170
171 #define ASSERT_STREQ(expected, actual) \ 171 #define ASSERT_STREQ(expected, actual) \
172 fletch::DynamicAssertionHelper::StringEquals< \ 172 dartino::DynamicAssertionHelper::StringEquals< \
173 fletch::DynamicAssertionHelper::ASSERT>(__FILE__, __LINE__, (expected), \ 173 dartino::DynamicAssertionHelper::ASSERT>(__FILE__, __LINE__, (expected), \
174 (actual)) 174 (actual))
175 175
176 #define ASSERT_LT(left, right) \ 176 #define ASSERT_LT(left, right) \
177 fletch::DynamicAssertionHelper::LessThan< \ 177 dartino::DynamicAssertionHelper::LessThan< \
178 fletch::DynamicAssertionHelper::ASSERT>(__FILE__, __LINE__, (left), \ 178 dartino::DynamicAssertionHelper::ASSERT>(__FILE__, __LINE__, (left), \
179 (right)) 179 (right))
180 180
181 #define ASSERT_LE(left, right) \ 181 #define ASSERT_LE(left, right) \
182 fletch::DynamicAssertionHelper::LessEqual< \ 182 dartino::DynamicAssertionHelper::LessEqual< \
183 fletch::DynamicAssertionHelper::ASSERT>(__FILE__, __LINE__, (left), \ 183 dartino::DynamicAssertionHelper::ASSERT>(__FILE__, __LINE__, (left), \
184 (right)) 184 (right))
185 185
186 #define ASSERT_GT(left, right) \ 186 #define ASSERT_GT(left, right) \
187 fletch::DynamicAssertionHelper::GreaterThan< \ 187 dartino::DynamicAssertionHelper::GreaterThan< \
188 fletch::DynamicAssertionHelper::ASSERT>(__FILE__, __LINE__, (left), \ 188 dartino::DynamicAssertionHelper::ASSERT>(__FILE__, __LINE__, (left), \
189 (right)) 189 (right))
190 190
191 #define ASSERT_GE(left, right) \ 191 #define ASSERT_GE(left, right) \
192 fletch::DynamicAssertionHelper::GreaterEqual< \ 192 dartino::DynamicAssertionHelper::GreaterEqual< \
193 fletch::DynamicAssertionHelper::ASSERT>(__FILE__, __LINE__, (left), \ 193 dartino::DynamicAssertionHelper::ASSERT>(__FILE__, __LINE__, (left), \
194 (right)) 194 (right))
195 195
196 #define EXPECT(condition) \ 196 #define EXPECT(condition) \
197 if (!(condition)) { \ 197 if (!(condition)) { \
198 fletch::DynamicAssertionHelper::Fail< \ 198 dartino::DynamicAssertionHelper::Fail< \
199 fletch::DynamicAssertionHelper::EXPECT>(__FILE__, __LINE__, \ 199 dartino::DynamicAssertionHelper::EXPECT>(__FILE__, __LINE__, \
200 "expected: %s", #condition); \ 200 "expected: %s", #condition); \
201 } 201 }
202 202
203 #define EXPECT_EQ(expected, actual) \ 203 #define EXPECT_EQ(expected, actual) \
204 fletch::DynamicAssertionHelper::Equals< \ 204 dartino::DynamicAssertionHelper::Equals< \
205 fletch::DynamicAssertionHelper::EXPECT>(__FILE__, __LINE__, (expected), \ 205 dartino::DynamicAssertionHelper::EXPECT>(__FILE__, __LINE__, (expected), \
206 (actual)) 206 (actual))
207 207
208 #define EXPECT_STREQ(expected, actual) \ 208 #define EXPECT_STREQ(expected, actual) \
209 fletch::DynamicAssertionHelper::StringEquals< \ 209 dartino::DynamicAssertionHelper::StringEquals< \
210 fletch::DynamicAssertionHelper::EXPECT>(__FILE__, __LINE__, (expected), \ 210 dartino::DynamicAssertionHelper::EXPECT>(__FILE__, __LINE__, (expected), \
211 (actual)) 211 (actual))
212 212
213 #define EXPECT_LT(left, right) \ 213 #define EXPECT_LT(left, right) \
214 fletch::DynamicAssertionHelper::LessThan< \ 214 dartino::DynamicAssertionHelper::LessThan< \
215 fletch::DynamicAssertionHelper::EXPECT>(__FILE__, __LINE__, (left), \ 215 dartino::DynamicAssertionHelper::EXPECT>(__FILE__, __LINE__, (left), \
216 (right)) 216 (right))
217 217
218 #define EXPECT_LE(left, right) \ 218 #define EXPECT_LE(left, right) \
219 fletch::DynamicAssertionHelper::LessEqual< \ 219 dartino::DynamicAssertionHelper::LessEqual< \
220 fletch::DynamicAssertionHelper::EXPECT>(__FILE__, __LINE__, (left), \ 220 dartino::DynamicAssertionHelper::EXPECT>(__FILE__, __LINE__, (left), \
221 (right)) 221 (right))
222 222
223 #define EXPECT_GT(left, right) \ 223 #define EXPECT_GT(left, right) \
224 fletch::DynamicAssertionHelper::GreaterThan< \ 224 dartino::DynamicAssertionHelper::GreaterThan< \
225 fletch::DynamicAssertionHelper::EXPECT>(__FILE__, __LINE__, (left), \ 225 dartino::DynamicAssertionHelper::EXPECT>(__FILE__, __LINE__, (left), \
226 (right)) 226 (right))
227 227
228 #define EXPECT_GE(left, right) \ 228 #define EXPECT_GE(left, right) \
229 fletch::DynamicAssertionHelper::GreaterEqual< \ 229 dartino::DynamicAssertionHelper::GreaterEqual< \
230 fletch::DynamicAssertionHelper::EXPECT>(__FILE__, __LINE__, (left), \ 230 dartino::DynamicAssertionHelper::EXPECT>(__FILE__, __LINE__, (left), \
231 (right)) 231 (right))
232 232
233 #endif // if !defined(TESTING) 233 #endif // if !defined(TESTING)
234 234
235 #endif // SRC_SHARED_ASSERT_H_ 235 #endif // SRC_SHARED_ASSERT_H_
OLDNEW
« no previous file with comments | « src/shared/asan_helper.h ('k') | src/shared/assert.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698