test_directory_backing_store.cc revision 5821806d5e7f356e8fa4b058a389a808ea183019
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 3// found in the LICENSE file. 4 5#include "sync/test/test_directory_backing_store.h" 6 7#include "base/basictypes.h" 8#include "base/logging.h" 9 10namespace syncer { 11namespace syncable { 12 13TestDirectoryBackingStore::TestDirectoryBackingStore( 14 const std::string& dir_name, sql::Connection* db) 15 : DirectoryBackingStore(dir_name, db) { 16} 17 18TestDirectoryBackingStore::~TestDirectoryBackingStore() { 19 // This variant of the DirectoryBackingStore does not own its connection, so 20 // we take care to not delete it here. 21 ignore_result(db_.release()); 22} 23 24DirOpenResult TestDirectoryBackingStore::Load( 25 MetahandlesIndex* entry_bucket, 26 Directory::KernelLoadInfo* kernel_load_info) { 27 DCHECK(db_->is_open()); 28 29 if (!InitializeTables()) 30 return FAILED_OPEN_DATABASE; 31 32 if (!DropDeletedEntries()) 33 return FAILED_DATABASE_CORRUPT; 34 if (!LoadEntries(entry_bucket)) 35 return FAILED_DATABASE_CORRUPT; 36 if (!LoadInfo(kernel_load_info)) 37 return FAILED_DATABASE_CORRUPT; 38 if (!VerifyReferenceIntegrity(*entry_bucket)) 39 return FAILED_DATABASE_CORRUPT; 40 41 return OPENED; 42} 43 44} // namespace syncable 45} // namespace syncer 46