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

Side by Side Diff: chrome/browser/chromeos/file_system_provider/fileapi/file_stream_reader_unittest.cc

Issue 2528243002: Fix silent truncations when extracting values from CheckedNumeric (Closed)
Patch Set: compile fix Created 4 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
« no previous file with comments | « base/numerics/safe_numerics_unittest.cc ('k') | chrome/utility/safe_browsing/mac/hfs.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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium 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 #include "chrome/browser/chromeos/file_system_provider/fileapi/file_stream_reade r.h" 5 #include "chrome/browser/chromeos/file_system_provider/fileapi/file_stream_reade r.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 storage::FileSystemURL wrong_file_url_; 125 storage::FileSystemURL wrong_file_url_;
126 }; 126 };
127 127
128 TEST_F(FileSystemProviderFileStreamReader, Read_AllAtOnce) { 128 TEST_F(FileSystemProviderFileStreamReader, Read_AllAtOnce) {
129 EventLogger logger; 129 EventLogger logger;
130 130
131 const int64_t initial_offset = 0; 131 const int64_t initial_offset = 0;
132 FileStreamReader reader(NULL, file_url_, initial_offset, 132 FileStreamReader reader(NULL, file_url_, initial_offset,
133 *fake_file_->metadata->modification_time); 133 *fake_file_->metadata->modification_time);
134 scoped_refptr<net::IOBuffer> io_buffer(new net::IOBuffer( 134 scoped_refptr<net::IOBuffer> io_buffer(new net::IOBuffer(
135 base::CheckedNumeric<size_t>(*fake_file_->metadata->size).ValueOrDie())); 135 base::checked_cast<size_t>(*fake_file_->metadata->size)));
136 136
137 const int result = 137 const int result =
138 reader.Read(io_buffer.get(), *fake_file_->metadata->size, 138 reader.Read(io_buffer.get(), *fake_file_->metadata->size,
139 base::Bind(&EventLogger::OnRead, logger.GetWeakPtr())); 139 base::Bind(&EventLogger::OnRead, logger.GetWeakPtr()));
140 EXPECT_EQ(net::ERR_IO_PENDING, result); 140 EXPECT_EQ(net::ERR_IO_PENDING, result);
141 base::RunLoop().RunUntilIdle(); 141 base::RunLoop().RunUntilIdle();
142 142
143 ASSERT_EQ(1u, logger.results().size()); 143 ASSERT_EQ(1u, logger.results().size());
144 EXPECT_LT(0, logger.results()[0]); 144 EXPECT_LT(0, logger.results()[0]);
145 EXPECT_EQ(*fake_file_->metadata->size, logger.results()[0]); 145 EXPECT_EQ(*fake_file_->metadata->size, logger.results()[0]);
146 146
147 std::string buffer_as_string(io_buffer->data(), *fake_file_->metadata->size); 147 std::string buffer_as_string(io_buffer->data(), *fake_file_->metadata->size);
148 EXPECT_EQ(fake_file_->contents, buffer_as_string); 148 EXPECT_EQ(fake_file_->contents, buffer_as_string);
149 } 149 }
150 150
151 TEST_F(FileSystemProviderFileStreamReader, Read_WrongFile) { 151 TEST_F(FileSystemProviderFileStreamReader, Read_WrongFile) {
152 EventLogger logger; 152 EventLogger logger;
153 153
154 const int64_t initial_offset = 0; 154 const int64_t initial_offset = 0;
155 FileStreamReader reader(NULL, wrong_file_url_, initial_offset, 155 FileStreamReader reader(NULL, wrong_file_url_, initial_offset,
156 *fake_file_->metadata->modification_time); 156 *fake_file_->metadata->modification_time);
157 scoped_refptr<net::IOBuffer> io_buffer(new net::IOBuffer( 157 scoped_refptr<net::IOBuffer> io_buffer(new net::IOBuffer(
158 base::CheckedNumeric<size_t>(*fake_file_->metadata->size).ValueOrDie())); 158 base::checked_cast<size_t>(*fake_file_->metadata->size)));
159 159
160 const int result = 160 const int result =
161 reader.Read(io_buffer.get(), *fake_file_->metadata->size, 161 reader.Read(io_buffer.get(), *fake_file_->metadata->size,
162 base::Bind(&EventLogger::OnRead, logger.GetWeakPtr())); 162 base::Bind(&EventLogger::OnRead, logger.GetWeakPtr()));
163 EXPECT_EQ(net::ERR_IO_PENDING, result); 163 EXPECT_EQ(net::ERR_IO_PENDING, result);
164 base::RunLoop().RunUntilIdle(); 164 base::RunLoop().RunUntilIdle();
165 165
166 ASSERT_EQ(1u, logger.results().size()); 166 ASSERT_EQ(1u, logger.results().size());
167 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, logger.results()[0]); 167 EXPECT_EQ(net::ERR_FILE_NOT_FOUND, logger.results()[0]);
168 } 168 }
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 EXPECT_EQ(fake_file_->contents, buffer_as_string); 243 EXPECT_EQ(fake_file_->contents, buffer_as_string);
244 } 244 }
245 245
246 TEST_F(FileSystemProviderFileStreamReader, Read_ModifiedFile) { 246 TEST_F(FileSystemProviderFileStreamReader, Read_ModifiedFile) {
247 EventLogger logger; 247 EventLogger logger;
248 248
249 const int64_t initial_offset = 0; 249 const int64_t initial_offset = 0;
250 FileStreamReader reader(NULL, file_url_, initial_offset, base::Time::Max()); 250 FileStreamReader reader(NULL, file_url_, initial_offset, base::Time::Max());
251 251
252 scoped_refptr<net::IOBuffer> io_buffer(new net::IOBuffer( 252 scoped_refptr<net::IOBuffer> io_buffer(new net::IOBuffer(
253 base::CheckedNumeric<size_t>(*fake_file_->metadata->size).ValueOrDie())); 253 base::checked_cast<size_t>(*fake_file_->metadata->size)));
254 const int result = 254 const int result =
255 reader.Read(io_buffer.get(), *fake_file_->metadata->size, 255 reader.Read(io_buffer.get(), *fake_file_->metadata->size,
256 base::Bind(&EventLogger::OnRead, logger.GetWeakPtr())); 256 base::Bind(&EventLogger::OnRead, logger.GetWeakPtr()));
257 257
258 EXPECT_EQ(net::ERR_IO_PENDING, result); 258 EXPECT_EQ(net::ERR_IO_PENDING, result);
259 base::RunLoop().RunUntilIdle(); 259 base::RunLoop().RunUntilIdle();
260 260
261 ASSERT_EQ(1u, logger.results().size()); 261 ASSERT_EQ(1u, logger.results().size());
262 EXPECT_EQ(net::ERR_UPLOAD_FILE_CHANGED, logger.results()[0]); 262 EXPECT_EQ(net::ERR_UPLOAD_FILE_CHANGED, logger.results()[0]);
263 } 263 }
264 264
265 TEST_F(FileSystemProviderFileStreamReader, Read_ExpectedModificationTimeNull) { 265 TEST_F(FileSystemProviderFileStreamReader, Read_ExpectedModificationTimeNull) {
266 EventLogger logger; 266 EventLogger logger;
267 267
268 const int64_t initial_offset = 0; 268 const int64_t initial_offset = 0;
269 FileStreamReader reader(NULL, file_url_, initial_offset, base::Time()); 269 FileStreamReader reader(NULL, file_url_, initial_offset, base::Time());
270 270
271 scoped_refptr<net::IOBuffer> io_buffer(new net::IOBuffer( 271 scoped_refptr<net::IOBuffer> io_buffer(new net::IOBuffer(
272 base::CheckedNumeric<size_t>(*fake_file_->metadata->size).ValueOrDie())); 272 base::checked_cast<size_t>(*fake_file_->metadata->size)));
273 const int result = 273 const int result =
274 reader.Read(io_buffer.get(), *fake_file_->metadata->size, 274 reader.Read(io_buffer.get(), *fake_file_->metadata->size,
275 base::Bind(&EventLogger::OnRead, logger.GetWeakPtr())); 275 base::Bind(&EventLogger::OnRead, logger.GetWeakPtr()));
276 276
277 EXPECT_EQ(net::ERR_IO_PENDING, result); 277 EXPECT_EQ(net::ERR_IO_PENDING, result);
278 base::RunLoop().RunUntilIdle(); 278 base::RunLoop().RunUntilIdle();
279 279
280 ASSERT_EQ(1u, logger.results().size()); 280 ASSERT_EQ(1u, logger.results().size());
281 EXPECT_EQ(*fake_file_->metadata->size, logger.results()[0]); 281 EXPECT_EQ(*fake_file_->metadata->size, logger.results()[0]);
282 282
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 EXPECT_EQ(net::ERR_IO_PENDING, result); 344 EXPECT_EQ(net::ERR_IO_PENDING, result);
345 base::RunLoop().RunUntilIdle(); 345 base::RunLoop().RunUntilIdle();
346 346
347 ASSERT_EQ(1u, logger.results().size()); 347 ASSERT_EQ(1u, logger.results().size());
348 EXPECT_LT(0, logger.results()[0]); 348 EXPECT_LT(0, logger.results()[0]);
349 EXPECT_EQ(*fake_file_->metadata->size, logger.results()[0]); 349 EXPECT_EQ(*fake_file_->metadata->size, logger.results()[0]);
350 } 350 }
351 351
352 } // namespace file_system_provider 352 } // namespace file_system_provider
353 } // namespace chromeos 353 } // namespace chromeos
OLDNEW
« no previous file with comments | « base/numerics/safe_numerics_unittest.cc ('k') | chrome/utility/safe_browsing/mac/hfs.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698