| Index: chrome/browser/sync/syncable/syncable_unittest.cc
|
| diff --git a/chrome/browser/sync/syncable/syncable_unittest.cc b/chrome/browser/sync/syncable/syncable_unittest.cc
|
| index adb22de825c9ea008cec450f4ec8c00cc7a93252..ba801c4993fae58b9bcb099d73c4361467178c43 100644
|
| --- a/chrome/browser/sync/syncable/syncable_unittest.cc
|
| +++ b/chrome/browser/sync/syncable/syncable_unittest.cc
|
| @@ -20,6 +20,7 @@
|
| #include <sys/times.h>
|
| #endif // !defined(OS_WIN)
|
|
|
| +#include "base/compiler_specific.h"
|
| #include "base/file_path.h"
|
| #include "base/file_util.h"
|
| #include "base/logging.h"
|
| @@ -27,14 +28,17 @@
|
| #include "base/scoped_temp_dir.h"
|
| #include "base/stringprintf.h"
|
| #include "base/threading/platform_thread.h"
|
| +#include "base/tracked.h"
|
| #include "base/values.h"
|
| #include "chrome/browser/sync/engine/syncproto.h"
|
| #include "chrome/browser/sync/protocol/bookmark_specifics.pb.h"
|
| #include "chrome/browser/sync/syncable/directory_backing_store.h"
|
| +#include "chrome/browser/sync/syncable/directory_change_delegate.h"
|
| #include "chrome/browser/sync/syncable/directory_manager.h"
|
| #include "chrome/common/deprecated/event_sys-inl.h"
|
| #include "chrome/test/sync/engine/test_id_factory.h"
|
| #include "chrome/test/sync/engine/test_syncable_utils.h"
|
| +#include "chrome/test/sync/null_directory_change_delegate.h"
|
| #include "chrome/test/values_test_util.h"
|
| #include "testing/gtest/include/gtest/gtest.h"
|
| #include "third_party/sqlite/sqlite3.h"
|
| @@ -100,16 +104,17 @@ class SyncableGeneralTest : public testing::Test {
|
| }
|
| protected:
|
| ScopedTempDir temp_dir_;
|
| + NullDirectoryChangeDelegate delegate_;
|
| FilePath db_path_;
|
| };
|
|
|
| TEST_F(SyncableGeneralTest, General) {
|
| Directory dir;
|
| - dir.Open(db_path_, "SimpleTest");
|
| + dir.Open(db_path_, "SimpleTest", &delegate_);
|
|
|
| int64 root_metahandle;
|
| {
|
| - ReadTransaction rtrans(&dir, __FILE__, __LINE__);
|
| + ReadTransaction rtrans(&dir, FROM_HERE);
|
| Entry e(&rtrans, GET_BY_ID, rtrans.root_id());
|
| ASSERT_TRUE(e.good());
|
| root_metahandle = e.Get(META_HANDLE);
|
| @@ -120,7 +125,7 @@ TEST_F(SyncableGeneralTest, General) {
|
| std::string name = "Jeff";
|
| // Test simple read operations on an empty DB.
|
| {
|
| - ReadTransaction rtrans(&dir, __FILE__, __LINE__);
|
| + ReadTransaction rtrans(&dir, FROM_HERE);
|
| Entry e(&rtrans, GET_BY_ID, id);
|
| ASSERT_FALSE(e.good()); // Hasn't been written yet.
|
|
|
| @@ -134,7 +139,7 @@ TEST_F(SyncableGeneralTest, General) {
|
|
|
| // Test creating a new meta entry.
|
| {
|
| - WriteTransaction wtrans(&dir, UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction wtrans(&dir, UNITTEST, FROM_HERE);
|
| MutableEntry me(&wtrans, CREATE, wtrans.root_id(), name);
|
| ASSERT_TRUE(me.good());
|
| me.Put(ID, id);
|
| @@ -145,7 +150,7 @@ TEST_F(SyncableGeneralTest, General) {
|
| // Test GetChildHandles* after something is now in the DB.
|
| // Also check that GET_BY_ID works.
|
| {
|
| - ReadTransaction rtrans(&dir, __FILE__, __LINE__);
|
| + ReadTransaction rtrans(&dir, FROM_HERE);
|
| Entry e(&rtrans, GET_BY_ID, id);
|
| ASSERT_TRUE(e.good());
|
|
|
| @@ -170,7 +175,7 @@ TEST_F(SyncableGeneralTest, General) {
|
| // Test writing data to an entity. Also check that GET_BY_HANDLE works.
|
| static const char s[] = "Hello World.";
|
| {
|
| - WriteTransaction trans(&dir, UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(&dir, UNITTEST, FROM_HERE);
|
| MutableEntry e(&trans, GET_BY_HANDLE, written_metahandle);
|
| ASSERT_TRUE(e.good());
|
| PutDataAsBookmarkFavicon(&trans, &e, s, sizeof(s));
|
| @@ -178,7 +183,7 @@ TEST_F(SyncableGeneralTest, General) {
|
|
|
| // Test reading back the contents that we just wrote.
|
| {
|
| - WriteTransaction trans(&dir, UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(&dir, UNITTEST, FROM_HERE);
|
| MutableEntry e(&trans, GET_BY_HANDLE, written_metahandle);
|
| ASSERT_TRUE(e.good());
|
| ExpectDataFromBookmarkFaviconEquals(&trans, &e, s, sizeof(s));
|
| @@ -186,13 +191,13 @@ TEST_F(SyncableGeneralTest, General) {
|
|
|
| // Verify it exists in the folder.
|
| {
|
| - ReadTransaction rtrans(&dir, __FILE__, __LINE__);
|
| + ReadTransaction rtrans(&dir, FROM_HERE);
|
| EXPECT_EQ(1, CountEntriesWithName(&rtrans, rtrans.root_id(), name));
|
| }
|
|
|
| // Now delete it.
|
| {
|
| - WriteTransaction trans(&dir, UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(&dir, UNITTEST, FROM_HERE);
|
| MutableEntry e(&trans, GET_BY_HANDLE, written_metahandle);
|
| e.Put(IS_DEL, true);
|
|
|
| @@ -212,9 +217,9 @@ TEST_F(SyncableGeneralTest, ClientIndexRebuildsProperly) {
|
| // Test creating a new meta entry.
|
| {
|
| Directory dir;
|
| - dir.Open(db_path_, "IndexTest");
|
| + dir.Open(db_path_, "IndexTest", &delegate_);
|
| {
|
| - WriteTransaction wtrans(&dir, UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction wtrans(&dir, UNITTEST, FROM_HERE);
|
| MutableEntry me(&wtrans, CREATE, wtrans.root_id(), name);
|
| ASSERT_TRUE(me.good());
|
| me.Put(ID, id);
|
| @@ -228,9 +233,9 @@ TEST_F(SyncableGeneralTest, ClientIndexRebuildsProperly) {
|
| // The DB was closed. Now reopen it. This will cause index regeneration.
|
| {
|
| Directory dir;
|
| - dir.Open(db_path_, "IndexTest");
|
| + dir.Open(db_path_, "IndexTest", &delegate_);
|
|
|
| - ReadTransaction trans(&dir, __FILE__, __LINE__);
|
| + ReadTransaction trans(&dir, FROM_HERE);
|
| Entry me(&trans, GET_BY_CLIENT_TAG, tag);
|
| ASSERT_TRUE(me.good());
|
| EXPECT_EQ(me.Get(ID), id);
|
| @@ -248,9 +253,9 @@ TEST_F(SyncableGeneralTest, ClientIndexRebuildsDeletedProperly) {
|
| // Test creating a deleted, unsynced, server meta entry.
|
| {
|
| Directory dir;
|
| - dir.Open(db_path_, "IndexTest");
|
| + dir.Open(db_path_, "IndexTest", &delegate_);
|
| {
|
| - WriteTransaction wtrans(&dir, UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction wtrans(&dir, UNITTEST, FROM_HERE);
|
| MutableEntry me(&wtrans, CREATE, wtrans.root_id(), "deleted");
|
| ASSERT_TRUE(me.good());
|
| me.Put(ID, id);
|
| @@ -266,9 +271,9 @@ TEST_F(SyncableGeneralTest, ClientIndexRebuildsDeletedProperly) {
|
| // Should still be present and valid in the client tag index.
|
| {
|
| Directory dir;
|
| - dir.Open(db_path_, "IndexTest");
|
| + dir.Open(db_path_, "IndexTest", &delegate_);
|
|
|
| - ReadTransaction trans(&dir, __FILE__, __LINE__);
|
| + ReadTransaction trans(&dir, FROM_HERE);
|
| Entry me(&trans, GET_BY_CLIENT_TAG, tag);
|
| ASSERT_TRUE(me.good());
|
| EXPECT_EQ(me.Get(ID), id);
|
| @@ -280,11 +285,11 @@ TEST_F(SyncableGeneralTest, ClientIndexRebuildsDeletedProperly) {
|
|
|
| TEST_F(SyncableGeneralTest, ToValue) {
|
| Directory dir;
|
| - dir.Open(db_path_, "SimpleTest");
|
| + dir.Open(db_path_, "SimpleTest", &delegate_);
|
|
|
| const Id id = TestIdFactory::FromNumber(99);
|
| {
|
| - ReadTransaction rtrans(&dir, __FILE__, __LINE__);
|
| + ReadTransaction rtrans(&dir, FROM_HERE);
|
| Entry e(&rtrans, GET_BY_ID, id);
|
| EXPECT_FALSE(e.good()); // Hasn't been written yet.
|
|
|
| @@ -295,7 +300,7 @@ TEST_F(SyncableGeneralTest, ToValue) {
|
|
|
| // Test creating a new meta entry.
|
| {
|
| - WriteTransaction wtrans(&dir, UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction wtrans(&dir, UNITTEST, FROM_HERE);
|
| MutableEntry me(&wtrans, CREATE, wtrans.root_id(), "new");
|
| ASSERT_TRUE(me.good());
|
| me.Put(ID, id);
|
| @@ -349,7 +354,7 @@ class SyncableDirectoryTest : public testing::Test {
|
| file_util::Delete(file_path_, true);
|
| dir_.reset(new Directory());
|
| ASSERT_TRUE(dir_.get());
|
| - ASSERT_TRUE(OPENED == dir_->Open(file_path_, kName));
|
| + ASSERT_TRUE(OPENED == dir_->Open(file_path_, kName, &delegate_));
|
| ASSERT_TRUE(dir_->good());
|
| }
|
|
|
| @@ -363,7 +368,7 @@ class SyncableDirectoryTest : public testing::Test {
|
| void ReloadDir() {
|
| dir_.reset(new Directory());
|
| ASSERT_TRUE(dir_.get());
|
| - ASSERT_TRUE(OPENED == dir_->Open(file_path_, kName));
|
| + ASSERT_TRUE(OPENED == dir_->Open(file_path_, kName, &delegate_));
|
| }
|
|
|
| void SaveAndReloadDir() {
|
| @@ -383,7 +388,7 @@ class SyncableDirectoryTest : public testing::Test {
|
| bool before_reload) {
|
| SCOPED_TRACE(testing::Message("Before reload: ") << before_reload);
|
| {
|
| - ReadTransaction trans(dir_.get(), __FILE__, __LINE__);
|
| + ReadTransaction trans(dir_.get(), FROM_HERE);
|
| MetahandleSet all_set;
|
| dir_->GetAllMetaHandles(&trans, &all_set);
|
| EXPECT_EQ(3U, all_set.size());
|
| @@ -406,6 +411,7 @@ class SyncableDirectoryTest : public testing::Test {
|
|
|
| scoped_ptr<Directory> dir_;
|
| FilePath file_path_;
|
| + NullDirectoryChangeDelegate delegate_;
|
|
|
| // Creates an empty entry and sets the ID field to the default kId.
|
| void CreateEntry(const std::string& entryname) {
|
| @@ -417,7 +423,7 @@ class SyncableDirectoryTest : public testing::Test {
|
| CreateEntry(entryname, TestIdFactory::FromNumber(id));
|
| }
|
| void CreateEntry(const std::string& entryname, Id id) {
|
| - WriteTransaction wtrans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction wtrans(dir_.get(), UNITTEST, FROM_HERE);
|
| MutableEntry me(&wtrans, CREATE, wtrans.root_id(), entryname);
|
| ASSERT_TRUE(me.good());
|
| me.Put(ID, id);
|
| @@ -438,7 +444,7 @@ TEST_F(SyncableDirectoryTest, TakeSnapshotGetsMetahandlesToPurge) {
|
| MetahandleSet expected_purges;
|
| MetahandleSet all_handles;
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
| for (int i = 0; i < metas_to_create; i++) {
|
| MutableEntry e(&trans, CREATE, trans.root_id(), "foo");
|
| e.Put(IS_UNSYNCED, true);
|
| @@ -480,7 +486,7 @@ TEST_F(SyncableDirectoryTest, TakeSnapshotGetsAllDirtyHandlesTest) {
|
| const int metahandles_to_create = 100;
|
| std::vector<int64> expected_dirty_metahandles;
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
| for (int i = 0; i < metahandles_to_create; i++) {
|
| MutableEntry e(&trans, CREATE, trans.root_id(), "foo");
|
| expected_dirty_metahandles.push_back(e.Get(META_HANDLE));
|
| @@ -503,7 +509,7 @@ TEST_F(SyncableDirectoryTest, TakeSnapshotGetsAllDirtyHandlesTest) {
|
| }
|
| // Put a new value with existing transactions as well as adding new ones.
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
| std::vector<int64> new_dirty_metahandles;
|
| for (std::vector<int64>::const_iterator i =
|
| expected_dirty_metahandles.begin();
|
| @@ -554,7 +560,7 @@ TEST_F(SyncableDirectoryTest, TestPurgeEntriesWithTypeIn) {
|
| TestIdFactory id_factory;
|
| // Create some items for each type.
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
| MutableEntry item1(&trans, CREATE, trans.root_id(), "Item");
|
| ASSERT_TRUE(item1.good());
|
| item1.Put(SPECIFICS, bookmark_specs);
|
| @@ -594,7 +600,7 @@ TEST_F(SyncableDirectoryTest, TestPurgeEntriesWithTypeIn) {
|
|
|
| dir_->SaveChanges();
|
| {
|
| - ReadTransaction trans(dir_.get(), __FILE__, __LINE__);
|
| + ReadTransaction trans(dir_.get(), FROM_HERE);
|
| MetahandleSet all_set;
|
| dir_->GetAllMetaHandles(&trans, &all_set);
|
| ASSERT_EQ(7U, all_set.size());
|
| @@ -616,7 +622,7 @@ TEST_F(SyncableDirectoryTest, TakeSnapshotGetsOnlyDirtyHandlesTest) {
|
| const unsigned int number_changed = 100u;
|
| std::vector<int64> expected_dirty_metahandles;
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
| for (int i = 0; i < metahandles_to_create; i++) {
|
| MutableEntry e(&trans, CREATE, trans.root_id(), "foo");
|
| expected_dirty_metahandles.push_back(e.Get(META_HANDLE));
|
| @@ -626,7 +632,7 @@ TEST_F(SyncableDirectoryTest, TakeSnapshotGetsOnlyDirtyHandlesTest) {
|
| dir_->SaveChanges();
|
| // Put a new value with existing transactions as well as adding new ones.
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
| std::vector<int64> new_dirty_metahandles;
|
| for (std::vector<int64>::const_iterator i =
|
| expected_dirty_metahandles.begin();
|
| @@ -647,7 +653,7 @@ TEST_F(SyncableDirectoryTest, TakeSnapshotGetsOnlyDirtyHandlesTest) {
|
| dir_->SaveChanges();
|
| // Don't make any changes whatsoever and ensure nothing comes back.
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
| for (std::vector<int64>::const_iterator i =
|
| expected_dirty_metahandles.begin();
|
| i != expected_dirty_metahandles.end(); ++i) {
|
| @@ -666,7 +672,7 @@ TEST_F(SyncableDirectoryTest, TakeSnapshotGetsOnlyDirtyHandlesTest) {
|
| dir_->VacuumAfterSaveChanges(snapshot);
|
| }
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
| bool should_change = false;
|
| for (std::vector<int64>::const_iterator i =
|
| expected_dirty_metahandles.begin();
|
| @@ -703,21 +709,21 @@ const Id SyncableDirectoryTest::kId(TestIdFactory::FromNumber(-99));
|
|
|
| namespace {
|
| TEST_F(SyncableDirectoryTest, TestBasicLookupNonExistantID) {
|
| - ReadTransaction rtrans(dir_.get(), __FILE__, __LINE__);
|
| + ReadTransaction rtrans(dir_.get(), FROM_HERE);
|
| Entry e(&rtrans, GET_BY_ID, kId);
|
| ASSERT_FALSE(e.good());
|
| }
|
|
|
| TEST_F(SyncableDirectoryTest, TestBasicLookupValidID) {
|
| CreateEntry("rtc");
|
| - ReadTransaction rtrans(dir_.get(), __FILE__, __LINE__);
|
| + ReadTransaction rtrans(dir_.get(), FROM_HERE);
|
| Entry e(&rtrans, GET_BY_ID, kId);
|
| ASSERT_TRUE(e.good());
|
| }
|
|
|
| TEST_F(SyncableDirectoryTest, TestDelete) {
|
| std::string name = "peanut butter jelly time";
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
| MutableEntry e1(&trans, CREATE, trans.root_id(), name);
|
| ASSERT_TRUE(e1.good());
|
| ASSERT_TRUE(e1.Put(IS_DEL, true));
|
| @@ -741,7 +747,7 @@ TEST_F(SyncableDirectoryTest, TestGetUnsynced) {
|
| Directory::UnsyncedMetaHandles handles;
|
| int64 handle1, handle2;
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
|
|
| dir_->GetUnsyncedMetaHandles(&trans, &handles);
|
| ASSERT_TRUE(0 == handles.size());
|
| @@ -761,7 +767,7 @@ TEST_F(SyncableDirectoryTest, TestGetUnsynced) {
|
| }
|
| dir_->SaveChanges();
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
|
|
| dir_->GetUnsyncedMetaHandles(&trans, &handles);
|
| ASSERT_TRUE(0 == handles.size());
|
| @@ -772,7 +778,7 @@ TEST_F(SyncableDirectoryTest, TestGetUnsynced) {
|
| }
|
| dir_->SaveChanges();
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
| dir_->GetUnsyncedMetaHandles(&trans, &handles);
|
| ASSERT_TRUE(1 == handles.size());
|
| ASSERT_TRUE(handle1 == handles[0]);
|
| @@ -783,7 +789,7 @@ TEST_F(SyncableDirectoryTest, TestGetUnsynced) {
|
| }
|
| dir_->SaveChanges();
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
| dir_->GetUnsyncedMetaHandles(&trans, &handles);
|
| ASSERT_TRUE(2 == handles.size());
|
| if (handle1 == handles[0]) {
|
| @@ -801,7 +807,7 @@ TEST_F(SyncableDirectoryTest, TestGetUnsynced) {
|
| }
|
| dir_->SaveChanges();
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
| dir_->GetUnsyncedMetaHandles(&trans, &handles);
|
| ASSERT_TRUE(1 == handles.size());
|
| ASSERT_TRUE(handle2 == handles[0]);
|
| @@ -812,7 +818,7 @@ TEST_F(SyncableDirectoryTest, TestGetUnappliedUpdates) {
|
| Directory::UnappliedUpdateMetaHandles handles;
|
| int64 handle1, handle2;
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
|
|
| dir_->GetUnappliedUpdateMetaHandles(&trans, &handles);
|
| ASSERT_TRUE(0 == handles.size());
|
| @@ -834,7 +840,7 @@ TEST_F(SyncableDirectoryTest, TestGetUnappliedUpdates) {
|
| }
|
| dir_->SaveChanges();
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
|
|
| dir_->GetUnappliedUpdateMetaHandles(&trans, &handles);
|
| ASSERT_TRUE(0 == handles.size());
|
| @@ -845,7 +851,7 @@ TEST_F(SyncableDirectoryTest, TestGetUnappliedUpdates) {
|
| }
|
| dir_->SaveChanges();
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
| dir_->GetUnappliedUpdateMetaHandles(&trans, &handles);
|
| ASSERT_TRUE(1 == handles.size());
|
| ASSERT_TRUE(handle1 == handles[0]);
|
| @@ -856,7 +862,7 @@ TEST_F(SyncableDirectoryTest, TestGetUnappliedUpdates) {
|
| }
|
| dir_->SaveChanges();
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
| dir_->GetUnappliedUpdateMetaHandles(&trans, &handles);
|
| ASSERT_TRUE(2 == handles.size());
|
| if (handle1 == handles[0]) {
|
| @@ -872,7 +878,7 @@ TEST_F(SyncableDirectoryTest, TestGetUnappliedUpdates) {
|
| }
|
| dir_->SaveChanges();
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
| dir_->GetUnappliedUpdateMetaHandles(&trans, &handles);
|
| ASSERT_TRUE(1 == handles.size());
|
| ASSERT_TRUE(handle2 == handles[0]);
|
| @@ -885,7 +891,7 @@ TEST_F(SyncableDirectoryTest, DeleteBug_531383) {
|
| TestIdFactory id_factory;
|
| int64 grandchild_handle, twin_handle;
|
| {
|
| - WriteTransaction wtrans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction wtrans(dir_.get(), UNITTEST, FROM_HERE);
|
| MutableEntry parent(&wtrans, CREATE, id_factory.root(), "Bob");
|
| ASSERT_TRUE(parent.good());
|
| parent.Put(IS_DIR, true);
|
| @@ -911,7 +917,7 @@ TEST_F(SyncableDirectoryTest, DeleteBug_531383) {
|
| }
|
| dir_->SaveChanges();
|
| {
|
| - WriteTransaction wtrans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction wtrans(dir_.get(), UNITTEST, FROM_HERE);
|
| MutableEntry grandchild(&wtrans, GET_BY_HANDLE, grandchild_handle);
|
| grandchild.Put(IS_DEL, true); // Used to CHECK fail here.
|
| }
|
| @@ -923,7 +929,7 @@ static inline bool IsLegalNewParent(const Entry& a, const Entry& b) {
|
|
|
| TEST_F(SyncableDirectoryTest, TestIsLegalNewParent) {
|
| TestIdFactory id_factory;
|
| - WriteTransaction wtrans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction wtrans(dir_.get(), UNITTEST, FROM_HERE);
|
| Entry root(&wtrans, GET_BY_ID, id_factory.root());
|
| ASSERT_TRUE(root.good());
|
| MutableEntry parent(&wtrans, CREATE, root.Get(ID), "Bob");
|
| @@ -982,7 +988,7 @@ TEST_F(SyncableDirectoryTest, TestEntryIsInFolder) {
|
| std::string entry_name = "entry";
|
|
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
| MutableEntry folder(&trans, CREATE, trans.root_id(), "folder");
|
| ASSERT_TRUE(folder.good());
|
| EXPECT_TRUE(folder.Put(IS_DIR, true));
|
| @@ -998,7 +1004,7 @@ TEST_F(SyncableDirectoryTest, TestEntryIsInFolder) {
|
|
|
| // Make sure we can find the entry in the folder.
|
| {
|
| - ReadTransaction trans(dir_.get(), __FILE__, __LINE__);
|
| + ReadTransaction trans(dir_.get(), FROM_HERE);
|
| EXPECT_EQ(0, CountEntriesWithName(&trans, trans.root_id(), entry_name));
|
| EXPECT_EQ(1, CountEntriesWithName(&trans, folder_id, entry_name));
|
|
|
| @@ -1013,7 +1019,7 @@ TEST_F(SyncableDirectoryTest, TestEntryIsInFolder) {
|
| TEST_F(SyncableDirectoryTest, TestParentIdIndexUpdate) {
|
| std::string child_name = "child";
|
|
|
| - WriteTransaction wt(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction wt(dir_.get(), UNITTEST, FROM_HERE);
|
| MutableEntry parent_folder(&wt, CREATE, wt.root_id(), "folder1");
|
| parent_folder.Put(IS_UNSYNCED, true);
|
| EXPECT_TRUE(parent_folder.Put(IS_DIR, true));
|
| @@ -1042,7 +1048,7 @@ TEST_F(SyncableDirectoryTest, TestNoReindexDeletedItems) {
|
| std::string folder_name = "folder";
|
| std::string new_name = "new_name";
|
|
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
| MutableEntry folder(&trans, CREATE, trans.root_id(), folder_name);
|
| ASSERT_TRUE(folder.good());
|
| ASSERT_TRUE(folder.Put(IS_DIR, true));
|
| @@ -1060,7 +1066,7 @@ TEST_F(SyncableDirectoryTest, TestNoReindexDeletedItems) {
|
| }
|
|
|
| TEST_F(SyncableDirectoryTest, TestCaseChangeRename) {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
| MutableEntry folder(&trans, CREATE, trans.root_id(), "CaseChange");
|
| ASSERT_TRUE(folder.good());
|
| EXPECT_TRUE(folder.Put(PARENT_ID, trans.root_id()));
|
| @@ -1073,7 +1079,7 @@ TEST_F(SyncableDirectoryTest, TestShareInfo) {
|
| dir_->set_store_birthday("Jan 31st");
|
| dir_->SetNotificationState("notification_state");
|
| {
|
| - ReadTransaction trans(dir_.get(), __FILE__, __LINE__);
|
| + ReadTransaction trans(dir_.get(), FROM_HERE);
|
| EXPECT_TRUE(dir_->initial_sync_ended_for_type(AUTOFILL));
|
| EXPECT_FALSE(dir_->initial_sync_ended_for_type(BOOKMARKS));
|
| EXPECT_EQ("Jan 31st", dir_->store_birthday());
|
| @@ -1084,7 +1090,7 @@ TEST_F(SyncableDirectoryTest, TestShareInfo) {
|
| dir_->SetNotificationState("notification_state2");
|
| dir_->SaveChanges();
|
| {
|
| - ReadTransaction trans(dir_.get(), __FILE__, __LINE__);
|
| + ReadTransaction trans(dir_.get(), FROM_HERE);
|
| EXPECT_TRUE(dir_->initial_sync_ended_for_type(AUTOFILL));
|
| EXPECT_FALSE(dir_->initial_sync_ended_for_type(BOOKMARKS));
|
| EXPECT_EQ("April 10th", dir_->store_birthday());
|
| @@ -1095,7 +1101,7 @@ TEST_F(SyncableDirectoryTest, TestShareInfo) {
|
| // Restore the directory from disk. Make sure that nothing's changed.
|
| SaveAndReloadDir();
|
| {
|
| - ReadTransaction trans(dir_.get(), __FILE__, __LINE__);
|
| + ReadTransaction trans(dir_.get(), FROM_HERE);
|
| EXPECT_TRUE(dir_->initial_sync_ended_for_type(AUTOFILL));
|
| EXPECT_FALSE(dir_->initial_sync_ended_for_type(BOOKMARKS));
|
| EXPECT_EQ("April 10th", dir_->store_birthday());
|
| @@ -1112,7 +1118,7 @@ TEST_F(SyncableDirectoryTest, TestSimpleFieldsPreservedDuringSaveChanges) {
|
| std::string create_name = "Create";
|
|
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
| MutableEntry create(&trans, CREATE, trans.root_id(), create_name);
|
| MutableEntry update(&trans, CREATE_NEW_UPDATE_ITEM, update_id);
|
| create.Put(IS_UNSYNCED, true);
|
| @@ -1129,11 +1135,11 @@ TEST_F(SyncableDirectoryTest, TestSimpleFieldsPreservedDuringSaveChanges) {
|
| dir_->SaveChanges();
|
| dir_.reset(new Directory());
|
| ASSERT_TRUE(dir_.get());
|
| - ASSERT_TRUE(OPENED == dir_->Open(file_path_, kName));
|
| + ASSERT_TRUE(OPENED == dir_->Open(file_path_, kName, &delegate_));
|
| ASSERT_TRUE(dir_->good());
|
|
|
| {
|
| - ReadTransaction trans(dir_.get(), __FILE__, __LINE__);
|
| + ReadTransaction trans(dir_.get(), FROM_HERE);
|
| Entry create(&trans, GET_BY_ID, create_id);
|
| EXPECT_EQ(1, CountEntriesWithName(&trans, trans.root_id(), create_name));
|
| Entry update(&trans, GET_BY_ID, update_id);
|
| @@ -1187,7 +1193,7 @@ TEST_F(SyncableDirectoryTest, TestSaveChangesFailure) {
|
| int64 handle1 = 0;
|
| // Set up an item using a regular, saveable directory.
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
|
|
| MutableEntry e1(&trans, CREATE, trans.root_id(), "aguilera");
|
| ASSERT_TRUE(e1.good());
|
| @@ -1204,7 +1210,7 @@ TEST_F(SyncableDirectoryTest, TestSaveChangesFailure) {
|
| // Make sure the item is no longer dirty after saving,
|
| // and make a modification.
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
|
|
| MutableEntry aguilera(&trans, GET_BY_HANDLE, handle1);
|
| ASSERT_TRUE(aguilera.good());
|
| @@ -1220,11 +1226,11 @@ TEST_F(SyncableDirectoryTest, TestSaveChangesFailure) {
|
| // always fail.
|
| dir_.reset(new TestUnsaveableDirectory());
|
| ASSERT_TRUE(dir_.get());
|
| - ASSERT_TRUE(OPENED == dir_->Open(file_path_, kName));
|
| + ASSERT_TRUE(OPENED == dir_->Open(file_path_, kName, &delegate_));
|
| ASSERT_TRUE(dir_->good());
|
| int64 handle2 = 0;
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
|
|
| MutableEntry aguilera(&trans, GET_BY_HANDLE, handle1);
|
| ASSERT_TRUE(aguilera.good());
|
| @@ -1253,7 +1259,7 @@ TEST_F(SyncableDirectoryTest, TestSaveChangesFailure) {
|
|
|
| // Make sure things were rolled back and the world is as it was before call.
|
| {
|
| - ReadTransaction trans(dir_.get(), __FILE__, __LINE__);
|
| + ReadTransaction trans(dir_.get(), FROM_HERE);
|
| Entry e1(&trans, GET_BY_HANDLE, handle1);
|
| ASSERT_TRUE(e1.good());
|
| EntryKernel aguilera = e1.GetKernelCopy();
|
| @@ -1270,7 +1276,7 @@ TEST_F(SyncableDirectoryTest, TestSaveChangesFailureWithPurge) {
|
| int64 handle1 = 0;
|
| // Set up an item using a regular, saveable directory.
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
|
|
| MutableEntry e1(&trans, CREATE, trans.root_id(), "aguilera");
|
| ASSERT_TRUE(e1.good());
|
| @@ -1293,7 +1299,7 @@ TEST_F(SyncableDirectoryTest, TestSaveChangesFailureWithPurge) {
|
| // always fail.
|
| dir_.reset(new TestUnsaveableDirectory());
|
| ASSERT_TRUE(dir_.get());
|
| - ASSERT_TRUE(OPENED == dir_->Open(file_path_, kName));
|
| + ASSERT_TRUE(OPENED == dir_->Open(file_path_, kName, &delegate_));
|
| ASSERT_TRUE(dir_->good());
|
|
|
| ModelTypeSet set;
|
| @@ -1321,7 +1327,7 @@ TEST_F(SyncableDirectoryTest, GetModelType) {
|
| sync_pb::EntitySpecifics specifics;
|
| AddDefaultExtensionValue(datatype, &specifics);
|
|
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
|
|
| MutableEntry folder(&trans, CREATE, trans.root_id(), "Folder");
|
| ASSERT_TRUE(folder.good());
|
| @@ -1416,11 +1422,12 @@ class SyncableDirectoryManager : public testing::Test {
|
| }
|
| protected:
|
| ScopedTempDir temp_dir_;
|
| + NullDirectoryChangeDelegate delegate_;
|
| };
|
|
|
| TEST_F(SyncableDirectoryManager, TestFileRelease) {
|
| DirectoryManager dm(FilePath(temp_dir_.path()));
|
| - ASSERT_TRUE(dm.Open("ScopeTest"));
|
| + ASSERT_TRUE(dm.Open("ScopeTest", &delegate_));
|
| {
|
| ScopedDirLookup(&dm, "ScopeTest");
|
| }
|
| @@ -1433,11 +1440,12 @@ class ThreadOpenTestDelegate : public base::PlatformThread::Delegate {
|
| explicit ThreadOpenTestDelegate(DirectoryManager* dm)
|
| : directory_manager_(dm) {}
|
| DirectoryManager* const directory_manager_;
|
| + NullDirectoryChangeDelegate delegate_;
|
|
|
| private:
|
| // PlatformThread::Delegate methods:
|
| virtual void ThreadMain() {
|
| - CHECK(directory_manager_->Open("Open"));
|
| + CHECK(directory_manager_->Open("Open", &delegate_));
|
| }
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ThreadOpenTestDelegate);
|
| @@ -1476,6 +1484,7 @@ class ThreadBugDelegate : public base::PlatformThread::Delegate {
|
| protected:
|
| const int role_;
|
| Step* const step_;
|
| + NullDirectoryChangeDelegate delegate_;
|
| DirectoryManager* const directory_manager_;
|
|
|
| // PlatformThread::Delegate methods:
|
| @@ -1489,15 +1498,15 @@ class ThreadBugDelegate : public base::PlatformThread::Delegate {
|
| }
|
| switch (step_->number) {
|
| case 0:
|
| - directory_manager_->Open(dirname);
|
| + directory_manager_->Open(dirname, &delegate_);
|
| break;
|
| case 1:
|
| {
|
| directory_manager_->Close(dirname);
|
| - directory_manager_->Open(dirname);
|
| + directory_manager_->Open(dirname, &delegate_);
|
| ScopedDirLookup dir(directory_manager_, dirname);
|
| CHECK(dir.good());
|
| - WriteTransaction trans(dir, UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir, UNITTEST, FROM_HERE);
|
| MutableEntry me(&trans, CREATE, trans.root_id(), "Jeff");
|
| step_->metahandle = me.Get(META_HANDLE);
|
| me.Put(IS_UNSYNCED, true);
|
| @@ -1507,7 +1516,7 @@ class ThreadBugDelegate : public base::PlatformThread::Delegate {
|
| {
|
| ScopedDirLookup dir(directory_manager_, dirname);
|
| CHECK(dir.good());
|
| - ReadTransaction trans(dir, __FILE__, __LINE__);
|
| + ReadTransaction trans(dir, FROM_HERE);
|
| Entry e(&trans, GET_BY_HANDLE, step_->metahandle);
|
| CHECK(e.good()); // Failed due to ThreadBug1
|
| }
|
| @@ -1568,10 +1577,10 @@ class DirectoryKernelStalenessBugDelegate : public ThreadBugDelegate {
|
| file_util::Delete(directory_manager_->GetSyncDataDatabasePath(),
|
| true);
|
| // Test.
|
| - directory_manager_->Open(dirname);
|
| + directory_manager_->Open(dirname, &delegate_);
|
| ScopedDirLookup dir(directory_manager_, dirname);
|
| CHECK(dir.good());
|
| - WriteTransaction trans(dir, UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir, UNITTEST, FROM_HERE);
|
| MutableEntry me(&trans, CREATE, trans.root_id(), "Jeff");
|
| me.Put(BASE_VERSION, 1);
|
| me.Put(ID, jeff_id);
|
| @@ -1587,7 +1596,7 @@ class DirectoryKernelStalenessBugDelegate : public ThreadBugDelegate {
|
| break;
|
| case 1:
|
| {
|
| - directory_manager_->Open(dirname);
|
| + directory_manager_->Open(dirname, &delegate_);
|
| ScopedDirLookup dir(directory_manager_, dirname);
|
| CHECK(dir.good());
|
| }
|
| @@ -1602,7 +1611,7 @@ class DirectoryKernelStalenessBugDelegate : public ThreadBugDelegate {
|
| {
|
| ScopedDirLookup dir(directory_manager_, dirname);
|
| CHECK(dir.good());
|
| - ReadTransaction trans(dir, __FILE__, __LINE__);
|
| + ReadTransaction trans(dir, FROM_HERE);
|
| Entry e(&trans, GET_BY_ID, jeff_id);
|
| ExpectDataFromBookmarkFaviconEquals(&trans, &e, test_bytes,
|
| sizeof(test_bytes));
|
| @@ -1662,14 +1671,14 @@ class StressTransactionsDelegate : public base::PlatformThread::Delegate {
|
| for (int i = 0; i < 20; ++i) {
|
| const int rand_action = rand() % 10;
|
| if (rand_action < 4 && !path_name.empty()) {
|
| - ReadTransaction trans(dir, __FILE__, __LINE__);
|
| + ReadTransaction trans(dir, FROM_HERE);
|
| CHECK(1 == CountEntriesWithName(&trans, trans.root_id(), path_name));
|
| base::PlatformThread::Sleep(rand() % 10);
|
| } else {
|
| std::string unique_name =
|
| base::StringPrintf("%d.%d", thread_number_, entry_count++);
|
| path_name.assign(unique_name.begin(), unique_name.end());
|
| - WriteTransaction trans(dir, UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir, UNITTEST, FROM_HERE);
|
| MutableEntry e(&trans, CREATE, trans.root_id(), path_name);
|
| CHECK(e.good());
|
| base::PlatformThread::Sleep(rand() % 20);
|
| @@ -1691,7 +1700,8 @@ TEST(SyncableDirectory, StressTransactions) {
|
| DirectoryManager dirman(FilePath(temp_dir.path()));
|
| std::string dirname = "stress";
|
| file_util::Delete(dirman.GetSyncDataDatabasePath(), true);
|
| - dirman.Open(dirname);
|
| + NullDirectoryChangeDelegate delegate;
|
| + dirman.Open(dirname, &delegate);
|
|
|
| const int kThreadCount = 7;
|
| base::PlatformThreadHandle threads[kThreadCount];
|
| @@ -1726,7 +1736,7 @@ class SyncableClientTagTest : public SyncableDirectoryTest {
|
|
|
| // Attempt to create an entry with a default tag.
|
| bool CreateWithTag(const char* tag, Id id, bool deleted) {
|
| - WriteTransaction wtrans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction wtrans(dir_.get(), UNITTEST, FROM_HERE);
|
| MutableEntry me(&wtrans, CREATE, wtrans.root_id(), test_name_);
|
| CHECK(me.good());
|
| me.Put(ID, id);
|
| @@ -1742,7 +1752,7 @@ class SyncableClientTagTest : public SyncableDirectoryTest {
|
| // Verify an entry exists with the default tag.
|
| void VerifyTag(Id id, bool deleted) {
|
| // Should still be present and valid in the client tag index.
|
| - ReadTransaction trans(dir_.get(), __FILE__, __LINE__);
|
| + ReadTransaction trans(dir_.get(), FROM_HERE);
|
| Entry me(&trans, GET_BY_CLIENT_TAG, test_tag_);
|
| CHECK(me.good());
|
| EXPECT_EQ(me.Get(ID), id);
|
| @@ -1759,13 +1769,13 @@ TEST_F(SyncableClientTagTest, TestClientTagClear) {
|
| Id server_id = factory_.NewServerId();
|
| EXPECT_TRUE(CreateWithDefaultTag(server_id, false));
|
| {
|
| - WriteTransaction trans(dir_.get(), UNITTEST, __FILE__, __LINE__);
|
| + WriteTransaction trans(dir_.get(), UNITTEST, FROM_HERE);
|
| MutableEntry me(&trans, GET_BY_CLIENT_TAG, test_tag_);
|
| EXPECT_TRUE(me.good());
|
| me.Put(UNIQUE_CLIENT_TAG, "");
|
| }
|
| {
|
| - ReadTransaction trans(dir_.get(), __FILE__, __LINE__);
|
| + ReadTransaction trans(dir_.get(), FROM_HERE);
|
| Entry by_tag(&trans, GET_BY_CLIENT_TAG, test_tag_);
|
| EXPECT_FALSE(by_tag.good());
|
|
|
|
|