Index: sync/syncable/directory_backing_store_unittest.cc |
diff --git a/sync/syncable/directory_backing_store_unittest.cc b/sync/syncable/directory_backing_store_unittest.cc |
index 8f679f170d17f3dfbfcc9517d2ef0871561f5c31..7394b0d68592e1a3ffd3d193c459391b632152e2 100644 |
--- a/sync/syncable/directory_backing_store_unittest.cc |
+++ b/sync/syncable/directory_backing_store_unittest.cc |
@@ -46,10 +46,11 @@ class MigrationTest : public testing::TestWithParam<int> { |
static bool LoadAndIgnoreReturnedData(DirectoryBackingStore *dbs) { |
Directory::MetahandlesMap tmp_handles_map; |
JournalIndex delete_journals; |
+ MetahandleSet metahandles_to_purge; |
STLValueDeleter<Directory::MetahandlesMap> deleter(&tmp_handles_map); |
Directory::KernelLoadInfo kernel_load_info; |
- return dbs->Load(&tmp_handles_map, &delete_journals, &kernel_load_info) == |
- OPENED; |
+ return dbs->Load(&tmp_handles_map, &delete_journals, &metahandles_to_purge, |
+ &kernel_load_info) == OPENED; |
} |
void SetUpVersion67Database(sql::Connection* connection); |
@@ -3202,12 +3203,14 @@ TEST_F(DirectoryBackingStoreTest, MigrateVersion78To79) { |
// Ensure the next_id has been incremented. |
Directory::MetahandlesMap handles_map; |
- JournalIndex delete_journals;; |
+ JournalIndex delete_journals; |
+ MetahandleSet metahandles_to_purge; |
STLValueDeleter<Directory::MetahandlesMap> deleter(&handles_map); |
Directory::KernelLoadInfo load_info; |
s.Clear(); |
- ASSERT_TRUE(dbs->Load(&handles_map, &delete_journals, &load_info)); |
+ ASSERT_TRUE(dbs->Load(&handles_map, &delete_journals, &metahandles_to_purge, |
+ &load_info)); |
EXPECT_LE(load_info.kernel_info.next_id, kInitialNextId - 65536); |
} |
@@ -3225,11 +3228,13 @@ TEST_F(DirectoryBackingStoreTest, MigrateVersion79To80) { |
// Ensure the bag_of_chips has been set. |
Directory::MetahandlesMap handles_map; |
- JournalIndex delete_journals;; |
+ JournalIndex delete_journals; |
+ MetahandleSet metahandles_to_purge; |
STLValueDeleter<Directory::MetahandlesMap> deleter(&handles_map); |
Directory::KernelLoadInfo load_info; |
- ASSERT_TRUE(dbs->Load(&handles_map, &delete_journals, &load_info)); |
+ ASSERT_TRUE(dbs->Load(&handles_map, &delete_journals, &metahandles_to_purge, |
+ &load_info)); |
// Check that the initial value is the serialization of an empty ChipBag. |
sync_pb::ChipBag chip_bag; |
std::string serialized_chip_bag; |
@@ -3438,11 +3443,13 @@ TEST_F(DirectoryBackingStoreTest, DetectInvalidPosition) { |
// Trying to unpack this entry should signal that the DB is corrupted. |
Directory::MetahandlesMap handles_map; |
- JournalIndex delete_journals;; |
+ JournalIndex delete_journals; |
+ MetahandleSet metahandles_to_purge; |
STLValueDeleter<Directory::MetahandlesMap> deleter(&handles_map); |
Directory::KernelLoadInfo kernel_load_info; |
ASSERT_EQ(FAILED_DATABASE_CORRUPT, |
- dbs->Load(&handles_map, &delete_journals, &kernel_load_info)); |
+ dbs->Load(&handles_map, &delete_journals, &metahandles_to_purge, |
+ &kernel_load_info)); |
} |
TEST_P(MigrationTest, ToCurrentVersion) { |
@@ -3529,13 +3536,17 @@ TEST_P(MigrationTest, ToCurrentVersion) { |
syncable::Directory::KernelLoadInfo dir_info; |
Directory::MetahandlesMap handles_map; |
- JournalIndex delete_journals;; |
+ JournalIndex delete_journals; |
+ MetahandleSet metahandles_to_purge; |
STLValueDeleter<Directory::MetahandlesMap> index_deleter(&handles_map); |
{ |
scoped_ptr<TestDirectoryBackingStore> dbs( |
new TestDirectoryBackingStore(GetUsername(), &connection)); |
- ASSERT_EQ(OPENED, dbs->Load(&handles_map, &delete_journals, &dir_info)); |
+ ASSERT_EQ(OPENED, dbs->Load(&handles_map, &delete_journals, |
+ &metahandles_to_purge, &dir_info)); |
+ if (!metahandles_to_purge.empty()) |
+ dbs->DeleteEntries(metahandles_to_purge); |
ASSERT_FALSE(dbs->needs_column_refresh_); |
ASSERT_EQ(kCurrentDBVersion, dbs->GetVersion()); |
} |
@@ -3903,20 +3914,22 @@ TEST_F(DirectoryBackingStoreTest, DeleteEntries) { |
new TestDirectoryBackingStore(GetUsername(), &connection)); |
Directory::MetahandlesMap handles_map; |
JournalIndex delete_journals; |
+ MetahandleSet metahandles_to_purge; |
Directory::KernelLoadInfo kernel_load_info; |
STLValueDeleter<Directory::MetahandlesMap> index_deleter(&handles_map); |
- dbs->Load(&handles_map, &delete_journals, &kernel_load_info); |
+ dbs->Load(&handles_map, &delete_journals, &metahandles_to_purge, |
+ &kernel_load_info); |
size_t initial_size = handles_map.size(); |
ASSERT_LT(0U, initial_size) << "Test requires handles_map to delete."; |
int64 first_to_die = handles_map.begin()->second->ref(META_HANDLE); |
MetahandleSet to_delete; |
to_delete.insert(first_to_die); |
- EXPECT_TRUE(dbs->DeleteEntries(TestDirectoryBackingStore::METAS_TABLE, |
- to_delete)); |
+ EXPECT_TRUE(dbs->DeleteEntries(to_delete)); |
STLDeleteValues(&handles_map); |
- dbs->LoadEntries(&handles_map); |
+ metahandles_to_purge.clear(); |
+ dbs->LoadEntries(&handles_map, &metahandles_to_purge); |
EXPECT_EQ(initial_size - 1, handles_map.size()); |
bool delete_failed = false; |
@@ -3935,11 +3948,11 @@ TEST_F(DirectoryBackingStoreTest, DeleteEntries) { |
to_delete.insert(it->first); |
} |
- EXPECT_TRUE(dbs->DeleteEntries(TestDirectoryBackingStore::METAS_TABLE, |
- to_delete)); |
+ EXPECT_TRUE(dbs->DeleteEntries(to_delete)); |
STLDeleteValues(&handles_map); |
- dbs->LoadEntries(&handles_map); |
+ metahandles_to_purge.clear(); |
+ dbs->LoadEntries(&handles_map, &metahandles_to_purge); |
EXPECT_EQ(0U, handles_map.size()); |
} |