@@ -48,7 +48,7 @@ TEST(AutoVectorTest, PushBackAndPopBack) {
48
48
}
49
49
50
50
TEST (AutoVectorTest, EmplaceBack) {
51
- typedef std::pair<int , std::string> ValueType;
51
+ typedef std::pair<size_t , std::string> ValueType;
52
52
autovector<ValueType, kSize > vec;
53
53
54
54
for (size_t i = 0 ; i < 1000 * kSize ; ++i) {
@@ -143,18 +143,19 @@ TEST(AutoVectorTest, Iterators) {
143
143
// HACK: make sure -> works
144
144
ASSERT_TRUE (!old->empty ());
145
145
ASSERT_EQ (old_val, *old);
146
- ASSERT_TRUE (old_val != *pos);
146
+ ASSERT_TRUE (pos == vec. end () || old_val != *pos);
147
147
}
148
148
149
149
pos = vec.begin ();
150
- typedef autovector<std::string>::difference_type diff_type;
151
- for (diff_type i = 0 ; i < vec.size (); i += 2 ) {
150
+ for (size_t i = 0 ; i < vec.size (); i += 2 ) {
152
151
// Cannot use ASSERT_EQ since that macro depends on iostream serialization
153
152
ASSERT_TRUE (pos + 2 - 2 == pos);
154
153
pos += 2 ;
155
- ASSERT_TRUE (i + 2 == pos - vec.begin ());
156
154
ASSERT_TRUE (pos >= vec.begin ());
157
155
ASSERT_TRUE (pos <= vec.end ());
156
+
157
+ size_t diff = static_cast <size_t >(pos - vec.begin ());
158
+ ASSERT_EQ (i + 2 , diff);
158
159
}
159
160
}
160
161
@@ -191,7 +192,7 @@ void BenchmarkVectorCreationAndInsertion(
191
192
}
192
193
193
194
template <class TVector >
194
- void BenchmarkSequenceAccess (string name, size_t ops, size_t elem_size) {
195
+ size_t BenchmarkSequenceAccess (string name, size_t ops, size_t elem_size) {
195
196
TVector v;
196
197
for (const auto & item : GetTestKeys (elem_size)) {
197
198
v.push_back (item);
@@ -211,6 +212,8 @@ void BenchmarkSequenceAccess(string name, size_t ops, size_t elem_size) {
211
212
cout << " performed " << ops << " sequence access against " << name << " \n\t "
212
213
<< " size: " << elem_size << " \n\t "
213
214
<< " total time elapsed: " << elapsed << " (ns)" << endl;
215
+ // HACK avoid compiler's optimization to ignore total
216
+ return total;
214
217
}
215
218
216
219
// This test case only reports the performance between std::vector<string>
0 commit comments