OLD | NEW |
---|---|
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_TESTING_GTEST_SUPPORT_H_ | 5 #ifndef V8_TESTING_GTEST_SUPPORT_H_ |
6 #define V8_TESTING_GTEST_SUPPORT_H_ | 6 #define V8_TESTING_GTEST_SUPPORT_H_ |
7 | 7 |
8 #include <stddef.h> | |
9 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
10 | 9 |
11 namespace testing { | 10 namespace testing { |
12 namespace internal { | 11 namespace internal { |
13 | 12 |
14 #define GET_TYPE_NAME(type) \ | 13 #define GET_TYPE_NAME(type) \ |
15 template <> \ | 14 template <> \ |
16 inline std::string GetTypeName<type>() { \ | 15 inline std::string GetTypeName<type>() { \ |
17 return #type; \ | 16 return #type; \ |
18 } | 17 } |
19 GET_TYPE_NAME(bool) | 18 GET_TYPE_NAME(bool) |
20 GET_TYPE_NAME(signed char) | 19 GET_TYPE_NAME(signed char) |
21 GET_TYPE_NAME(unsigned char) | 20 GET_TYPE_NAME(unsigned char) |
22 GET_TYPE_NAME(short) | 21 GET_TYPE_NAME(short) |
23 GET_TYPE_NAME(unsigned short) | 22 GET_TYPE_NAME(unsigned short) |
24 GET_TYPE_NAME(int) | 23 GET_TYPE_NAME(int) |
25 GET_TYPE_NAME(unsigned int) | 24 GET_TYPE_NAME(unsigned int) |
26 GET_TYPE_NAME(long) | 25 GET_TYPE_NAME(long) |
27 GET_TYPE_NAME(unsigned long) | 26 GET_TYPE_NAME(unsigned long) |
28 GET_TYPE_NAME(long long) | 27 GET_TYPE_NAME(long long) |
29 GET_TYPE_NAME(unsigned long long) | 28 GET_TYPE_NAME(unsigned long long) |
30 GET_TYPE_NAME(float) | 29 GET_TYPE_NAME(float) |
31 GET_TYPE_NAME(double) | 30 GET_TYPE_NAME(double) |
32 #undef GET_TYPE_NAME | 31 #undef GET_TYPE_NAME |
33 | 32 |
34 | 33 |
35 // TRACED_FOREACH(type, var, array) expands to a loop that assigns |var| every | 34 // TRACED_FOREACH(type, var, container) expands to a loop that assigns |var| |
36 // item in the |array| and adds a SCOPED_TRACE() message for the |var| while | 35 // every item in the |container| and adds a SCOPED_TRACE() message for the |
37 // inside the loop body. | 36 // |var| while inside the loop body. |
38 // TODO(bmeurer): Migrate to C++11 once we're ready. | 37 #define TRACED_FOREACH(_type, _var, _container) \ |
39 #define TRACED_FOREACH(_type, _var, _array) \ | 38 for (_type const _var : _container) \ |
Sven Panne
2015/01/16 08:30:38
I know that this is the literal translation (more
| |
40 for (size_t _i = 0; _i < arraysize(_array); ++_i) \ | 39 for (bool _done = false; !_done;) \ |
41 for (bool _done = false; !_done;) \ | 40 for (SCOPED_TRACE(::testing::Message() << #_var << " = " << _var); \ |
42 for (_type const _var = _array[_i]; !_done;) \ | 41 !_done; _done = true) |
43 for (SCOPED_TRACE(::testing::Message() << #_var << " = " << _var); \ | |
44 !_done; _done = true) | |
45 | 42 |
46 | 43 |
47 // TRACED_FORRANGE(type, var, low, high) expands to a loop that assigns |var| | 44 // TRACED_FORRANGE(type, var, low, high) expands to a loop that assigns |var| |
48 // every value in the range |low| to (including) |high| and adds a | 45 // every value in the range |low| to (including) |high| and adds a |
49 // SCOPED_TRACE() message for the |var| while inside the loop body. | 46 // SCOPED_TRACE() message for the |var| while inside the loop body. |
50 // TODO(bmeurer): Migrate to C++11 once we're ready. | 47 // TODO(bmeurer): Migrate to C++11 once we're ready. |
51 #define TRACED_FORRANGE(_type, _var, _low, _high) \ | 48 #define TRACED_FORRANGE(_type, _var, _low, _high) \ |
52 for (_type _i = _low; _i <= _high; ++_i) \ | 49 for (_type _i = _low; _i <= _high; ++_i) \ |
53 for (bool _done = false; !_done;) \ | 50 for (bool _done = false; !_done;) \ |
54 for (_type const _var = _i; !_done;) \ | 51 for (_type const _var = _i; !_done;) \ |
55 for (SCOPED_TRACE(::testing::Message() << #_var << " = " << _var); \ | 52 for (SCOPED_TRACE(::testing::Message() << #_var << " = " << _var); \ |
56 !_done; _done = true) | 53 !_done; _done = true) |
57 | 54 |
58 } // namespace internal | 55 } // namespace internal |
59 } // namespace testing | 56 } // namespace testing |
60 | 57 |
61 #endif // V8_TESTING_GTEST_SUPPORT_H_ | 58 #endif // V8_TESTING_GTEST_SUPPORT_H_ |
OLD | NEW |