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

Side by Side Diff: sync/syncable/directory_backing_store_unittest.cc

Issue 11441026: [Sync] Add support for loading, updating and querying delete journals in (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 months 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 "testing/gtest/include/gtest/gtest.h" 5 #include "testing/gtest/include/gtest/gtest.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/file_path.h" 9 #include "base/file_path.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 29 matching lines...) Expand all
40 std::string GetUsername() { 40 std::string GetUsername() {
41 return "nick@chromium.org"; 41 return "nick@chromium.org";
42 } 42 }
43 43
44 FilePath GetDatabasePath() { 44 FilePath GetDatabasePath() {
45 return temp_dir_.path().Append(Directory::kSyncDatabaseFilename); 45 return temp_dir_.path().Append(Directory::kSyncDatabaseFilename);
46 } 46 }
47 47
48 static bool LoadAndIgnoreReturnedData(DirectoryBackingStore *dbs) { 48 static bool LoadAndIgnoreReturnedData(DirectoryBackingStore *dbs) {
49 MetahandlesIndex metas; 49 MetahandlesIndex metas;
50 JournalIndex delete_journals;;
50 STLElementDeleter<MetahandlesIndex> index_deleter(&metas); 51 STLElementDeleter<MetahandlesIndex> index_deleter(&metas);
51 Directory::KernelLoadInfo kernel_load_info; 52 Directory::KernelLoadInfo kernel_load_info;
52 return dbs->Load(&metas, &kernel_load_info) == OPENED; 53 return dbs->Load(&metas, &delete_journals, &kernel_load_info) == OPENED;
53 } 54 }
54 55
55 void SetUpVersion67Database(sql::Connection* connection); 56 void SetUpVersion67Database(sql::Connection* connection);
56 void SetUpVersion68Database(sql::Connection* connection); 57 void SetUpVersion68Database(sql::Connection* connection);
57 void SetUpVersion69Database(sql::Connection* connection); 58 void SetUpVersion69Database(sql::Connection* connection);
58 void SetUpVersion70Database(sql::Connection* connection); 59 void SetUpVersion70Database(sql::Connection* connection);
59 void SetUpVersion71Database(sql::Connection* connection); 60 void SetUpVersion71Database(sql::Connection* connection);
60 void SetUpVersion72Database(sql::Connection* connection); 61 void SetUpVersion72Database(sql::Connection* connection);
61 void SetUpVersion73Database(sql::Connection* connection); 62 void SetUpVersion73Database(sql::Connection* connection);
62 void SetUpVersion74Database(sql::Connection* connection); 63 void SetUpVersion74Database(sql::Connection* connection);
(...skipping 2147 matching lines...) Expand 10 before | Expand all | Expand 10 after
2210 "local_external_id bigint default 0" 2211 "local_external_id bigint default 0"
2211 ",mtime bigint default 0,server_mtime bigint default 0,ctime bigint d" 2212 ",mtime bigint default 0,server_mtime bigint default 0,ctime bigint d"
2212 "efault 0,server_ctime bigint default 0,id varchar(255) default 'r',p" 2213 "efault 0,server_ctime bigint default 0,id varchar(255) default 'r',p"
2213 "arent_id varchar(255) default 'r',server_parent_id varchar(255) defa" 2214 "arent_id varchar(255) default 'r',server_parent_id varchar(255) defa"
2214 "ult 'r',prev_id varchar(255) default 'r',next_id varchar(255) defaul" 2215 "ult 'r',prev_id varchar(255) default 'r',next_id varchar(255) defaul"
2215 "t 'r',is_unsynced bit default 0,is_unapplied_update bit default 0,is" 2216 "t 'r',is_unsynced bit default 0,is_unapplied_update bit default 0,is"
2216 "_del bit default 0,is_dir bit default 0,server_is_dir bit default 0," 2217 "_del bit default 0,is_dir bit default 0,server_is_dir bit default 0,"
2217 "server_is_del bit default 0,non_unique_name varchar,server_non_uniqu" 2218 "server_is_del bit default 0,non_unique_name varchar,server_non_uniqu"
2218 "e_name varchar(255),unique_server_tag varchar,unique_client_tag varc" 2219 "e_name varchar(255),unique_server_tag varchar,unique_client_tag varc"
2219 "har,specifics blob,server_specifics blob, base_server_specifics BLOB" 2220 "har,specifics blob,server_specifics blob, base_server_specifics BLOB"
2220 ", server_ordinal_in_parent blob, transaction_verion bigint default 0" 2221 ", server_ordinal_in_parent blob, transaction_version bigint default "
2221 ");" 2222 "0);"
2222 "CREATE TABLE 'share_info' (id TEXT primary key, name TEXT, store_birthda" 2223 "CREATE TABLE 'share_info' (id TEXT primary key, name TEXT, store_birthda"
2223 "y TEXT, db_create_version TEXT, db_create_time INT, next_id INT defa" 2224 "y TEXT, db_create_version TEXT, db_create_time INT, next_id INT defa"
2224 "ult -2, cache_guid TEXT , notification_state BLOB, bag_of_chips " 2225 "ult -2, cache_guid TEXT , notification_state BLOB, bag_of_chips "
2225 "blob);" 2226 "blob);"
2226 "INSERT INTO 'share_info' VALUES('nick@chromium.org','nick@chromium.org'," 2227 "INSERT INTO 'share_info' VALUES('nick@chromium.org','nick@chromium.org',"
2227 "'c27e9f59-08ca-46f8-b0cc-f16a2ed778bb','Unknown',1263522064," 2228 "'c27e9f59-08ca-46f8-b0cc-f16a2ed778bb','Unknown',1263522064,"
2228 "-131078,'9010788312004066376x-6609234393368420856x',NULL, NULL);")); 2229 "-131078,'9010788312004066376x-6609234393368420856x',NULL, NULL);"));
2229 2230
2230 const char* insert_stmts[V80_ROW_COUNT] = { 2231 const char* insert_stmts[V80_ROW_COUNT] = {
2231 "INSERT INTO 'metas' VALUES(1,-1,0,0," META_PROTO_TIMES_VALS(1) ",'r','" 2232 "INSERT INTO 'metas' VALUES(1,-1,0,0," META_PROTO_TIMES_VALS(1) ",'r','"
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
2332 "local_external_id bigint default 0" 2333 "local_external_id bigint default 0"
2333 ",mtime bigint default 0,server_mtime bigint default 0,ctime bigint d" 2334 ",mtime bigint default 0,server_mtime bigint default 0,ctime bigint d"
2334 "efault 0,server_ctime bigint default 0,id varchar(255) default 'r',p" 2335 "efault 0,server_ctime bigint default 0,id varchar(255) default 'r',p"
2335 "arent_id varchar(255) default 'r',server_parent_id varchar(255) defa" 2336 "arent_id varchar(255) default 'r',server_parent_id varchar(255) defa"
2336 "ult 'r',prev_id varchar(255) default 'r',next_id varchar(255) defaul" 2337 "ult 'r',prev_id varchar(255) default 'r',next_id varchar(255) defaul"
2337 "t 'r',is_unsynced bit default 0,is_unapplied_update bit default 0,is" 2338 "t 'r',is_unsynced bit default 0,is_unapplied_update bit default 0,is"
2338 "_del bit default 0,is_dir bit default 0,server_is_dir bit default 0," 2339 "_del bit default 0,is_dir bit default 0,server_is_dir bit default 0,"
2339 "server_is_del bit default 0,non_unique_name varchar,server_non_uniqu" 2340 "server_is_del bit default 0,non_unique_name varchar,server_non_uniqu"
2340 "e_name varchar(255),unique_server_tag varchar,unique_client_tag varc" 2341 "e_name varchar(255),unique_server_tag varchar,unique_client_tag varc"
2341 "har,specifics blob,server_specifics blob, base_server_specifics BLOB" 2342 "har,specifics blob,server_specifics blob, base_server_specifics BLOB"
2342 ", server_ordinal_in_parent blob, transaction_verion bigint default 0" 2343 ", server_ordinal_in_parent blob, transaction_version bigint default "
2343 ");" 2344 "0);"
2344 "CREATE TABLE 'share_info' (id TEXT primary key, name TEXT, store_birthda" 2345 "CREATE TABLE 'share_info' (id TEXT primary key, name TEXT, store_birthda"
2345 "y TEXT, db_create_version TEXT, db_create_time INT, next_id INT defa" 2346 "y TEXT, db_create_version TEXT, db_create_time INT, next_id INT defa"
2346 "ult -2, cache_guid TEXT , notification_state BLOB, bag_of_chips " 2347 "ult -2, cache_guid TEXT , notification_state BLOB, bag_of_chips "
2347 "blob);" 2348 "blob);"
2348 "INSERT INTO 'share_info' VALUES('nick@chromium.org','nick@chromium.org'," 2349 "INSERT INTO 'share_info' VALUES('nick@chromium.org','nick@chromium.org',"
2349 "'c27e9f59-08ca-46f8-b0cc-f16a2ed778bb','Unknown',1263522064," 2350 "'c27e9f59-08ca-46f8-b0cc-f16a2ed778bb','Unknown',1263522064,"
2350 "-131078,'9010788312004066376x-6609234393368420856x',NULL, NULL);")); 2351 "-131078,'9010788312004066376x-6609234393368420856x',NULL, NULL);"));
2351 2352
2352 const char* insert_stmts[V80_ROW_COUNT] = { 2353 const char* insert_stmts[V80_ROW_COUNT] = {
2353 "INSERT INTO 'metas' VALUES(1,-1,0,0," META_PROTO_TIMES_VALS(1) ",'r','" 2354 "INSERT INTO 'metas' VALUES(1,-1,0,0," META_PROTO_TIMES_VALS(1) ",'r','"
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after
2740 2741
2741 scoped_ptr<TestDirectoryBackingStore> dbs( 2742 scoped_ptr<TestDirectoryBackingStore> dbs(
2742 new TestDirectoryBackingStore(GetUsername(), &connection)); 2743 new TestDirectoryBackingStore(GetUsername(), &connection));
2743 ASSERT_FALSE(dbs->needs_column_refresh_); 2744 ASSERT_FALSE(dbs->needs_column_refresh_);
2744 ASSERT_TRUE(dbs->MigrateVersion78To79()); 2745 ASSERT_TRUE(dbs->MigrateVersion78To79());
2745 ASSERT_EQ(79, dbs->GetVersion()); 2746 ASSERT_EQ(79, dbs->GetVersion());
2746 ASSERT_FALSE(dbs->needs_column_refresh_); 2747 ASSERT_FALSE(dbs->needs_column_refresh_);
2747 2748
2748 // Ensure the next_id has been incremented. 2749 // Ensure the next_id has been incremented.
2749 MetahandlesIndex entry_bucket; 2750 MetahandlesIndex entry_bucket;
2751 JournalIndex delete_journals;;
2750 STLElementDeleter<MetahandlesIndex> deleter(&entry_bucket); 2752 STLElementDeleter<MetahandlesIndex> deleter(&entry_bucket);
2751 Directory::KernelLoadInfo load_info; 2753 Directory::KernelLoadInfo load_info;
2752 2754
2753 s.Clear(); 2755 s.Clear();
2754 ASSERT_TRUE(dbs->Load(&entry_bucket, &load_info)); 2756 ASSERT_TRUE(dbs->Load(&entry_bucket, &delete_journals, &load_info));
2755 EXPECT_LE(load_info.kernel_info.next_id, kInitialNextId - 65536); 2757 EXPECT_LE(load_info.kernel_info.next_id, kInitialNextId - 65536);
2756 } 2758 }
2757 2759
2758 TEST_F(DirectoryBackingStoreTest, MigrateVersion79To80) { 2760 TEST_F(DirectoryBackingStoreTest, MigrateVersion79To80) {
2759 sql::Connection connection; 2761 sql::Connection connection;
2760 ASSERT_TRUE(connection.OpenInMemory()); 2762 ASSERT_TRUE(connection.OpenInMemory());
2761 SetUpVersion79Database(&connection); 2763 SetUpVersion79Database(&connection);
2762 2764
2763 scoped_ptr<TestDirectoryBackingStore> dbs( 2765 scoped_ptr<TestDirectoryBackingStore> dbs(
2764 new TestDirectoryBackingStore(GetUsername(), &connection)); 2766 new TestDirectoryBackingStore(GetUsername(), &connection));
2765 ASSERT_FALSE(dbs->needs_column_refresh_); 2767 ASSERT_FALSE(dbs->needs_column_refresh_);
2766 ASSERT_TRUE(dbs->MigrateVersion79To80()); 2768 ASSERT_TRUE(dbs->MigrateVersion79To80());
2767 ASSERT_EQ(80, dbs->GetVersion()); 2769 ASSERT_EQ(80, dbs->GetVersion());
2768 ASSERT_FALSE(dbs->needs_column_refresh_); 2770 ASSERT_FALSE(dbs->needs_column_refresh_);
2769 2771
2770 // Ensure the bag_of_chips has been set. 2772 // Ensure the bag_of_chips has been set.
2771 MetahandlesIndex entry_bucket; 2773 MetahandlesIndex entry_bucket;
2774 JournalIndex delete_journals;;
2772 STLElementDeleter<MetahandlesIndex> deleter(&entry_bucket); 2775 STLElementDeleter<MetahandlesIndex> deleter(&entry_bucket);
2773 Directory::KernelLoadInfo load_info; 2776 Directory::KernelLoadInfo load_info;
2774 2777
2775 ASSERT_TRUE(dbs->Load(&entry_bucket, &load_info)); 2778 ASSERT_TRUE(dbs->Load(&entry_bucket, &delete_journals, &load_info));
2776 // Check that the initial value is the serialization of an empty ChipBag. 2779 // Check that the initial value is the serialization of an empty ChipBag.
2777 sync_pb::ChipBag chip_bag; 2780 sync_pb::ChipBag chip_bag;
2778 std::string serialized_chip_bag; 2781 std::string serialized_chip_bag;
2779 ASSERT_TRUE(chip_bag.SerializeToString(&serialized_chip_bag)); 2782 ASSERT_TRUE(chip_bag.SerializeToString(&serialized_chip_bag));
2780 EXPECT_EQ(serialized_chip_bag, load_info.kernel_info.bag_of_chips); 2783 EXPECT_EQ(serialized_chip_bag, load_info.kernel_info.bag_of_chips);
2781 } 2784 }
2782 2785
2783 TEST_F(DirectoryBackingStoreTest, MigrateVersion80To81) { 2786 TEST_F(DirectoryBackingStoreTest, MigrateVersion80To81) {
2784 sql::Connection connection; 2787 sql::Connection connection;
2785 ASSERT_TRUE(connection.OpenInMemory()); 2788 ASSERT_TRUE(connection.OpenInMemory());
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
2823 sql::Statement s(connection.GetUniqueStatement( 2826 sql::Statement s(connection.GetUniqueStatement(
2824 "INSERT INTO metas " 2827 "INSERT INTO metas "
2825 "( id, metahandle, is_dir, ctime, mtime, server_ordinal_in_parent) " 2828 "( id, metahandle, is_dir, ctime, mtime, server_ordinal_in_parent) "
2826 "VALUES( \"c-invalid\", 9999, 1, ?, ?, \" \")")); 2829 "VALUES( \"c-invalid\", 9999, 1, ?, ?, \" \")"));
2827 s.BindInt64(0, now); 2830 s.BindInt64(0, now);
2828 s.BindInt64(1, now); 2831 s.BindInt64(1, now);
2829 ASSERT_TRUE(s.Run()); 2832 ASSERT_TRUE(s.Run());
2830 2833
2831 // Trying to unpack this entry should signal that the DB is corrupted. 2834 // Trying to unpack this entry should signal that the DB is corrupted.
2832 MetahandlesIndex entry_bucket; 2835 MetahandlesIndex entry_bucket;
2836 JournalIndex delete_journals;;
2833 STLElementDeleter<MetahandlesIndex> deleter(&entry_bucket); 2837 STLElementDeleter<MetahandlesIndex> deleter(&entry_bucket);
2834 Directory::KernelLoadInfo kernel_load_info; 2838 Directory::KernelLoadInfo kernel_load_info;
2835 ASSERT_EQ(FAILED_DATABASE_CORRUPT, 2839 ASSERT_EQ(FAILED_DATABASE_CORRUPT,
2836 dbs->Load(&entry_bucket, &kernel_load_info)); 2840 dbs->Load(&entry_bucket, &delete_journals, &kernel_load_info));
2837 } 2841 }
2838 2842
2839 TEST_F(DirectoryBackingStoreTest, MigrateVersion81To82) { 2843 TEST_F(DirectoryBackingStoreTest, MigrateVersion81To82) {
2840 sql::Connection connection; 2844 sql::Connection connection;
2841 ASSERT_TRUE(connection.OpenInMemory()); 2845 ASSERT_TRUE(connection.OpenInMemory());
2842 SetUpVersion81Database(&connection); 2846 SetUpVersion81Database(&connection);
2843 ASSERT_FALSE(connection.DoesColumnExist("models", "transaction_version")); 2847 ASSERT_FALSE(connection.DoesColumnExist("models", "transaction_version"));
2844 2848
2845 scoped_ptr<TestDirectoryBackingStore> dbs( 2849 scoped_ptr<TestDirectoryBackingStore> dbs(
2846 new TestDirectoryBackingStore(GetUsername(), &connection)); 2850 new TestDirectoryBackingStore(GetUsername(), &connection));
(...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after
2966 // 5. Dump this using the sqlite3 command line tool: 2970 // 5. Dump this using the sqlite3 command line tool:
2967 // > .output foo_dump.sql 2971 // > .output foo_dump.sql
2968 // > .dump 2972 // > .dump
2969 // 6. Replace the timestamp columns with META_PROTO_TIMES(x) (or 2973 // 6. Replace the timestamp columns with META_PROTO_TIMES(x) (or
2970 // LEGACY_META_PROTO_TIMES(x) if before Version 77). 2974 // LEGACY_META_PROTO_TIMES(x) if before Version 77).
2971 FAIL() << "Need to supply database dump for version " << GetParam(); 2975 FAIL() << "Need to supply database dump for version " << GetParam();
2972 } 2976 }
2973 2977
2974 syncable::Directory::KernelLoadInfo dir_info; 2978 syncable::Directory::KernelLoadInfo dir_info;
2975 MetahandlesIndex index; 2979 MetahandlesIndex index;
2980 JournalIndex delete_journals;;
2976 STLElementDeleter<MetahandlesIndex> index_deleter(&index); 2981 STLElementDeleter<MetahandlesIndex> index_deleter(&index);
2977 2982
2978 { 2983 {
2979 scoped_ptr<TestDirectoryBackingStore> dbs( 2984 scoped_ptr<TestDirectoryBackingStore> dbs(
2980 new TestDirectoryBackingStore(GetUsername(), &connection)); 2985 new TestDirectoryBackingStore(GetUsername(), &connection));
2981 ASSERT_EQ(OPENED, dbs->Load(&index, &dir_info)); 2986 ASSERT_EQ(OPENED, dbs->Load(&index, &delete_journals, &dir_info));
2982 ASSERT_FALSE(dbs->needs_column_refresh_); 2987 ASSERT_FALSE(dbs->needs_column_refresh_);
2983 ASSERT_EQ(kCurrentDBVersion, dbs->GetVersion()); 2988 ASSERT_EQ(kCurrentDBVersion, dbs->GetVersion());
2984 } 2989 }
2985 2990
2986 // Columns deleted in Version 67. 2991 // Columns deleted in Version 67.
2987 ASSERT_FALSE(connection.DoesColumnExist("metas", "name")); 2992 ASSERT_FALSE(connection.DoesColumnExist("metas", "name"));
2988 ASSERT_FALSE(connection.DoesColumnExist("metas", "unsanitized_name")); 2993 ASSERT_FALSE(connection.DoesColumnExist("metas", "unsanitized_name"));
2989 ASSERT_FALSE(connection.DoesColumnExist("metas", "server_name")); 2994 ASSERT_FALSE(connection.DoesColumnExist("metas", "server_name"));
2990 2995
2991 // Columns added in Version 68. 2996 // Columns added in Version 68.
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after
3243 } 3248 }
3244 3249
3245 TEST_F(DirectoryBackingStoreTest, DeleteEntries) { 3250 TEST_F(DirectoryBackingStoreTest, DeleteEntries) {
3246 sql::Connection connection; 3251 sql::Connection connection;
3247 ASSERT_TRUE(connection.OpenInMemory()); 3252 ASSERT_TRUE(connection.OpenInMemory());
3248 3253
3249 SetUpCurrentDatabaseAndCheckVersion(&connection); 3254 SetUpCurrentDatabaseAndCheckVersion(&connection);
3250 scoped_ptr<TestDirectoryBackingStore> dbs( 3255 scoped_ptr<TestDirectoryBackingStore> dbs(
3251 new TestDirectoryBackingStore(GetUsername(), &connection)); 3256 new TestDirectoryBackingStore(GetUsername(), &connection));
3252 MetahandlesIndex index; 3257 MetahandlesIndex index;
3258 JournalIndex delete_journals;;
tim (not reviewing) 2013/01/04 18:54:14 nit - is there an extra space here?
haitaol1 2013/01/04 19:06:14 Done.
3253 Directory::KernelLoadInfo kernel_load_info; 3259 Directory::KernelLoadInfo kernel_load_info;
3254 STLElementDeleter<MetahandlesIndex> index_deleter(&index); 3260 STLElementDeleter<MetahandlesIndex> index_deleter(&index);
3255 3261
3256 dbs->Load(&index, &kernel_load_info); 3262 dbs->Load(&index, &delete_journals, &kernel_load_info);
3257 size_t initial_size = index.size(); 3263 size_t initial_size = index.size();
3258 ASSERT_LT(0U, initial_size) << "Test requires entries to delete."; 3264 ASSERT_LT(0U, initial_size) << "Test requires entries to delete.";
3259 int64 first_to_die = (*index.begin())->ref(META_HANDLE); 3265 int64 first_to_die = (*index.begin())->ref(META_HANDLE);
3260 MetahandleSet to_delete; 3266 MetahandleSet to_delete;
3261 to_delete.insert(first_to_die); 3267 to_delete.insert(first_to_die);
3262 EXPECT_TRUE(dbs->DeleteEntries(to_delete)); 3268 EXPECT_TRUE(dbs->DeleteEntries(TestDirectoryBackingStore::METAS_TABLE,
3269 to_delete));
3263 3270
3264 STLDeleteElements(&index); 3271 STLDeleteElements(&index);
3265 dbs->LoadEntries(&index); 3272 dbs->LoadEntries(&index);
3266 3273
3267 EXPECT_EQ(initial_size - 1, index.size()); 3274 EXPECT_EQ(initial_size - 1, index.size());
3268 bool delete_failed = false; 3275 bool delete_failed = false;
3269 for (MetahandlesIndex::iterator it = index.begin(); it != index.end(); 3276 for (MetahandlesIndex::iterator it = index.begin(); it != index.end();
3270 ++it) { 3277 ++it) {
3271 if ((*it)->ref(META_HANDLE) == first_to_die) { 3278 if ((*it)->ref(META_HANDLE) == first_to_die) {
3272 delete_failed = true; 3279 delete_failed = true;
3273 break; 3280 break;
3274 } 3281 }
3275 } 3282 }
3276 EXPECT_FALSE(delete_failed); 3283 EXPECT_FALSE(delete_failed);
3277 3284
3278 to_delete.clear(); 3285 to_delete.clear();
3279 for (MetahandlesIndex::iterator it = index.begin(); it != index.end(); 3286 for (MetahandlesIndex::iterator it = index.begin(); it != index.end();
3280 ++it) { 3287 ++it) {
3281 to_delete.insert((*it)->ref(META_HANDLE)); 3288 to_delete.insert((*it)->ref(META_HANDLE));
3282 } 3289 }
3283 3290
3284 EXPECT_TRUE(dbs->DeleteEntries(to_delete)); 3291 EXPECT_TRUE(dbs->DeleteEntries(TestDirectoryBackingStore::METAS_TABLE,
3292 to_delete));
3285 3293
3286 STLDeleteElements(&index); 3294 STLDeleteElements(&index);
3287 dbs->LoadEntries(&index); 3295 dbs->LoadEntries(&index);
3288 EXPECT_EQ(0U, index.size()); 3296 EXPECT_EQ(0U, index.size());
3289 } 3297 }
3290 3298
3291 TEST_F(DirectoryBackingStoreTest, GenerateCacheGUID) { 3299 TEST_F(DirectoryBackingStoreTest, GenerateCacheGUID) {
3292 const std::string& guid1 = TestDirectoryBackingStore::GenerateCacheGUID(); 3300 const std::string& guid1 = TestDirectoryBackingStore::GenerateCacheGUID();
3293 const std::string& guid2 = TestDirectoryBackingStore::GenerateCacheGUID(); 3301 const std::string& guid2 = TestDirectoryBackingStore::GenerateCacheGUID();
3294 EXPECT_EQ(24U, guid1.size()); 3302 EXPECT_EQ(24U, guid1.size());
3295 EXPECT_EQ(24U, guid2.size()); 3303 EXPECT_EQ(24U, guid2.size());
3296 // In theory this test can fail, but it won't before the universe 3304 // In theory this test can fail, but it won't before the universe
3297 // dies of heat death. 3305 // dies of heat death.
3298 EXPECT_NE(guid1, guid2); 3306 EXPECT_NE(guid1, guid2);
3299 } 3307 }
3300 3308
3301 } // namespace syncable 3309 } // namespace syncable
3302 } // namespace syncer 3310 } // namespace syncer
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698