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

Unified Diff: chrome/browser/sync_file_system/drive_backend/metadata_database_index_on_disk_unittest.cc

Issue 428063002: [SyncFS] Replace leveldb classes with LevelDBWrapper (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/sync_file_system/drive_backend/metadata_database_index_on_disk_unittest.cc
diff --git a/chrome/browser/sync_file_system/drive_backend/metadata_database_index_on_disk_unittest.cc b/chrome/browser/sync_file_system/drive_backend/metadata_database_index_on_disk_unittest.cc
index 36eeb6675d2420e508e8a383ea9c4f11e46c54a7..fb6a38313f666752053844d2a81c983013f2fff4 100644
--- a/chrome/browser/sync_file_system/drive_backend/metadata_database_index_on_disk_unittest.cc
+++ b/chrome/browser/sync_file_system/drive_backend/metadata_database_index_on_disk_unittest.cc
@@ -8,13 +8,13 @@
#include "chrome/browser/sync_file_system/drive_backend/drive_backend_constants.h"
#include "chrome/browser/sync_file_system/drive_backend/drive_backend_test_util.h"
#include "chrome/browser/sync_file_system/drive_backend/drive_backend_util.h"
+#include "chrome/browser/sync_file_system/drive_backend/leveldb_wrapper.h"
#include "chrome/browser/sync_file_system/drive_backend/metadata_database.pb.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/leveldatabase/src/helpers/memenv/memenv.h"
#include "third_party/leveldatabase/src/include/leveldb/db.h"
#include "third_party/leveldatabase/src/include/leveldb/env.h"
#include "third_party/leveldatabase/src/include/leveldb/status.h"
-#include "third_party/leveldatabase/src/include/leveldb/write_batch.h"
namespace sync_file_system {
namespace drive_backend {
@@ -36,7 +36,7 @@ class MetadataDatabaseIndexOnDiskTest : public testing::Test {
ASSERT_TRUE(database_dir_.CreateUniqueTempDir());
in_memory_env_.reset(leveldb::NewMemEnv(leveldb::Env::Default()));
InitializeLevelDB();
- index_ = MetadataDatabaseIndexOnDisk::Create(db_.get(), NULL);
+ index_ = MetadataDatabaseIndexOnDisk::Create(db_.get());
}
virtual void TearDown() OVERRIDE {
@@ -45,11 +45,6 @@ class MetadataDatabaseIndexOnDiskTest : public testing::Test {
in_memory_env_.reset();
}
- bool WriteToDB(scoped_ptr<leveldb::WriteBatch> batch) {
- leveldb::Status status = db_->Write(leveldb::WriteOptions(), batch.get());
- return status.ok();
- }
-
void CreateTestDatabase(bool build_index) {
scoped_ptr<FileMetadata> sync_root_metadata =
test_util::CreateFolderMetadata("sync_root_folder_id",
@@ -77,31 +72,32 @@ class MetadataDatabaseIndexOnDiskTest : public testing::Test {
kPlaceholderTrackerID,
app_root_tracker.get());
- leveldb::WriteBatch batch;
if (build_index) {
DCHECK(index());
- index()->StoreFileMetadata(sync_root_metadata.Pass(), &batch);
- index()->StoreFileTracker(sync_root_tracker.Pass(), &batch);
- index()->StoreFileMetadata(app_root_metadata.Pass(), &batch);
- index()->StoreFileTracker(app_root_tracker.Pass(), &batch);
- index()->StoreFileMetadata(file_metadata.Pass(), &batch);
- index()->StoreFileTracker(file_tracker.Pass(), &batch);
- index()->StoreFileTracker(placeholder_tracker.Pass(), &batch);
+ index()->StoreFileMetadata(sync_root_metadata.Pass());
+ index()->StoreFileTracker(sync_root_tracker.Pass());
+ index()->StoreFileMetadata(app_root_metadata.Pass());
+ index()->StoreFileTracker(app_root_tracker.Pass());
+ index()->StoreFileMetadata(file_metadata.Pass());
+ index()->StoreFileTracker(file_tracker.Pass());
+ index()->StoreFileTracker(placeholder_tracker.Pass());
} else {
- PutFileMetadataToBatch(*sync_root_metadata, &batch);
- PutFileTrackerToBatch(*sync_root_tracker, &batch);
- PutFileMetadataToBatch(*app_root_metadata, &batch);
- PutFileTrackerToBatch(*app_root_tracker, &batch);
- PutFileMetadataToBatch(*file_metadata, &batch);
- PutFileTrackerToBatch(*file_tracker, &batch);
- PutFileTrackerToBatch(*placeholder_tracker, &batch);
+ PutFileMetadataToDB(*sync_root_metadata, db_.get());
+ PutFileTrackerToDB(*sync_root_tracker, db_.get());
+ PutFileMetadataToDB(*app_root_metadata, db_.get());
+ PutFileTrackerToDB(*app_root_tracker, db_.get());
+ PutFileMetadataToDB(*file_metadata, db_.get());
+ PutFileTrackerToDB(*file_tracker, db_.get());
+ PutFileTrackerToDB(*placeholder_tracker, db_.get());
}
- leveldb::Status status = db_->Write(leveldb::WriteOptions(), &batch);
- ASSERT_TRUE(status.ok());
+ ASSERT_TRUE(db_->Commit().ok());
}
MetadataDatabaseIndexOnDisk* index() { return index_.get(); }
+ void WriteToDB() {
+ ASSERT_TRUE(db_->Commit().ok());
+ }
private:
void InitializeLevelDB() {
@@ -113,14 +109,14 @@ class MetadataDatabaseIndexOnDiskTest : public testing::Test {
leveldb::Status status =
leveldb::DB::Open(options, database_dir_.path().AsUTF8Unsafe(), &db);
ASSERT_TRUE(status.ok());
- db_.reset(db);
+ db_.reset(new LevelDBWrapper(make_scoped_ptr(db)));
}
scoped_ptr<MetadataDatabaseIndexOnDisk> index_;
base::ScopedTempDir database_dir_;
scoped_ptr<leveldb::Env> in_memory_env_;
- scoped_ptr<leveldb::DB> db_;
+ scoped_ptr<LevelDBWrapper> db_;
};
TEST_F(MetadataDatabaseIndexOnDiskTest, GetEntryTest) {
@@ -143,7 +139,6 @@ TEST_F(MetadataDatabaseIndexOnDiskTest, SetEntryTest) {
CreateTestDatabase(false);
const int64 tracker_id = 10;
- scoped_ptr<leveldb::WriteBatch> batch(new leveldb::WriteBatch);
scoped_ptr<FileMetadata> metadata =
test_util::CreateFileMetadata("test_file_id", "test_title", "test_md5");
FileTracker root_tracker;
@@ -151,13 +146,13 @@ TEST_F(MetadataDatabaseIndexOnDiskTest, SetEntryTest) {
scoped_ptr<FileTracker> tracker =
test_util::CreateTracker(*metadata, tracker_id, &root_tracker);
- index()->StoreFileMetadata(metadata.Pass(), batch.get());
- index()->StoreFileTracker(tracker.Pass(), batch.get());
+ index()->StoreFileMetadata(metadata.Pass());
+ index()->StoreFileTracker(tracker.Pass());
- EXPECT_FALSE(index()->GetFileMetadata("test_file_id", NULL));
- EXPECT_FALSE(index()->GetFileTracker(tracker_id, NULL));
+ EXPECT_TRUE(index()->GetFileMetadata("test_file_id", NULL));
+ EXPECT_TRUE(index()->GetFileTracker(tracker_id, NULL));
- WriteToDB(batch.Pass());
+ WriteToDB();
metadata.reset(new FileMetadata);
ASSERT_TRUE(index()->GetFileMetadata("test_file_id", metadata.get()));
@@ -169,15 +164,13 @@ TEST_F(MetadataDatabaseIndexOnDiskTest, SetEntryTest) {
EXPECT_EQ("test_file_id", tracker->file_id());
// Test if removers work.
- batch.reset(new leveldb::WriteBatch);
-
- index()->RemoveFileMetadata("test_file_id", batch.get());
- index()->RemoveFileTracker(tracker_id, batch.get());
+ index()->RemoveFileMetadata("test_file_id");
+ index()->RemoveFileTracker(tracker_id);
- EXPECT_TRUE(index()->GetFileMetadata("test_file_id", NULL));
- EXPECT_TRUE(index()->GetFileTracker(tracker_id, NULL));
+ EXPECT_FALSE(index()->GetFileMetadata("test_file_id", NULL));
+ EXPECT_FALSE(index()->GetFileTracker(tracker_id, NULL));
- WriteToDB(batch.Pass());
+ WriteToDB();
EXPECT_FALSE(index()->GetFileMetadata("test_file_id", NULL));
EXPECT_FALSE(index()->GetFileTracker(tracker_id, NULL));
@@ -196,9 +189,8 @@ TEST_F(MetadataDatabaseIndexOnDiskTest, BuildIndexTest) {
EXPECT_TRUE(tracker_ids.empty());
EXPECT_EQ(0U, index()->CountDirtyTracker());
- scoped_ptr<leveldb::WriteBatch> batch(new leveldb::WriteBatch);
- index()->BuildTrackerIndexes(batch.get());
- WriteToDB(batch.Pass());
+ index()->BuildTrackerIndexes();
+ WriteToDB();
// After building indexes, we should have correct indexes.
EXPECT_EQ(kAppRootTrackerID, index()->GetAppRootTracker("app_id"));
@@ -250,49 +242,45 @@ TEST_F(MetadataDatabaseIndexOnDiskTest, IndexAppRootIDByAppIDTest) {
test_util::CreateFolderMetadata("app_root_folder_id_2", "app_title_2");
// Testing AddToAppIDIndex
- scoped_ptr<leveldb::WriteBatch> batch(new leveldb::WriteBatch);
scoped_ptr<FileTracker> app_root_tracker =
test_util::CreateTracker(*app_root_metadata, kAppRootTrackerID2,
&sync_root_tracker);
app_root_tracker->set_app_id("app_id_2");
app_root_tracker->set_tracker_kind(TRACKER_KIND_APP_ROOT);
- index()->StoreFileTracker(app_root_tracker.Pass(), batch.get());
- WriteToDB(batch.Pass());
+ index()->StoreFileTracker(app_root_tracker.Pass());
+ WriteToDB();
EXPECT_EQ(kAppRootTrackerID, index()->GetAppRootTracker("app_id"));
EXPECT_EQ(kAppRootTrackerID2, index()->GetAppRootTracker("app_id_2"));
// Testing UpdateInAppIDIndex
- batch.reset(new leveldb::WriteBatch);
app_root_tracker = test_util::CreateTracker(*app_root_metadata,
kAppRootTrackerID2,
&sync_root_tracker);
app_root_tracker->set_app_id("app_id_3");
app_root_tracker->set_active(false);
- index()->StoreFileTracker(app_root_tracker.Pass(), batch.get());
- WriteToDB(batch.Pass());
+ index()->StoreFileTracker(app_root_tracker.Pass());
+ WriteToDB();
EXPECT_EQ(kAppRootTrackerID, index()->GetAppRootTracker("app_id"));
EXPECT_EQ(kInvalidTrackerID, index()->GetAppRootTracker("app_id_2"));
EXPECT_EQ(kInvalidTrackerID, index()->GetAppRootTracker("app_id_3"));
- batch.reset(new leveldb::WriteBatch);
app_root_tracker = test_util::CreateTracker(*app_root_metadata,
kAppRootTrackerID2,
&sync_root_tracker);
app_root_tracker->set_app_id("app_id_3");
app_root_tracker->set_tracker_kind(TRACKER_KIND_APP_ROOT);
- index()->StoreFileTracker(app_root_tracker.Pass(), batch.get());
- WriteToDB(batch.Pass());
+ index()->StoreFileTracker(app_root_tracker.Pass());
+ WriteToDB();
EXPECT_EQ(kAppRootTrackerID, index()->GetAppRootTracker("app_id"));
EXPECT_EQ(kInvalidTrackerID, index()->GetAppRootTracker("app_id_2"));
EXPECT_EQ(kAppRootTrackerID2, index()->GetAppRootTracker("app_id_3"));
// Testing RemoveFromAppIDIndex
- batch.reset(new leveldb::WriteBatch);
- index()->RemoveFileTracker(kAppRootTrackerID2, batch.get());
- WriteToDB(batch.Pass());
+ index()->RemoveFileTracker(kAppRootTrackerID2);
+ WriteToDB();
EXPECT_EQ(kAppRootTrackerID, index()->GetAppRootTracker("app_id"));
EXPECT_EQ(kInvalidTrackerID, index()->GetAppRootTracker("app_id_3"));
}
@@ -315,9 +303,8 @@ TEST_F(MetadataDatabaseIndexOnDiskTest, TrackerIDSetByFileIDTest) {
scoped_ptr<FileTracker> file_tracker =
test_util::CreateTracker(metadata, tracker_id, &app_root_tracker);
- scoped_ptr<leveldb::WriteBatch> batch(new leveldb::WriteBatch);
- index()->StoreFileTracker(file_tracker.Pass(), batch.get());
- WriteToDB(batch.Pass());
+ index()->StoreFileTracker(file_tracker.Pass());
+ WriteToDB();
tracker_ids = index()->GetFileTrackerIDsByFileID("file_id");
EXPECT_EQ(2U, tracker_ids.size());
EXPECT_EQ(tracker_id, tracker_ids.active_tracker());
@@ -326,13 +313,12 @@ TEST_F(MetadataDatabaseIndexOnDiskTest, TrackerIDSetByFileIDTest) {
EXPECT_EQ("file_id", multi_file_id);
// Testing UpdateInFileIDIndexes
- batch.reset(new leveldb::WriteBatch);
file_tracker =
test_util::CreateTracker(metadata, tracker_id, &app_root_tracker);
file_tracker->set_active(false);
- index()->StoreFileTracker(file_tracker.Pass(), batch.get());
- WriteToDB(batch.Pass());
+ index()->StoreFileTracker(file_tracker.Pass());
+ WriteToDB();
tracker_ids = index()->GetFileTrackerIDsByFileID("file_id");
EXPECT_EQ(2U, tracker_ids.size());
EXPECT_EQ(kInvalidTrackerID, tracker_ids.active_tracker());
@@ -340,12 +326,11 @@ TEST_F(MetadataDatabaseIndexOnDiskTest, TrackerIDSetByFileIDTest) {
multi_file_id = index()->PickMultiTrackerFileID();
EXPECT_EQ("file_id", multi_file_id);
- batch.reset(new leveldb::WriteBatch);
file_tracker =
test_util::CreateTracker(metadata, tracker_id, &app_root_tracker);
- index()->StoreFileTracker(file_tracker.Pass(), batch.get());
- WriteToDB(batch.Pass());
+ index()->StoreFileTracker(file_tracker.Pass());
+ WriteToDB();
tracker_ids = index()->GetFileTrackerIDsByFileID("file_id");
EXPECT_EQ(2U, tracker_ids.size());
EXPECT_EQ(tracker_id, tracker_ids.active_tracker());
@@ -354,9 +339,8 @@ TEST_F(MetadataDatabaseIndexOnDiskTest, TrackerIDSetByFileIDTest) {
EXPECT_EQ("file_id", multi_file_id);
// Testing RemoveFromFileIDIndexes
- batch.reset(new leveldb::WriteBatch);
- index()->RemoveFileTracker(tracker_id, batch.get());
- WriteToDB(batch.Pass());
+ index()->RemoveFileTracker(tracker_id);
+ WriteToDB();
tracker_ids = index()->GetFileTrackerIDsByFileID("file_id");
EXPECT_EQ(1U, tracker_ids.size());
EXPECT_EQ(kInvalidTrackerID, tracker_ids.active_tracker());
@@ -388,9 +372,8 @@ TEST_F(MetadataDatabaseIndexOnDiskTest, TrackerIDSetByParentIDAndTitleTest) {
scoped_ptr<FileTracker> file_tracker =
test_util::CreateTracker(metadata, tracker_id, &app_root_tracker);
- scoped_ptr<leveldb::WriteBatch> batch(new leveldb::WriteBatch);
- index()->StoreFileTracker(file_tracker.Pass(), batch.get());
- WriteToDB(batch.Pass());
+ index()->StoreFileTracker(file_tracker.Pass());
+ WriteToDB();
tracker_ids = index()->GetFileTrackerIDsByParentAndTitle(
kAppRootTrackerID, "file");
EXPECT_EQ(2U, tracker_ids.size());
@@ -401,13 +384,12 @@ TEST_F(MetadataDatabaseIndexOnDiskTest, TrackerIDSetByParentIDAndTitleTest) {
EXPECT_EQ("file", multi_backing.title);
// Testing UpdateInFileIDIndexes
- batch.reset(new leveldb::WriteBatch);
file_tracker =
test_util::CreateTracker(metadata, tracker_id, &app_root_tracker);
file_tracker->set_active(false);
- index()->StoreFileTracker(file_tracker.Pass(), batch.get());
- WriteToDB(batch.Pass());
+ index()->StoreFileTracker(file_tracker.Pass());
+ WriteToDB();
tracker_ids = index()->GetFileTrackerIDsByParentAndTitle(
kAppRootTrackerID, "file");
EXPECT_EQ(2U, tracker_ids.size());
@@ -417,12 +399,11 @@ TEST_F(MetadataDatabaseIndexOnDiskTest, TrackerIDSetByParentIDAndTitleTest) {
EXPECT_EQ(kAppRootTrackerID, multi_backing.parent_id);
EXPECT_EQ("file", multi_backing.title);
- batch.reset(new leveldb::WriteBatch);
file_tracker =
test_util::CreateTracker(metadata, tracker_id, &app_root_tracker);
- index()->StoreFileTracker(file_tracker.Pass(), batch.get());
- WriteToDB(batch.Pass());
+ index()->StoreFileTracker(file_tracker.Pass());
+ WriteToDB();
tracker_ids = index()->GetFileTrackerIDsByParentAndTitle(
kAppRootTrackerID, "file");
EXPECT_EQ(2U, tracker_ids.size());
@@ -433,9 +414,8 @@ TEST_F(MetadataDatabaseIndexOnDiskTest, TrackerIDSetByParentIDAndTitleTest) {
EXPECT_EQ("file", multi_backing.title);
// Testing RemoveFromFileIDIndexes
- batch.reset(new leveldb::WriteBatch);
- index()->RemoveFileTracker(tracker_id, batch.get());
- WriteToDB(batch.Pass());
+ index()->RemoveFileTracker(tracker_id);
+ WriteToDB();
tracker_ids = index()->GetFileTrackerIDsByParentAndTitle(
kAppRootTrackerID, "file");
EXPECT_EQ(1U, tracker_ids.size());
@@ -449,14 +429,12 @@ TEST_F(MetadataDatabaseIndexOnDiskTest, TrackerIDSetByParentIDAndTitleTest) {
TEST_F(MetadataDatabaseIndexOnDiskTest, DirtyTrackersTest) {
CreateTestDatabase(true);
- scoped_ptr<leveldb::WriteBatch> batch;
// Testing public methods
EXPECT_EQ(1U, index()->CountDirtyTracker());
EXPECT_FALSE(index()->HasDemotedDirtyTracker());
EXPECT_EQ(kPlaceholderTrackerID, index()->PickDirtyTracker());
- batch.reset(new leveldb::WriteBatch);
- index()->DemoteDirtyTracker(kPlaceholderTrackerID, batch.get());
- WriteToDB(batch.Pass());
+ index()->DemoteDirtyTracker(kPlaceholderTrackerID);
+ WriteToDB();
EXPECT_TRUE(index()->HasDemotedDirtyTracker());
EXPECT_EQ(1U, index()->CountDirtyTracker());
@@ -469,9 +447,8 @@ TEST_F(MetadataDatabaseIndexOnDiskTest, DirtyTrackersTest) {
test_util::CreatePlaceholderTracker("placeholder",
tracker_id,
app_root_tracker.get());
- batch.reset(new leveldb::WriteBatch);
- index()->StoreFileTracker(tracker.Pass(), batch.get());
- WriteToDB(batch.Pass());
+ index()->StoreFileTracker(tracker.Pass());
+ WriteToDB();
EXPECT_EQ(2U, index()->CountDirtyTracker());
EXPECT_EQ(tracker_id, index()->PickDirtyTracker());
@@ -480,25 +457,22 @@ TEST_F(MetadataDatabaseIndexOnDiskTest, DirtyTrackersTest) {
tracker_id,
app_root_tracker.get());
tracker->set_dirty(false);
- batch.reset(new leveldb::WriteBatch);
- index()->StoreFileTracker(tracker.Pass(), batch.get());
- WriteToDB(batch.Pass());
+ index()->StoreFileTracker(tracker.Pass());
+ WriteToDB();
EXPECT_EQ(1U, index()->CountDirtyTracker());
EXPECT_EQ(kInvalidTrackerID, index()->PickDirtyTracker());
tracker = test_util::CreatePlaceholderTracker("placeholder",
tracker_id,
app_root_tracker.get());
- batch.reset(new leveldb::WriteBatch);
- index()->StoreFileTracker(tracker.Pass(), batch.get());
- WriteToDB(batch.Pass());
+ index()->StoreFileTracker(tracker.Pass());
+ WriteToDB();
EXPECT_EQ(2U, index()->CountDirtyTracker());
EXPECT_EQ(tracker_id, index()->PickDirtyTracker());
// Testing RemoveFromDirtyTrackerIndexes
- batch.reset(new leveldb::WriteBatch);
- index()->RemoveFileTracker(tracker_id, batch.get());
- WriteToDB(batch.Pass());
+ index()->RemoveFileTracker(tracker_id);
+ WriteToDB();
EXPECT_EQ(1U, index()->CountDirtyTracker());
EXPECT_EQ(kInvalidTrackerID, index()->PickDirtyTracker());
}

Powered by Google App Engine
This is Rietveld 408576698