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

Side by Side Diff: runtime/vm/assert.h

Issue 8851008: Add support for interrupting an isolate in the vm. Interrupts are (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: '' Created 9 years 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart 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 file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef VM_ASSERT_H_ 5 #ifndef VM_ASSERT_H_
6 #define VM_ASSERT_H_ 6 #define VM_ASSERT_H_
7 7
8 // TODO(5411406): include sstream for now, once we have a Utils::toString() 8 // TODO(5411406): include sstream for now, once we have a Utils::toString()
9 // implemented for all the primitive types we can replace the usage of 9 // implemented for all the primitive types we can replace the usage of
10 // sstream by Utils::toString() 10 // sstream by Utils::toString()
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 template<typename E, typename A> 42 template<typename E, typename A>
43 void NotEquals(const E& not_expected, const A& actual); 43 void NotEquals(const E& not_expected, const A& actual);
44 44
45 template<typename E, typename A, typename T> 45 template<typename E, typename A, typename T>
46 void FloatEquals(const E& expected, const A& actual, const T& tol); 46 void FloatEquals(const E& expected, const A& actual, const T& tol);
47 47
48 template<typename E, typename A> 48 template<typename E, typename A>
49 void StringEquals(const E& expected, const A& actual); 49 void StringEquals(const E& expected, const A& actual);
50 50
51 template<typename E, typename A> 51 template<typename E, typename A>
52 void IsSubstring(const E& needle, const A& haystack);
53
54 template<typename E, typename A>
52 void LessThan(const E& left, const A& right); 55 void LessThan(const E& left, const A& right);
53 56
54 template<typename E, typename A> 57 template<typename E, typename A>
55 void LessEqual(const E& left, const A& right); 58 void LessEqual(const E& left, const A& right);
56 59
57 template<typename E, typename A> 60 template<typename E, typename A>
58 void GreaterThan(const E& left, const A& right); 61 void GreaterThan(const E& left, const A& right);
59 62
60 template<typename E, typename A> 63 template<typename E, typename A>
61 void GreaterEqual(const E& left, const A& right); 64 void GreaterEqual(const E& left, const A& right);
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 std::stringstream ess, ass; 136 std::stringstream ess, ass;
134 ess << expected; 137 ess << expected;
135 ass << actual; 138 ass << actual;
136 std::string es = ess.str(), as = ass.str(); 139 std::string es = ess.str(), as = ass.str();
137 if (as == es) return; 140 if (as == es) return;
138 Fail("expected: <\"%s\"> but was: <\"%s\">", es.c_str(), as.c_str()); 141 Fail("expected: <\"%s\"> but was: <\"%s\">", es.c_str(), as.c_str());
139 } 142 }
140 143
141 144
142 template<typename E, typename A> 145 template<typename E, typename A>
146 void DynamicAssertionHelper::IsSubstring(const E& needle, const A& haystack) {
147 std::stringstream ess, ass;
148 ess << needle;
149 ass << haystack;
150 std::string es = ess.str(), as = ass.str();
151 if (as.find(es) != std::string::npos) return;
152 Fail("expected <\"%s\"> to be a substring of <\"%s\">",
153 es.c_str(), as.c_str());
154 }
155
156
157 template<typename E, typename A>
143 void DynamicAssertionHelper::LessThan(const E& left, const A& right) { 158 void DynamicAssertionHelper::LessThan(const E& left, const A& right) {
144 if (left < right) return; 159 if (left < right) return;
145 std::stringstream ess, ass; 160 std::stringstream ess, ass;
146 ess << left; 161 ess << left;
147 ass << right; 162 ass << right;
148 std::string es = ess.str(), as = ass.str(); 163 std::string es = ess.str(), as = ass.str();
149 Fail("expected: %s < %s", es.c_str(), as.c_str()); 164 Fail("expected: %s < %s", es.c_str(), as.c_str());
150 } 165 }
151 166
152 167
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
241 256
242 #define EXPECT_NE(not_expected, actual) \ 257 #define EXPECT_NE(not_expected, actual) \
243 dart::Expect(__FILE__, __LINE__).NotEquals((not_expected), (actual)) 258 dart::Expect(__FILE__, __LINE__).NotEquals((not_expected), (actual))
244 259
245 #define EXPECT_FLOAT_EQ(expected, actual, tol) \ 260 #define EXPECT_FLOAT_EQ(expected, actual, tol) \
246 dart::Expect(__FILE__, __LINE__).FloatEquals((expected), (actual), (tol)) 261 dart::Expect(__FILE__, __LINE__).FloatEquals((expected), (actual), (tol))
247 262
248 #define EXPECT_STREQ(expected, actual) \ 263 #define EXPECT_STREQ(expected, actual) \
249 dart::Expect(__FILE__, __LINE__).StringEquals((expected), (actual)) 264 dart::Expect(__FILE__, __LINE__).StringEquals((expected), (actual))
250 265
266 #define EXPECT_SUBSTRING(needle, haystack) \
267 dart::Expect(__FILE__, __LINE__).IsSubstring((needle), (haystack))
268
251 #define EXPECT_LT(left, right) \ 269 #define EXPECT_LT(left, right) \
252 dart::Expect(__FILE__, __LINE__).LessThan((left), (right)) 270 dart::Expect(__FILE__, __LINE__).LessThan((left), (right))
253 271
254 #define EXPECT_LE(left, right) \ 272 #define EXPECT_LE(left, right) \
255 dart::Expect(__FILE__, __LINE__).LessEqual((left), (right)) 273 dart::Expect(__FILE__, __LINE__).LessEqual((left), (right))
256 274
257 #define EXPECT_GT(left, right) \ 275 #define EXPECT_GT(left, right) \
258 dart::Expect(__FILE__, __LINE__).GreaterThan((left), (right)) 276 dart::Expect(__FILE__, __LINE__).GreaterThan((left), (right))
259 277
260 #define EXPECT_GE(left, right) \ 278 #define EXPECT_GE(left, right) \
261 dart::Expect(__FILE__, __LINE__).GreaterEqual((left), (right)) 279 dart::Expect(__FILE__, __LINE__).GreaterEqual((left), (right))
262 #endif 280 #endif
263 281
264 // TODO(iposva): provide a better way to get extra info on an EXPECT 282 // TODO(iposva): provide a better way to get extra info on an EXPECT
265 // fail - you suggested EXPECT_EQ(expected, actual, msg_format, 283 // fail - you suggested EXPECT_EQ(expected, actual, msg_format,
266 // parameters_for_msg...), I quite like the google3 method 284 // parameters_for_msg...), I quite like the google3 method
267 // EXPECT_EQ(a, b) << "more stuff here...". (benl). 285 // EXPECT_EQ(a, b) << "more stuff here...". (benl).
268 286
269 #define WARN(error) \ 287 #define WARN(error) \
270 dart::Expect(__FILE__, __LINE__).Fail("%s", error) 288 dart::Expect(__FILE__, __LINE__).Fail("%s", error)
271 289
272 #define WARN1(format, p1) \ 290 #define WARN1(format, p1) \
273 dart::Expect(__FILE__, __LINE__).Fail(format, (p1)) 291 dart::Expect(__FILE__, __LINE__).Fail(format, (p1))
274 292
275 #define WARN2(format, p1, p2) \ 293 #define WARN2(format, p1, p2) \
276 dart::Expect(__FILE__, __LINE__).Fail(format, (p1), (p2)) 294 dart::Expect(__FILE__, __LINE__).Fail(format, (p1), (p2))
277 295
278 #endif // VM_ASSERT_H_ 296 #endif // VM_ASSERT_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698