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 <errno.h> | 5 #include <errno.h> |
6 #include <fcntl.h> | 6 #include <fcntl.h> |
7 | 7 |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
445 memset(&dirents[0], 0, sizeof(dirents)); | 445 memset(&dirents[0], 0, sizeof(dirents)); |
446 EXPECT_EQ( | 446 EXPECT_EQ( |
447 0, root->GetDents(0, &dirents[0], sizeof(dirent) * 3 + 2, &bytes_read)); | 447 0, root->GetDents(0, &dirents[0], sizeof(dirent) * 3 + 2, &bytes_read)); |
448 | 448 |
449 { | 449 { |
450 size_t num_dirents = bytes_read / sizeof(dirent); | 450 size_t num_dirents = bytes_read / sizeof(dirent); |
451 EXPECT_EQ(3, num_dirents); | 451 EXPECT_EQ(3, num_dirents); |
452 EXPECT_EQ(sizeof(dirent) * num_dirents, bytes_read); | 452 EXPECT_EQ(sizeof(dirent) * num_dirents, bytes_read); |
453 | 453 |
454 std::multiset<std::string> dirnames; | 454 std::multiset<std::string> dirnames; |
455 for (int i = 0; i < num_dirents; ++i) { | 455 for (size_t i = 0; i < num_dirents; ++i) { |
456 EXPECT_EQ(sizeof(dirent), dirents[i].d_off); | 456 EXPECT_EQ(sizeof(dirent), dirents[i].d_off); |
457 EXPECT_EQ(sizeof(dirent), dirents[i].d_reclen); | 457 EXPECT_EQ(sizeof(dirent), dirents[i].d_reclen); |
458 dirnames.insert(dirents[i].d_name); | 458 dirnames.insert(dirents[i].d_name); |
459 } | 459 } |
460 | 460 |
461 EXPECT_EQ(1, dirnames.count("file")); | 461 EXPECT_EQ(1, dirnames.count("file")); |
462 EXPECT_EQ(1, dirnames.count(".")); | 462 EXPECT_EQ(1, dirnames.count(".")); |
463 EXPECT_EQ(1, dirnames.count("..")); | 463 EXPECT_EQ(1, dirnames.count("..")); |
464 } | 464 } |
465 | 465 |
466 // Add another file... | 466 // Add another file... |
467 ASSERT_EQ(0, mnt->Open(Path("/file2"), O_CREAT, &node)); | 467 ASSERT_EQ(0, mnt->Open(Path("/file2"), O_CREAT, &node)); |
468 | 468 |
469 // Read the root directory again. | 469 // Read the root directory again. |
470 memset(&dirents[0], 0, sizeof(dirents)); | 470 memset(&dirents[0], 0, sizeof(dirents)); |
471 EXPECT_EQ(0, root->GetDents(0, &dirents[0], sizeof(dirents), &bytes_read)); | 471 EXPECT_EQ(0, root->GetDents(0, &dirents[0], sizeof(dirents), &bytes_read)); |
472 | 472 |
473 { | 473 { |
474 size_t num_dirents = bytes_read / sizeof(dirent); | 474 size_t num_dirents = bytes_read / sizeof(dirent); |
475 EXPECT_EQ(4, num_dirents); | 475 EXPECT_EQ(4, num_dirents); |
476 EXPECT_EQ(sizeof(dirent) * num_dirents, bytes_read); | 476 EXPECT_EQ(sizeof(dirent) * num_dirents, bytes_read); |
477 | 477 |
478 std::multiset<std::string> dirnames; | 478 std::multiset<std::string> dirnames; |
479 for (int i = 0; i < num_dirents; ++i) { | 479 for (size_t i = 0; i < num_dirents; ++i) { |
480 EXPECT_EQ(sizeof(dirent), dirents[i].d_off); | 480 EXPECT_EQ(sizeof(dirent), dirents[i].d_off); |
481 EXPECT_EQ(sizeof(dirent), dirents[i].d_reclen); | 481 EXPECT_EQ(sizeof(dirent), dirents[i].d_reclen); |
482 dirnames.insert(dirents[i].d_name); | 482 dirnames.insert(dirents[i].d_name); |
483 } | 483 } |
484 | 484 |
485 EXPECT_EQ(1, dirnames.count("file")); | 485 EXPECT_EQ(1, dirnames.count("file")); |
486 EXPECT_EQ(1, dirnames.count("file2")); | 486 EXPECT_EQ(1, dirnames.count("file2")); |
487 EXPECT_EQ(1, dirnames.count(".")); | 487 EXPECT_EQ(1, dirnames.count(".")); |
488 EXPECT_EQ(1, dirnames.count("..")); | 488 EXPECT_EQ(1, dirnames.count("..")); |
489 } | 489 } |
490 } | 490 } |
OLD | NEW |