| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "base/file_util.h" | 5 #include "base/file_util.h" |
| 6 #include "base/files/file.h" | 6 #include "base/files/file.h" |
| 7 #include "base/files/scoped_temp_dir.h" | 7 #include "base/files/scoped_temp_dir.h" |
| 8 #include "base/time/time.h" | 8 #include "base/time/time.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" | 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 | 10 |
| (...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 265 | 265 |
| 266 TEST(FileTest, Length) { | 266 TEST(FileTest, Length) { |
| 267 base::ScopedTempDir temp_dir; | 267 base::ScopedTempDir temp_dir; |
| 268 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); | 268 ASSERT_TRUE(temp_dir.CreateUniqueTempDir()); |
| 269 FilePath file_path = temp_dir.path().AppendASCII("truncate_file"); | 269 FilePath file_path = temp_dir.path().AppendASCII("truncate_file"); |
| 270 File file(file_path, | 270 File file(file_path, |
| 271 base::File::FLAG_CREATE | base::File::FLAG_READ | | 271 base::File::FLAG_CREATE | base::File::FLAG_READ | |
| 272 base::File::FLAG_WRITE); | 272 base::File::FLAG_WRITE); |
| 273 ASSERT_TRUE(file.IsValid()); | 273 ASSERT_TRUE(file.IsValid()); |
| 274 EXPECT_EQ(0, file.GetLength()); | 274 EXPECT_EQ(0, file.GetLength()); |
| 275 EXPECT_EQ(0, base::File::Region(file).offset); |
| 276 EXPECT_EQ(0, base::File::Region(file).size); |
| 275 | 277 |
| 276 // Write "test" to the file. | 278 // Write "test" to the file. |
| 277 char data_to_write[] = "test"; | 279 char data_to_write[] = "test"; |
| 278 int kTestDataSize = 4; | 280 int kTestDataSize = 4; |
| 279 int bytes_written = file.Write(0, data_to_write, kTestDataSize); | 281 int bytes_written = file.Write(0, data_to_write, kTestDataSize); |
| 280 EXPECT_EQ(kTestDataSize, bytes_written); | 282 EXPECT_EQ(kTestDataSize, bytes_written); |
| 281 | 283 |
| 282 // Extend the file. | 284 // Extend the file. |
| 283 const int kExtendedFileLength = 10; | 285 const int kExtendedFileLength = 10; |
| 284 int64 file_size = 0; | 286 int64 file_size = 0; |
| 285 EXPECT_TRUE(file.SetLength(kExtendedFileLength)); | 287 EXPECT_TRUE(file.SetLength(kExtendedFileLength)); |
| 286 EXPECT_EQ(kExtendedFileLength, file.GetLength()); | 288 EXPECT_EQ(kExtendedFileLength, file.GetLength()); |
| 287 EXPECT_TRUE(GetFileSize(file_path, &file_size)); | 289 EXPECT_TRUE(GetFileSize(file_path, &file_size)); |
| 288 EXPECT_EQ(kExtendedFileLength, file_size); | 290 EXPECT_EQ(kExtendedFileLength, file_size); |
| 291 EXPECT_EQ(0, base::File::Region(file).offset); |
| 292 EXPECT_EQ(kExtendedFileLength, base::File::Region(file).size); |
| 289 | 293 |
| 290 // Make sure the file was zero-padded. | 294 // Make sure the file was zero-padded. |
| 291 char data_read[32]; | 295 char data_read[32]; |
| 292 int bytes_read = file.Read(0, data_read, static_cast<int>(file_size)); | 296 int bytes_read = file.Read(0, data_read, static_cast<int>(file_size)); |
| 293 EXPECT_EQ(file_size, bytes_read); | 297 EXPECT_EQ(file_size, bytes_read); |
| 294 for (int i = 0; i < kTestDataSize; i++) | 298 for (int i = 0; i < kTestDataSize; i++) |
| 295 EXPECT_EQ(data_to_write[i], data_read[i]); | 299 EXPECT_EQ(data_to_write[i], data_read[i]); |
| 296 for (int i = kTestDataSize; i < file_size; i++) | 300 for (int i = kTestDataSize; i < file_size; i++) |
| 297 EXPECT_EQ(0, data_read[i]); | 301 EXPECT_EQ(0, data_read[i]); |
| 298 | 302 |
| 299 // Truncate the file. | 303 // Truncate the file. |
| 300 const int kTruncatedFileLength = 2; | 304 const int kTruncatedFileLength = 2; |
| 301 EXPECT_TRUE(file.SetLength(kTruncatedFileLength)); | 305 EXPECT_TRUE(file.SetLength(kTruncatedFileLength)); |
| 302 EXPECT_EQ(kTruncatedFileLength, file.GetLength()); | 306 EXPECT_EQ(kTruncatedFileLength, file.GetLength()); |
| 303 EXPECT_TRUE(GetFileSize(file_path, &file_size)); | 307 EXPECT_TRUE(GetFileSize(file_path, &file_size)); |
| 304 EXPECT_EQ(kTruncatedFileLength, file_size); | 308 EXPECT_EQ(kTruncatedFileLength, file_size); |
| 309 EXPECT_EQ(0, base::File::Region(file).offset); |
| 310 EXPECT_EQ(kTruncatedFileLength, base::File::Region(file).size); |
| 305 | 311 |
| 306 // Make sure the file was truncated. | 312 // Make sure the file was truncated. |
| 307 bytes_read = file.Read(0, data_read, kTestDataSize); | 313 bytes_read = file.Read(0, data_read, kTestDataSize); |
| 308 EXPECT_EQ(file_size, bytes_read); | 314 EXPECT_EQ(file_size, bytes_read); |
| 309 for (int i = 0; i < file_size; i++) | 315 for (int i = 0; i < file_size; i++) |
| 310 EXPECT_EQ(data_to_write[i], data_read[i]); | 316 EXPECT_EQ(data_to_write[i], data_read[i]); |
| 311 } | 317 } |
| 312 | 318 |
| 313 // Flakily fails: http://crbug.com/86494 | 319 // Flakily fails: http://crbug.com/86494 |
| 314 #if defined(OS_ANDROID) | 320 #if defined(OS_ANDROID) |
| (...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 459 NULL)); | 465 NULL)); |
| 460 ASSERT_TRUE(dir.IsValid()); | 466 ASSERT_TRUE(dir.IsValid()); |
| 461 | 467 |
| 462 base::File::Info info; | 468 base::File::Info info; |
| 463 EXPECT_TRUE(dir.GetInfo(&info)); | 469 EXPECT_TRUE(dir.GetInfo(&info)); |
| 464 EXPECT_TRUE(info.is_directory); | 470 EXPECT_TRUE(info.is_directory); |
| 465 EXPECT_FALSE(info.is_symbolic_link); | 471 EXPECT_FALSE(info.is_symbolic_link); |
| 466 EXPECT_EQ(0, info.size); | 472 EXPECT_EQ(0, info.size); |
| 467 } | 473 } |
| 468 #endif // defined(OS_WIN) | 474 #endif // defined(OS_WIN) |
| OLD | NEW |