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

Side by Side Diff: webrtc/base/safe_compare_unittest.cc

Issue 2802423002: Rename safe_cmp::{Eq,Ne,Lt,Le,Ge,Gt} to Safe{Eq,Ne,Lt,Le,Ge,Gt} (Closed)
Patch Set: Created 3 years, 6 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 | « webrtc/base/safe_compare.h ('k') | webrtc/base/safe_minmax.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2016 The WebRTC Project Authors. All rights reserved. 2 * Copyright 2016 The WebRTC Project Authors. All rights reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 22 matching lines...) Expand all
33 33
34 // clang-format off 34 // clang-format off
35 35
36 // These functions aren't used in the tests, but it's useful to look at the 36 // These functions aren't used in the tests, but it's useful to look at the
37 // compiler output for them, and verify that (1) the same-signedness *Safe 37 // compiler output for them, and verify that (1) the same-signedness *Safe
38 // functions result in exactly the same code as their *Ref counterparts, and 38 // functions result in exactly the same code as their *Ref counterparts, and
39 // that (2) the mixed-signedness *Safe functions have just a few extra 39 // that (2) the mixed-signedness *Safe functions have just a few extra
40 // arithmetic and logic instructions (but no extra control flow instructions). 40 // arithmetic and logic instructions (but no extra control flow instructions).
41 bool TestLessThanRef( int a, int b) { return a < b; } 41 bool TestLessThanRef( int a, int b) { return a < b; }
42 bool TestLessThanRef( unsigned a, unsigned b) { return a < b; } 42 bool TestLessThanRef( unsigned a, unsigned b) { return a < b; }
43 bool TestLessThanSafe( int a, int b) { return safe_cmp::Lt(a, b); } 43 bool TestLessThanSafe( int a, int b) { return SafeLt(a, b); }
44 bool TestLessThanSafe(unsigned a, unsigned b) { return safe_cmp::Lt(a, b); } 44 bool TestLessThanSafe(unsigned a, unsigned b) { return SafeLt(a, b); }
45 bool TestLessThanSafe(unsigned a, int b) { return safe_cmp::Lt(a, b); } 45 bool TestLessThanSafe(unsigned a, int b) { return SafeLt(a, b); }
46 bool TestLessThanSafe( int a, unsigned b) { return safe_cmp::Lt(a, b); } 46 bool TestLessThanSafe( int a, unsigned b) { return SafeLt(a, b); }
47 47
48 // For these, we expect the *Ref and *Safe functions to result in identical 48 // For these, we expect the *Ref and *Safe functions to result in identical
49 // code, except for the ones that compare a signed variable with an unsigned 49 // code, except for the ones that compare a signed variable with an unsigned
50 // constant; in that case, the *Ref function does an unsigned comparison (fast 50 // constant; in that case, the *Ref function does an unsigned comparison (fast
51 // but incorrect) and the *Safe function spends a few extra instructions on 51 // but incorrect) and the *Safe function spends a few extra instructions on
52 // doing it right. 52 // doing it right.
53 bool TestLessThan17Ref( int a) { return a < 17; } 53 bool TestLessThan17Ref( int a) { return a < 17; }
54 bool TestLessThan17Ref( unsigned a) { return a < 17; } 54 bool TestLessThan17Ref( unsigned a) { return a < 17; }
55 bool TestLessThan17uRef( int a) { return static_cast<unsigned>(a) < 17u; } 55 bool TestLessThan17uRef( int a) { return static_cast<unsigned>(a) < 17u; }
56 bool TestLessThan17uRef( unsigned a) { return a < 17u; } 56 bool TestLessThan17uRef( unsigned a) { return a < 17u; }
57 bool TestLessThan17Safe( int a) { return safe_cmp::Lt(a, 17); } 57 bool TestLessThan17Safe( int a) { return SafeLt(a, 17); }
58 bool TestLessThan17Safe( unsigned a) { return safe_cmp::Lt(a, 17); } 58 bool TestLessThan17Safe( unsigned a) { return SafeLt(a, 17); }
59 bool TestLessThan17uSafe( int a) { return safe_cmp::Lt(a, 17u); } 59 bool TestLessThan17uSafe( int a) { return SafeLt(a, 17u); }
60 bool TestLessThan17uSafe(unsigned a) { return safe_cmp::Lt(a, 17u); } 60 bool TestLessThan17uSafe(unsigned a) { return SafeLt(a, 17u); }
61 61
62 // Cases where we can't convert to a larger signed type. 62 // Cases where we can't convert to a larger signed type.
63 bool TestLessThanMax( intmax_t a, uintmax_t b) { return safe_cmp::Lt(a, b); } 63 bool TestLessThanMax( intmax_t a, uintmax_t b) { return SafeLt(a, b); }
64 bool TestLessThanMax(uintmax_t a, intmax_t b) { return safe_cmp::Lt(a, b); } 64 bool TestLessThanMax(uintmax_t a, intmax_t b) { return SafeLt(a, b); }
65 bool TestLessThanMax17u( intmax_t a) { return safe_cmp::Lt(a, uintmax_t{17}); } 65 bool TestLessThanMax17u( intmax_t a) { return SafeLt(a, uintmax_t{17}); }
66 bool TestLessThanMax17( uintmax_t a) { return safe_cmp::Lt(a, intmax_t{17}); } 66 bool TestLessThanMax17( uintmax_t a) { return SafeLt(a, intmax_t{17}); }
67 67
68 // Cases where the compiler should be able to compute the result at compile 68 // Cases where the compiler should be able to compute the result at compile
69 // time. 69 // time.
70 bool TestLessThanConst1() { return safe_cmp::Lt( -1, 1); } 70 bool TestLessThanConst1() { return SafeLt( -1, 1); }
71 bool TestLessThanConst2() { return safe_cmp::Lt( m1, umax); } 71 bool TestLessThanConst2() { return SafeLt( m1, umax); }
72 bool TestLessThanConst3() { return safe_cmp::Lt(umax, imin); } 72 bool TestLessThanConst3() { return SafeLt(umax, imin); }
73 bool TestLessThanConst4(unsigned a) { return safe_cmp::Lt( a, -1); } 73 bool TestLessThanConst4(unsigned a) { return SafeLt( a, -1); }
74 bool TestLessThanConst5(unsigned a) { return safe_cmp::Lt(-1, a); } 74 bool TestLessThanConst5(unsigned a) { return SafeLt(-1, a); }
75 bool TestLessThanConst6(unsigned a) { return safe_cmp::Lt( a, a); } 75 bool TestLessThanConst6(unsigned a) { return SafeLt( a, a); }
76 76
77 // clang-format on 77 // clang-format on
78 78
79 TEST(SafeCmpTest, Eq) { 79 TEST(SafeCmpTest, Eq) {
80 static_assert(!safe_cmp::Eq(-1, 2), ""); 80 static_assert(!SafeEq(-1, 2), "");
81 static_assert(!safe_cmp::Eq(-1, 2u), ""); 81 static_assert(!SafeEq(-1, 2u), "");
82 static_assert(!safe_cmp::Eq(2, -1), ""); 82 static_assert(!SafeEq(2, -1), "");
83 static_assert(!safe_cmp::Eq(2u, -1), ""); 83 static_assert(!SafeEq(2u, -1), "");
84 84
85 static_assert(!safe_cmp::Eq(1, 2), ""); 85 static_assert(!SafeEq(1, 2), "");
86 static_assert(!safe_cmp::Eq(1, 2u), ""); 86 static_assert(!SafeEq(1, 2u), "");
87 static_assert(!safe_cmp::Eq(1u, 2), ""); 87 static_assert(!SafeEq(1u, 2), "");
88 static_assert(!safe_cmp::Eq(1u, 2u), ""); 88 static_assert(!SafeEq(1u, 2u), "");
89 static_assert(!safe_cmp::Eq(2, 1), ""); 89 static_assert(!SafeEq(2, 1), "");
90 static_assert(!safe_cmp::Eq(2, 1u), ""); 90 static_assert(!SafeEq(2, 1u), "");
91 static_assert(!safe_cmp::Eq(2u, 1), ""); 91 static_assert(!SafeEq(2u, 1), "");
92 static_assert(!safe_cmp::Eq(2u, 1u), ""); 92 static_assert(!SafeEq(2u, 1u), "");
93 93
94 static_assert(safe_cmp::Eq(2, 2), ""); 94 static_assert(SafeEq(2, 2), "");
95 static_assert(safe_cmp::Eq(2, 2u), ""); 95 static_assert(SafeEq(2, 2u), "");
96 static_assert(safe_cmp::Eq(2u, 2), ""); 96 static_assert(SafeEq(2u, 2), "");
97 static_assert(safe_cmp::Eq(2u, 2u), ""); 97 static_assert(SafeEq(2u, 2u), "");
98 98
99 static_assert(safe_cmp::Eq(imin, imin), ""); 99 static_assert(SafeEq(imin, imin), "");
100 static_assert(!safe_cmp::Eq(imin, umax), ""); 100 static_assert(!SafeEq(imin, umax), "");
101 static_assert(!safe_cmp::Eq(umax, imin), ""); 101 static_assert(!SafeEq(umax, imin), "");
102 static_assert(safe_cmp::Eq(umax, umax), ""); 102 static_assert(SafeEq(umax, umax), "");
103 103
104 static_assert(safe_cmp::Eq(m1, m1), ""); 104 static_assert(SafeEq(m1, m1), "");
105 static_assert(!safe_cmp::Eq(m1, umax), ""); 105 static_assert(!SafeEq(m1, umax), "");
106 static_assert(!safe_cmp::Eq(umax, m1), ""); 106 static_assert(!SafeEq(umax, m1), "");
107 static_assert(safe_cmp::Eq(umax, umax), ""); 107 static_assert(SafeEq(umax, umax), "");
108 108
109 static_assert(!safe_cmp::Eq(1, 2), ""); 109 static_assert(!SafeEq(1, 2), "");
110 static_assert(!safe_cmp::Eq(1, 2.0), ""); 110 static_assert(!SafeEq(1, 2.0), "");
111 static_assert(!safe_cmp::Eq(1.0, 2), ""); 111 static_assert(!SafeEq(1.0, 2), "");
112 static_assert(!safe_cmp::Eq(1.0, 2.0), ""); 112 static_assert(!SafeEq(1.0, 2.0), "");
113 static_assert(!safe_cmp::Eq(2, 1), ""); 113 static_assert(!SafeEq(2, 1), "");
114 static_assert(!safe_cmp::Eq(2, 1.0), ""); 114 static_assert(!SafeEq(2, 1.0), "");
115 static_assert(!safe_cmp::Eq(2.0, 1), ""); 115 static_assert(!SafeEq(2.0, 1), "");
116 static_assert(!safe_cmp::Eq(2.0, 1.0), ""); 116 static_assert(!SafeEq(2.0, 1.0), "");
117 117
118 static_assert(safe_cmp::Eq(2, 2), ""); 118 static_assert(SafeEq(2, 2), "");
119 static_assert(safe_cmp::Eq(2, 2.0), ""); 119 static_assert(SafeEq(2, 2.0), "");
120 static_assert(safe_cmp::Eq(2.0, 2), ""); 120 static_assert(SafeEq(2.0, 2), "");
121 static_assert(safe_cmp::Eq(2.0, 2.0), ""); 121 static_assert(SafeEq(2.0, 2.0), "");
122 122
123 EXPECT_TRUE(safe_cmp::Eq(p1, p1)); 123 EXPECT_TRUE(SafeEq(p1, p1));
124 EXPECT_FALSE(safe_cmp::Eq(p1, p2)); 124 EXPECT_FALSE(SafeEq(p1, p2));
125 EXPECT_FALSE(safe_cmp::Eq(p2, p1)); 125 EXPECT_FALSE(SafeEq(p2, p1));
126 EXPECT_TRUE(safe_cmp::Eq(p2, p2)); 126 EXPECT_TRUE(SafeEq(p2, p2));
127 } 127 }
128 128
129 TEST(SafeCmpTest, Ne) { 129 TEST(SafeCmpTest, Ne) {
130 static_assert(safe_cmp::Ne(-1, 2), ""); 130 static_assert(SafeNe(-1, 2), "");
131 static_assert(safe_cmp::Ne(-1, 2u), ""); 131 static_assert(SafeNe(-1, 2u), "");
132 static_assert(safe_cmp::Ne(2, -1), ""); 132 static_assert(SafeNe(2, -1), "");
133 static_assert(safe_cmp::Ne(2u, -1), ""); 133 static_assert(SafeNe(2u, -1), "");
134 134
135 static_assert(safe_cmp::Ne(1, 2), ""); 135 static_assert(SafeNe(1, 2), "");
136 static_assert(safe_cmp::Ne(1, 2u), ""); 136 static_assert(SafeNe(1, 2u), "");
137 static_assert(safe_cmp::Ne(1u, 2), ""); 137 static_assert(SafeNe(1u, 2), "");
138 static_assert(safe_cmp::Ne(1u, 2u), ""); 138 static_assert(SafeNe(1u, 2u), "");
139 static_assert(safe_cmp::Ne(2, 1), ""); 139 static_assert(SafeNe(2, 1), "");
140 static_assert(safe_cmp::Ne(2, 1u), ""); 140 static_assert(SafeNe(2, 1u), "");
141 static_assert(safe_cmp::Ne(2u, 1), ""); 141 static_assert(SafeNe(2u, 1), "");
142 static_assert(safe_cmp::Ne(2u, 1u), ""); 142 static_assert(SafeNe(2u, 1u), "");
143 143
144 static_assert(!safe_cmp::Ne(2, 2), ""); 144 static_assert(!SafeNe(2, 2), "");
145 static_assert(!safe_cmp::Ne(2, 2u), ""); 145 static_assert(!SafeNe(2, 2u), "");
146 static_assert(!safe_cmp::Ne(2u, 2), ""); 146 static_assert(!SafeNe(2u, 2), "");
147 static_assert(!safe_cmp::Ne(2u, 2u), ""); 147 static_assert(!SafeNe(2u, 2u), "");
148 148
149 static_assert(!safe_cmp::Ne(imin, imin), ""); 149 static_assert(!SafeNe(imin, imin), "");
150 static_assert(safe_cmp::Ne(imin, umax), ""); 150 static_assert(SafeNe(imin, umax), "");
151 static_assert(safe_cmp::Ne(umax, imin), ""); 151 static_assert(SafeNe(umax, imin), "");
152 static_assert(!safe_cmp::Ne(umax, umax), ""); 152 static_assert(!SafeNe(umax, umax), "");
153 153
154 static_assert(!safe_cmp::Ne(m1, m1), ""); 154 static_assert(!SafeNe(m1, m1), "");
155 static_assert(safe_cmp::Ne(m1, umax), ""); 155 static_assert(SafeNe(m1, umax), "");
156 static_assert(safe_cmp::Ne(umax, m1), ""); 156 static_assert(SafeNe(umax, m1), "");
157 static_assert(!safe_cmp::Ne(umax, umax), ""); 157 static_assert(!SafeNe(umax, umax), "");
158 158
159 static_assert(safe_cmp::Ne(1, 2), ""); 159 static_assert(SafeNe(1, 2), "");
160 static_assert(safe_cmp::Ne(1, 2.0), ""); 160 static_assert(SafeNe(1, 2.0), "");
161 static_assert(safe_cmp::Ne(1.0, 2), ""); 161 static_assert(SafeNe(1.0, 2), "");
162 static_assert(safe_cmp::Ne(1.0, 2.0), ""); 162 static_assert(SafeNe(1.0, 2.0), "");
163 static_assert(safe_cmp::Ne(2, 1), ""); 163 static_assert(SafeNe(2, 1), "");
164 static_assert(safe_cmp::Ne(2, 1.0), ""); 164 static_assert(SafeNe(2, 1.0), "");
165 static_assert(safe_cmp::Ne(2.0, 1), ""); 165 static_assert(SafeNe(2.0, 1), "");
166 static_assert(safe_cmp::Ne(2.0, 1.0), ""); 166 static_assert(SafeNe(2.0, 1.0), "");
167 167
168 static_assert(!safe_cmp::Ne(2, 2), ""); 168 static_assert(!SafeNe(2, 2), "");
169 static_assert(!safe_cmp::Ne(2, 2.0), ""); 169 static_assert(!SafeNe(2, 2.0), "");
170 static_assert(!safe_cmp::Ne(2.0, 2), ""); 170 static_assert(!SafeNe(2.0, 2), "");
171 static_assert(!safe_cmp::Ne(2.0, 2.0), ""); 171 static_assert(!SafeNe(2.0, 2.0), "");
172 172
173 EXPECT_FALSE(safe_cmp::Ne(p1, p1)); 173 EXPECT_FALSE(SafeNe(p1, p1));
174 EXPECT_TRUE(safe_cmp::Ne(p1, p2)); 174 EXPECT_TRUE(SafeNe(p1, p2));
175 EXPECT_TRUE(safe_cmp::Ne(p2, p1)); 175 EXPECT_TRUE(SafeNe(p2, p1));
176 EXPECT_FALSE(safe_cmp::Ne(p2, p2)); 176 EXPECT_FALSE(SafeNe(p2, p2));
177 } 177 }
178 178
179 TEST(SafeCmpTest, Lt) { 179 TEST(SafeCmpTest, Lt) {
180 static_assert(safe_cmp::Lt(-1, 2), ""); 180 static_assert(SafeLt(-1, 2), "");
181 static_assert(safe_cmp::Lt(-1, 2u), ""); 181 static_assert(SafeLt(-1, 2u), "");
182 static_assert(!safe_cmp::Lt(2, -1), ""); 182 static_assert(!SafeLt(2, -1), "");
183 static_assert(!safe_cmp::Lt(2u, -1), ""); 183 static_assert(!SafeLt(2u, -1), "");
184 184
185 static_assert(safe_cmp::Lt(1, 2), ""); 185 static_assert(SafeLt(1, 2), "");
186 static_assert(safe_cmp::Lt(1, 2u), ""); 186 static_assert(SafeLt(1, 2u), "");
187 static_assert(safe_cmp::Lt(1u, 2), ""); 187 static_assert(SafeLt(1u, 2), "");
188 static_assert(safe_cmp::Lt(1u, 2u), ""); 188 static_assert(SafeLt(1u, 2u), "");
189 static_assert(!safe_cmp::Lt(2, 1), ""); 189 static_assert(!SafeLt(2, 1), "");
190 static_assert(!safe_cmp::Lt(2, 1u), ""); 190 static_assert(!SafeLt(2, 1u), "");
191 static_assert(!safe_cmp::Lt(2u, 1), ""); 191 static_assert(!SafeLt(2u, 1), "");
192 static_assert(!safe_cmp::Lt(2u, 1u), ""); 192 static_assert(!SafeLt(2u, 1u), "");
193 193
194 static_assert(!safe_cmp::Lt(2, 2), ""); 194 static_assert(!SafeLt(2, 2), "");
195 static_assert(!safe_cmp::Lt(2, 2u), ""); 195 static_assert(!SafeLt(2, 2u), "");
196 static_assert(!safe_cmp::Lt(2u, 2), ""); 196 static_assert(!SafeLt(2u, 2), "");
197 static_assert(!safe_cmp::Lt(2u, 2u), ""); 197 static_assert(!SafeLt(2u, 2u), "");
198 198
199 static_assert(!safe_cmp::Lt(imin, imin), ""); 199 static_assert(!SafeLt(imin, imin), "");
200 static_assert(safe_cmp::Lt(imin, umax), ""); 200 static_assert(SafeLt(imin, umax), "");
201 static_assert(!safe_cmp::Lt(umax, imin), ""); 201 static_assert(!SafeLt(umax, imin), "");
202 static_assert(!safe_cmp::Lt(umax, umax), ""); 202 static_assert(!SafeLt(umax, umax), "");
203 203
204 static_assert(!safe_cmp::Lt(m1, m1), ""); 204 static_assert(!SafeLt(m1, m1), "");
205 static_assert(safe_cmp::Lt(m1, umax), ""); 205 static_assert(SafeLt(m1, umax), "");
206 static_assert(!safe_cmp::Lt(umax, m1), ""); 206 static_assert(!SafeLt(umax, m1), "");
207 static_assert(!safe_cmp::Lt(umax, umax), ""); 207 static_assert(!SafeLt(umax, umax), "");
208 208
209 static_assert(safe_cmp::Lt(1, 2), ""); 209 static_assert(SafeLt(1, 2), "");
210 static_assert(safe_cmp::Lt(1, 2.0), ""); 210 static_assert(SafeLt(1, 2.0), "");
211 static_assert(safe_cmp::Lt(1.0, 2), ""); 211 static_assert(SafeLt(1.0, 2), "");
212 static_assert(safe_cmp::Lt(1.0, 2.0), ""); 212 static_assert(SafeLt(1.0, 2.0), "");
213 static_assert(!safe_cmp::Lt(2, 1), ""); 213 static_assert(!SafeLt(2, 1), "");
214 static_assert(!safe_cmp::Lt(2, 1.0), ""); 214 static_assert(!SafeLt(2, 1.0), "");
215 static_assert(!safe_cmp::Lt(2.0, 1), ""); 215 static_assert(!SafeLt(2.0, 1), "");
216 static_assert(!safe_cmp::Lt(2.0, 1.0), ""); 216 static_assert(!SafeLt(2.0, 1.0), "");
217 217
218 static_assert(!safe_cmp::Lt(2, 2), ""); 218 static_assert(!SafeLt(2, 2), "");
219 static_assert(!safe_cmp::Lt(2, 2.0), ""); 219 static_assert(!SafeLt(2, 2.0), "");
220 static_assert(!safe_cmp::Lt(2.0, 2), ""); 220 static_assert(!SafeLt(2.0, 2), "");
221 static_assert(!safe_cmp::Lt(2.0, 2.0), ""); 221 static_assert(!SafeLt(2.0, 2.0), "");
222 222
223 EXPECT_FALSE(safe_cmp::Lt(p1, p1)); 223 EXPECT_FALSE(SafeLt(p1, p1));
224 EXPECT_TRUE(safe_cmp::Lt(p1, p2)); 224 EXPECT_TRUE(SafeLt(p1, p2));
225 EXPECT_FALSE(safe_cmp::Lt(p2, p1)); 225 EXPECT_FALSE(SafeLt(p2, p1));
226 EXPECT_FALSE(safe_cmp::Lt(p2, p2)); 226 EXPECT_FALSE(SafeLt(p2, p2));
227 } 227 }
228 228
229 TEST(SafeCmpTest, Le) { 229 TEST(SafeCmpTest, Le) {
230 static_assert(safe_cmp::Le(-1, 2), ""); 230 static_assert(SafeLe(-1, 2), "");
231 static_assert(safe_cmp::Le(-1, 2u), ""); 231 static_assert(SafeLe(-1, 2u), "");
232 static_assert(!safe_cmp::Le(2, -1), ""); 232 static_assert(!SafeLe(2, -1), "");
233 static_assert(!safe_cmp::Le(2u, -1), ""); 233 static_assert(!SafeLe(2u, -1), "");
234 234
235 static_assert(safe_cmp::Le(1, 2), ""); 235 static_assert(SafeLe(1, 2), "");
236 static_assert(safe_cmp::Le(1, 2u), ""); 236 static_assert(SafeLe(1, 2u), "");
237 static_assert(safe_cmp::Le(1u, 2), ""); 237 static_assert(SafeLe(1u, 2), "");
238 static_assert(safe_cmp::Le(1u, 2u), ""); 238 static_assert(SafeLe(1u, 2u), "");
239 static_assert(!safe_cmp::Le(2, 1), ""); 239 static_assert(!SafeLe(2, 1), "");
240 static_assert(!safe_cmp::Le(2, 1u), ""); 240 static_assert(!SafeLe(2, 1u), "");
241 static_assert(!safe_cmp::Le(2u, 1), ""); 241 static_assert(!SafeLe(2u, 1), "");
242 static_assert(!safe_cmp::Le(2u, 1u), ""); 242 static_assert(!SafeLe(2u, 1u), "");
243 243
244 static_assert(safe_cmp::Le(2, 2), ""); 244 static_assert(SafeLe(2, 2), "");
245 static_assert(safe_cmp::Le(2, 2u), ""); 245 static_assert(SafeLe(2, 2u), "");
246 static_assert(safe_cmp::Le(2u, 2), ""); 246 static_assert(SafeLe(2u, 2), "");
247 static_assert(safe_cmp::Le(2u, 2u), ""); 247 static_assert(SafeLe(2u, 2u), "");
248 248
249 static_assert(safe_cmp::Le(imin, imin), ""); 249 static_assert(SafeLe(imin, imin), "");
250 static_assert(safe_cmp::Le(imin, umax), ""); 250 static_assert(SafeLe(imin, umax), "");
251 static_assert(!safe_cmp::Le(umax, imin), ""); 251 static_assert(!SafeLe(umax, imin), "");
252 static_assert(safe_cmp::Le(umax, umax), ""); 252 static_assert(SafeLe(umax, umax), "");
253 253
254 static_assert(safe_cmp::Le(m1, m1), ""); 254 static_assert(SafeLe(m1, m1), "");
255 static_assert(safe_cmp::Le(m1, umax), ""); 255 static_assert(SafeLe(m1, umax), "");
256 static_assert(!safe_cmp::Le(umax, m1), ""); 256 static_assert(!SafeLe(umax, m1), "");
257 static_assert(safe_cmp::Le(umax, umax), ""); 257 static_assert(SafeLe(umax, umax), "");
258 258
259 static_assert(safe_cmp::Le(1, 2), ""); 259 static_assert(SafeLe(1, 2), "");
260 static_assert(safe_cmp::Le(1, 2.0), ""); 260 static_assert(SafeLe(1, 2.0), "");
261 static_assert(safe_cmp::Le(1.0, 2), ""); 261 static_assert(SafeLe(1.0, 2), "");
262 static_assert(safe_cmp::Le(1.0, 2.0), ""); 262 static_assert(SafeLe(1.0, 2.0), "");
263 static_assert(!safe_cmp::Le(2, 1), ""); 263 static_assert(!SafeLe(2, 1), "");
264 static_assert(!safe_cmp::Le(2, 1.0), ""); 264 static_assert(!SafeLe(2, 1.0), "");
265 static_assert(!safe_cmp::Le(2.0, 1), ""); 265 static_assert(!SafeLe(2.0, 1), "");
266 static_assert(!safe_cmp::Le(2.0, 1.0), ""); 266 static_assert(!SafeLe(2.0, 1.0), "");
267 267
268 static_assert(safe_cmp::Le(2, 2), ""); 268 static_assert(SafeLe(2, 2), "");
269 static_assert(safe_cmp::Le(2, 2.0), ""); 269 static_assert(SafeLe(2, 2.0), "");
270 static_assert(safe_cmp::Le(2.0, 2), ""); 270 static_assert(SafeLe(2.0, 2), "");
271 static_assert(safe_cmp::Le(2.0, 2.0), ""); 271 static_assert(SafeLe(2.0, 2.0), "");
272 272
273 EXPECT_TRUE(safe_cmp::Le(p1, p1)); 273 EXPECT_TRUE(SafeLe(p1, p1));
274 EXPECT_TRUE(safe_cmp::Le(p1, p2)); 274 EXPECT_TRUE(SafeLe(p1, p2));
275 EXPECT_FALSE(safe_cmp::Le(p2, p1)); 275 EXPECT_FALSE(SafeLe(p2, p1));
276 EXPECT_TRUE(safe_cmp::Le(p2, p2)); 276 EXPECT_TRUE(SafeLe(p2, p2));
277 } 277 }
278 278
279 TEST(SafeCmpTest, Gt) { 279 TEST(SafeCmpTest, Gt) {
280 static_assert(!safe_cmp::Gt(-1, 2), ""); 280 static_assert(!SafeGt(-1, 2), "");
281 static_assert(!safe_cmp::Gt(-1, 2u), ""); 281 static_assert(!SafeGt(-1, 2u), "");
282 static_assert(safe_cmp::Gt(2, -1), ""); 282 static_assert(SafeGt(2, -1), "");
283 static_assert(safe_cmp::Gt(2u, -1), ""); 283 static_assert(SafeGt(2u, -1), "");
284 284
285 static_assert(!safe_cmp::Gt(1, 2), ""); 285 static_assert(!SafeGt(1, 2), "");
286 static_assert(!safe_cmp::Gt(1, 2u), ""); 286 static_assert(!SafeGt(1, 2u), "");
287 static_assert(!safe_cmp::Gt(1u, 2), ""); 287 static_assert(!SafeGt(1u, 2), "");
288 static_assert(!safe_cmp::Gt(1u, 2u), ""); 288 static_assert(!SafeGt(1u, 2u), "");
289 static_assert(safe_cmp::Gt(2, 1), ""); 289 static_assert(SafeGt(2, 1), "");
290 static_assert(safe_cmp::Gt(2, 1u), ""); 290 static_assert(SafeGt(2, 1u), "");
291 static_assert(safe_cmp::Gt(2u, 1), ""); 291 static_assert(SafeGt(2u, 1), "");
292 static_assert(safe_cmp::Gt(2u, 1u), ""); 292 static_assert(SafeGt(2u, 1u), "");
293 293
294 static_assert(!safe_cmp::Gt(2, 2), ""); 294 static_assert(!SafeGt(2, 2), "");
295 static_assert(!safe_cmp::Gt(2, 2u), ""); 295 static_assert(!SafeGt(2, 2u), "");
296 static_assert(!safe_cmp::Gt(2u, 2), ""); 296 static_assert(!SafeGt(2u, 2), "");
297 static_assert(!safe_cmp::Gt(2u, 2u), ""); 297 static_assert(!SafeGt(2u, 2u), "");
298 298
299 static_assert(!safe_cmp::Gt(imin, imin), ""); 299 static_assert(!SafeGt(imin, imin), "");
300 static_assert(!safe_cmp::Gt(imin, umax), ""); 300 static_assert(!SafeGt(imin, umax), "");
301 static_assert(safe_cmp::Gt(umax, imin), ""); 301 static_assert(SafeGt(umax, imin), "");
302 static_assert(!safe_cmp::Gt(umax, umax), ""); 302 static_assert(!SafeGt(umax, umax), "");
303 303
304 static_assert(!safe_cmp::Gt(m1, m1), ""); 304 static_assert(!SafeGt(m1, m1), "");
305 static_assert(!safe_cmp::Gt(m1, umax), ""); 305 static_assert(!SafeGt(m1, umax), "");
306 static_assert(safe_cmp::Gt(umax, m1), ""); 306 static_assert(SafeGt(umax, m1), "");
307 static_assert(!safe_cmp::Gt(umax, umax), ""); 307 static_assert(!SafeGt(umax, umax), "");
308 308
309 static_assert(!safe_cmp::Gt(1, 2), ""); 309 static_assert(!SafeGt(1, 2), "");
310 static_assert(!safe_cmp::Gt(1, 2.0), ""); 310 static_assert(!SafeGt(1, 2.0), "");
311 static_assert(!safe_cmp::Gt(1.0, 2), ""); 311 static_assert(!SafeGt(1.0, 2), "");
312 static_assert(!safe_cmp::Gt(1.0, 2.0), ""); 312 static_assert(!SafeGt(1.0, 2.0), "");
313 static_assert(safe_cmp::Gt(2, 1), ""); 313 static_assert(SafeGt(2, 1), "");
314 static_assert(safe_cmp::Gt(2, 1.0), ""); 314 static_assert(SafeGt(2, 1.0), "");
315 static_assert(safe_cmp::Gt(2.0, 1), ""); 315 static_assert(SafeGt(2.0, 1), "");
316 static_assert(safe_cmp::Gt(2.0, 1.0), ""); 316 static_assert(SafeGt(2.0, 1.0), "");
317 317
318 static_assert(!safe_cmp::Gt(2, 2), ""); 318 static_assert(!SafeGt(2, 2), "");
319 static_assert(!safe_cmp::Gt(2, 2.0), ""); 319 static_assert(!SafeGt(2, 2.0), "");
320 static_assert(!safe_cmp::Gt(2.0, 2), ""); 320 static_assert(!SafeGt(2.0, 2), "");
321 static_assert(!safe_cmp::Gt(2.0, 2.0), ""); 321 static_assert(!SafeGt(2.0, 2.0), "");
322 322
323 EXPECT_FALSE(safe_cmp::Gt(p1, p1)); 323 EXPECT_FALSE(SafeGt(p1, p1));
324 EXPECT_FALSE(safe_cmp::Gt(p1, p2)); 324 EXPECT_FALSE(SafeGt(p1, p2));
325 EXPECT_TRUE(safe_cmp::Gt(p2, p1)); 325 EXPECT_TRUE(SafeGt(p2, p1));
326 EXPECT_FALSE(safe_cmp::Gt(p2, p2)); 326 EXPECT_FALSE(SafeGt(p2, p2));
327 } 327 }
328 328
329 TEST(SafeCmpTest, Ge) { 329 TEST(SafeCmpTest, Ge) {
330 static_assert(!safe_cmp::Ge(-1, 2), ""); 330 static_assert(!SafeGe(-1, 2), "");
331 static_assert(!safe_cmp::Ge(-1, 2u), ""); 331 static_assert(!SafeGe(-1, 2u), "");
332 static_assert(safe_cmp::Ge(2, -1), ""); 332 static_assert(SafeGe(2, -1), "");
333 static_assert(safe_cmp::Ge(2u, -1), ""); 333 static_assert(SafeGe(2u, -1), "");
334 334
335 static_assert(!safe_cmp::Ge(1, 2), ""); 335 static_assert(!SafeGe(1, 2), "");
336 static_assert(!safe_cmp::Ge(1, 2u), ""); 336 static_assert(!SafeGe(1, 2u), "");
337 static_assert(!safe_cmp::Ge(1u, 2), ""); 337 static_assert(!SafeGe(1u, 2), "");
338 static_assert(!safe_cmp::Ge(1u, 2u), ""); 338 static_assert(!SafeGe(1u, 2u), "");
339 static_assert(safe_cmp::Ge(2, 1), ""); 339 static_assert(SafeGe(2, 1), "");
340 static_assert(safe_cmp::Ge(2, 1u), ""); 340 static_assert(SafeGe(2, 1u), "");
341 static_assert(safe_cmp::Ge(2u, 1), ""); 341 static_assert(SafeGe(2u, 1), "");
342 static_assert(safe_cmp::Ge(2u, 1u), ""); 342 static_assert(SafeGe(2u, 1u), "");
343 343
344 static_assert(safe_cmp::Ge(2, 2), ""); 344 static_assert(SafeGe(2, 2), "");
345 static_assert(safe_cmp::Ge(2, 2u), ""); 345 static_assert(SafeGe(2, 2u), "");
346 static_assert(safe_cmp::Ge(2u, 2), ""); 346 static_assert(SafeGe(2u, 2), "");
347 static_assert(safe_cmp::Ge(2u, 2u), ""); 347 static_assert(SafeGe(2u, 2u), "");
348 348
349 static_assert(safe_cmp::Ge(imin, imin), ""); 349 static_assert(SafeGe(imin, imin), "");
350 static_assert(!safe_cmp::Ge(imin, umax), ""); 350 static_assert(!SafeGe(imin, umax), "");
351 static_assert(safe_cmp::Ge(umax, imin), ""); 351 static_assert(SafeGe(umax, imin), "");
352 static_assert(safe_cmp::Ge(umax, umax), ""); 352 static_assert(SafeGe(umax, umax), "");
353 353
354 static_assert(safe_cmp::Ge(m1, m1), ""); 354 static_assert(SafeGe(m1, m1), "");
355 static_assert(!safe_cmp::Ge(m1, umax), ""); 355 static_assert(!SafeGe(m1, umax), "");
356 static_assert(safe_cmp::Ge(umax, m1), ""); 356 static_assert(SafeGe(umax, m1), "");
357 static_assert(safe_cmp::Ge(umax, umax), ""); 357 static_assert(SafeGe(umax, umax), "");
358 358
359 static_assert(!safe_cmp::Ge(1, 2), ""); 359 static_assert(!SafeGe(1, 2), "");
360 static_assert(!safe_cmp::Ge(1, 2.0), ""); 360 static_assert(!SafeGe(1, 2.0), "");
361 static_assert(!safe_cmp::Ge(1.0, 2), ""); 361 static_assert(!SafeGe(1.0, 2), "");
362 static_assert(!safe_cmp::Ge(1.0, 2.0), ""); 362 static_assert(!SafeGe(1.0, 2.0), "");
363 static_assert(safe_cmp::Ge(2, 1), ""); 363 static_assert(SafeGe(2, 1), "");
364 static_assert(safe_cmp::Ge(2, 1.0), ""); 364 static_assert(SafeGe(2, 1.0), "");
365 static_assert(safe_cmp::Ge(2.0, 1), ""); 365 static_assert(SafeGe(2.0, 1), "");
366 static_assert(safe_cmp::Ge(2.0, 1.0), ""); 366 static_assert(SafeGe(2.0, 1.0), "");
367 367
368 static_assert(safe_cmp::Ge(2, 2), ""); 368 static_assert(SafeGe(2, 2), "");
369 static_assert(safe_cmp::Ge(2, 2.0), ""); 369 static_assert(SafeGe(2, 2.0), "");
370 static_assert(safe_cmp::Ge(2.0, 2), ""); 370 static_assert(SafeGe(2.0, 2), "");
371 static_assert(safe_cmp::Ge(2.0, 2.0), ""); 371 static_assert(SafeGe(2.0, 2.0), "");
372 372
373 EXPECT_TRUE(safe_cmp::Ge(p1, p1)); 373 EXPECT_TRUE(SafeGe(p1, p1));
374 EXPECT_FALSE(safe_cmp::Ge(p1, p2)); 374 EXPECT_FALSE(SafeGe(p1, p2));
375 EXPECT_TRUE(safe_cmp::Ge(p2, p1)); 375 EXPECT_TRUE(SafeGe(p2, p1));
376 EXPECT_TRUE(safe_cmp::Ge(p2, p2)); 376 EXPECT_TRUE(SafeGe(p2, p2));
377 } 377 }
378 378
379 TEST(SafeCmpTest, Enum) { 379 TEST(SafeCmpTest, Enum) {
380 enum E1 { e1 = 13 }; 380 enum E1 { e1 = 13 };
381 enum { e2 = 13 }; 381 enum { e2 = 13 };
382 enum E3 : unsigned { e3 = 13 }; 382 enum E3 : unsigned { e3 = 13 };
383 enum : unsigned { e4 = 13 }; 383 enum : unsigned { e4 = 13 };
384 static_assert(safe_cmp::Eq(13, e1), ""); 384 static_assert(SafeEq(13, e1), "");
385 static_assert(safe_cmp::Eq(13u, e1), ""); 385 static_assert(SafeEq(13u, e1), "");
386 static_assert(safe_cmp::Eq(13, e2), ""); 386 static_assert(SafeEq(13, e2), "");
387 static_assert(safe_cmp::Eq(13u, e2), ""); 387 static_assert(SafeEq(13u, e2), "");
388 static_assert(safe_cmp::Eq(13, e3), ""); 388 static_assert(SafeEq(13, e3), "");
389 static_assert(safe_cmp::Eq(13u, e3), ""); 389 static_assert(SafeEq(13u, e3), "");
390 static_assert(safe_cmp::Eq(13, e4), ""); 390 static_assert(SafeEq(13, e4), "");
391 static_assert(safe_cmp::Eq(13u, e4), ""); 391 static_assert(SafeEq(13u, e4), "");
392 } 392 }
393 393
394 } // namespace rtc 394 } // namespace rtc
OLDNEW
« no previous file with comments | « webrtc/base/safe_compare.h ('k') | webrtc/base/safe_minmax.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698