| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "content/browser/indexed_db/leveldb/leveldb_iterator_impl.h" | 8 #include "content/browser/indexed_db/leveldb/leveldb_iterator_impl.h" |
| 9 #include "content/browser/indexed_db/leveldb/leveldb_transaction.h" | 9 #include "content/browser/indexed_db/leveldb/leveldb_transaction.h" |
| 10 #include "content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.h
" | 10 #include "content/browser/indexed_db/mock_browsertest_indexed_db_class_factory.h
" |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 std::string class_name_; | 32 std::string class_name_; |
| 33 std::string method_name_; | 33 std::string method_name_; |
| 34 int instance_count_; | 34 int instance_count_; |
| 35 int current_call_num_; | 35 int current_call_num_; |
| 36 }; | 36 }; |
| 37 | 37 |
| 38 } // namespace | 38 } // namespace |
| 39 | 39 |
| 40 namespace content { | 40 namespace content { |
| 41 | 41 |
| 42 class LevelDBTestTansaction : public LevelDBTransaction { | 42 class LevelDBTestTransaction : public LevelDBTransaction { |
| 43 public: | 43 public: |
| 44 LevelDBTestTansaction(LevelDBDatabase* db, | 44 LevelDBTestTransaction(LevelDBDatabase* db, |
| 45 FailMethod fail_method, | 45 FailMethod fail_method, |
| 46 int fail_on_call_num) | 46 int fail_on_call_num) |
| 47 : LevelDBTransaction(db), | 47 : LevelDBTransaction(db), |
| 48 fail_method_(fail_method), | 48 fail_method_(fail_method), |
| 49 fail_on_call_num_(fail_on_call_num), | 49 fail_on_call_num_(fail_on_call_num), |
| 50 current_call_num_(0) { | 50 current_call_num_(0) { |
| 51 DCHECK(fail_method != FAIL_METHOD_NOTHING); | 51 DCHECK(fail_method != FAIL_METHOD_NOTHING); |
| 52 DCHECK_GT(fail_on_call_num, 0); | 52 DCHECK_GT(fail_on_call_num, 0); |
| 53 } | 53 } |
| 54 | 54 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 65 | 65 |
| 66 leveldb::Status Commit() override { | 66 leveldb::Status Commit() override { |
| 67 if (fail_method_ != FAIL_METHOD_COMMIT || | 67 if (fail_method_ != FAIL_METHOD_COMMIT || |
| 68 ++current_call_num_ != fail_on_call_num_) | 68 ++current_call_num_ != fail_on_call_num_) |
| 69 return LevelDBTransaction::Commit(); | 69 return LevelDBTransaction::Commit(); |
| 70 | 70 |
| 71 return leveldb::Status::Corruption("Corrupted for the test"); | 71 return leveldb::Status::Corruption("Corrupted for the test"); |
| 72 } | 72 } |
| 73 | 73 |
| 74 private: | 74 private: |
| 75 ~LevelDBTestTansaction() override {} | 75 ~LevelDBTestTransaction() override {} |
| 76 | 76 |
| 77 FailMethod fail_method_; | 77 FailMethod fail_method_; |
| 78 int fail_on_call_num_; | 78 int fail_on_call_num_; |
| 79 int current_call_num_; | 79 int current_call_num_; |
| 80 }; | 80 }; |
| 81 | 81 |
| 82 class LevelDBTraceTansaction : public LevelDBTransaction { | 82 class LevelDBTraceTransaction : public LevelDBTransaction { |
| 83 public: | 83 public: |
| 84 LevelDBTraceTansaction(LevelDBDatabase* db, int tx_num) | 84 LevelDBTraceTransaction(LevelDBDatabase* db, int tx_num) |
| 85 : LevelDBTransaction(db), | 85 : LevelDBTransaction(db), |
| 86 commit_tracer_(s_class_name, "Commit", tx_num), | 86 commit_tracer_(s_class_name, "Commit", tx_num), |
| 87 get_tracer_(s_class_name, "Get", tx_num) {} | 87 get_tracer_(s_class_name, "Get", tx_num) {} |
| 88 | 88 |
| 89 leveldb::Status Get(const base::StringPiece& key, | 89 leveldb::Status Get(const base::StringPiece& key, |
| 90 std::string* value, | 90 std::string* value, |
| 91 bool* found) override { | 91 bool* found) override { |
| 92 get_tracer_.log_call(); | 92 get_tracer_.log_call(); |
| 93 return LevelDBTransaction::Get(key, value, found); | 93 return LevelDBTransaction::Get(key, value, found); |
| 94 } | 94 } |
| 95 | 95 |
| 96 leveldb::Status Commit() override { | 96 leveldb::Status Commit() override { |
| 97 commit_tracer_.log_call(); | 97 commit_tracer_.log_call(); |
| 98 return LevelDBTransaction::Commit(); | 98 return LevelDBTransaction::Commit(); |
| 99 } | 99 } |
| 100 | 100 |
| 101 private: | 101 private: |
| 102 static const std::string s_class_name; | 102 static const std::string s_class_name; |
| 103 | 103 |
| 104 ~LevelDBTraceTansaction() override {} | 104 ~LevelDBTraceTransaction() override {} |
| 105 | 105 |
| 106 FunctionTracer commit_tracer_; | 106 FunctionTracer commit_tracer_; |
| 107 FunctionTracer get_tracer_; | 107 FunctionTracer get_tracer_; |
| 108 }; | 108 }; |
| 109 | 109 |
| 110 const std::string LevelDBTraceTansaction::s_class_name = "LevelDBTransaction"; | 110 const std::string LevelDBTraceTransaction::s_class_name = "LevelDBTransaction"; |
| 111 | 111 |
| 112 class LevelDBTraceIteratorImpl : public LevelDBIteratorImpl { | 112 class LevelDBTraceIteratorImpl : public LevelDBIteratorImpl { |
| 113 public: | 113 public: |
| 114 LevelDBTraceIteratorImpl(scoped_ptr<leveldb::Iterator> iterator, int inst_num) | 114 LevelDBTraceIteratorImpl(scoped_ptr<leveldb::Iterator> iterator, int inst_num) |
| 115 : LevelDBIteratorImpl(iterator.Pass()), | 115 : LevelDBIteratorImpl(iterator.Pass()), |
| 116 is_valid_tracer_(s_class_name, "IsValid", inst_num), | 116 is_valid_tracer_(s_class_name, "IsValid", inst_num), |
| 117 seek_to_last_tracer_(s_class_name, "SeekToLast", inst_num), | 117 seek_to_last_tracer_(s_class_name, "SeekToLast", inst_num), |
| 118 seek_tracer_(s_class_name, "Seek", inst_num), | 118 seek_tracer_(s_class_name, "Seek", inst_num), |
| 119 next_tracer_(s_class_name, "Next", inst_num), | 119 next_tracer_(s_class_name, "Next", inst_num), |
| 120 prev_tracer_(s_class_name, "Prev", inst_num), | 120 prev_tracer_(s_class_name, "Prev", inst_num), |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 197 | 197 |
| 198 MockBrowserTestIndexedDBClassFactory::~MockBrowserTestIndexedDBClassFactory() { | 198 MockBrowserTestIndexedDBClassFactory::~MockBrowserTestIndexedDBClassFactory() { |
| 199 } | 199 } |
| 200 | 200 |
| 201 LevelDBTransaction* | 201 LevelDBTransaction* |
| 202 MockBrowserTestIndexedDBClassFactory::CreateLevelDBTransaction( | 202 MockBrowserTestIndexedDBClassFactory::CreateLevelDBTransaction( |
| 203 LevelDBDatabase* db) { | 203 LevelDBDatabase* db) { |
| 204 instance_count_[FAIL_CLASS_LEVELDB_TRANSACTION] = | 204 instance_count_[FAIL_CLASS_LEVELDB_TRANSACTION] = |
| 205 instance_count_[FAIL_CLASS_LEVELDB_TRANSACTION] + 1; | 205 instance_count_[FAIL_CLASS_LEVELDB_TRANSACTION] + 1; |
| 206 if (only_trace_calls_) { | 206 if (only_trace_calls_) { |
| 207 return new LevelDBTraceTansaction( | 207 return new LevelDBTraceTransaction( |
| 208 db, instance_count_[FAIL_CLASS_LEVELDB_TRANSACTION]); | 208 db, instance_count_[FAIL_CLASS_LEVELDB_TRANSACTION]); |
| 209 } else { | 209 } else { |
| 210 if (failure_class_ == FAIL_CLASS_LEVELDB_TRANSACTION && | 210 if (failure_class_ == FAIL_CLASS_LEVELDB_TRANSACTION && |
| 211 instance_count_[FAIL_CLASS_LEVELDB_TRANSACTION] == | 211 instance_count_[FAIL_CLASS_LEVELDB_TRANSACTION] == |
| 212 fail_on_instance_num_[FAIL_CLASS_LEVELDB_TRANSACTION]) { | 212 fail_on_instance_num_[FAIL_CLASS_LEVELDB_TRANSACTION]) { |
| 213 return new LevelDBTestTansaction( | 213 return new LevelDBTestTransaction( |
| 214 db, | 214 db, |
| 215 failure_method_, | 215 failure_method_, |
| 216 fail_on_call_num_[FAIL_CLASS_LEVELDB_TRANSACTION]); | 216 fail_on_call_num_[FAIL_CLASS_LEVELDB_TRANSACTION]); |
| 217 } else { | 217 } else { |
| 218 return IndexedDBClassFactory::CreateLevelDBTransaction(db); | 218 return IndexedDBClassFactory::CreateLevelDBTransaction(db); |
| 219 } | 219 } |
| 220 } | 220 } |
| 221 } | 221 } |
| 222 | 222 |
| 223 LevelDBIteratorImpl* MockBrowserTestIndexedDBClassFactory::CreateIteratorImpl( | 223 LevelDBIteratorImpl* MockBrowserTestIndexedDBClassFactory::CreateIteratorImpl( |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 261 | 261 |
| 262 void MockBrowserTestIndexedDBClassFactory::Reset() { | 262 void MockBrowserTestIndexedDBClassFactory::Reset() { |
| 263 failure_class_ = FAIL_CLASS_NOTHING; | 263 failure_class_ = FAIL_CLASS_NOTHING; |
| 264 failure_method_ = FAIL_METHOD_NOTHING; | 264 failure_method_ = FAIL_METHOD_NOTHING; |
| 265 instance_count_.clear(); | 265 instance_count_.clear(); |
| 266 fail_on_instance_num_.clear(); | 266 fail_on_instance_num_.clear(); |
| 267 fail_on_call_num_.clear(); | 267 fail_on_call_num_.clear(); |
| 268 } | 268 } |
| 269 | 269 |
| 270 } // namespace content | 270 } // namespace content |
| OLD | NEW |