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

Side by Side Diff: content/browser/indexed_db/indexed_db_backing_store_unittest.cc

Issue 2708223002: IndexedDB: Optimize range deletion operations (e.g. clearing a store) (Closed)
Patch Set: Created 3 years, 10 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
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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 "content/browser/indexed_db/indexed_db_backing_store.h" 5 #include "content/browser/indexed_db/indexed_db_backing_store.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 #include <utility> 9 #include <utility>
10 10
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 EXPECT_TRUE(transaction2.CommitPhaseTwo().ok()); 466 EXPECT_TRUE(transaction2.CommitPhaseTwo().ok());
467 EXPECT_EQ(m_value3.bits, result_value.bits); 467 EXPECT_EQ(m_value3.bits, result_value.bits);
468 EXPECT_TRUE(CheckBlobInfoMatches(result_value.blob_info)); 468 EXPECT_TRUE(CheckBlobInfoMatches(result_value.blob_info));
469 EXPECT_TRUE(CheckBlobReadsMatchWrites(result_value.blob_info)); 469 EXPECT_TRUE(CheckBlobReadsMatchWrites(result_value.blob_info));
470 } 470 }
471 471
472 { 472 {
473 IndexedDBBackingStore::Transaction transaction3(backing_store_.get()); 473 IndexedDBBackingStore::Transaction transaction3(backing_store_.get());
474 transaction3.Begin(); 474 transaction3.Begin();
475 IndexedDBValue result_value; 475 IndexedDBValue result_value;
476 size_t delete_count = 0; 476 EXPECT_TRUE(
477 EXPECT_TRUE(backing_store_ 477 backing_store_
478 ->DeleteRange(&transaction3, 1, 1, 478 ->DeleteRange(&transaction3, 1, 1, IndexedDBKeyRange(m_key3))
479 IndexedDBKeyRange(m_key3), &delete_count) 479 .ok());
480 .ok());
481 EXPECT_EQ(1UL, delete_count);
482 scoped_refptr<TestCallback> callback(new TestCallback()); 480 scoped_refptr<TestCallback> callback(new TestCallback());
483 EXPECT_TRUE(transaction3.CommitPhaseOne(callback).ok()); 481 EXPECT_TRUE(transaction3.CommitPhaseOne(callback).ok());
484 task_runner_->RunUntilIdle(); 482 task_runner_->RunUntilIdle();
485 EXPECT_TRUE(callback->called); 483 EXPECT_TRUE(callback->called);
486 EXPECT_TRUE(callback->succeeded); 484 EXPECT_TRUE(callback->succeeded);
487 EXPECT_TRUE(transaction3.CommitPhaseTwo().ok()); 485 EXPECT_TRUE(transaction3.CommitPhaseTwo().ok());
488 EXPECT_TRUE(CheckBlobRemovals()); 486 EXPECT_TRUE(CheckBlobRemovals());
489 } 487 }
490 } 488 }
491 489
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 task_runner_->RunUntilIdle(); 554 task_runner_->RunUntilIdle();
557 EXPECT_TRUE(callback->called); 555 EXPECT_TRUE(callback->called);
558 EXPECT_TRUE(callback->succeeded); 556 EXPECT_TRUE(callback->succeeded);
559 EXPECT_TRUE(transaction1.CommitPhaseTwo().ok()); 557 EXPECT_TRUE(transaction1.CommitPhaseTwo().ok());
560 } 558 }
561 559
562 { 560 {
563 IndexedDBBackingStore::Transaction transaction2(backing_store_.get()); 561 IndexedDBBackingStore::Transaction transaction2(backing_store_.get());
564 transaction2.Begin(); 562 transaction2.Begin();
565 IndexedDBValue result_value; 563 IndexedDBValue result_value;
566 size_t delete_count = 0;
567 EXPECT_TRUE( 564 EXPECT_TRUE(
568 backing_store_ 565 backing_store_->DeleteRange(&transaction2, 1, i + 1, ranges[i]).ok());
569 ->DeleteRange(&transaction2, 1, i + 1, ranges[i], &delete_count)
570 .ok());
571 EXPECT_EQ(2UL, delete_count);
572 scoped_refptr<TestCallback> callback(new TestCallback()); 566 scoped_refptr<TestCallback> callback(new TestCallback());
573 EXPECT_TRUE(transaction2.CommitPhaseOne(callback).ok()); 567 EXPECT_TRUE(transaction2.CommitPhaseOne(callback).ok());
574 task_runner_->RunUntilIdle(); 568 task_runner_->RunUntilIdle();
575 EXPECT_TRUE(callback->called); 569 EXPECT_TRUE(callback->called);
576 EXPECT_TRUE(callback->succeeded); 570 EXPECT_TRUE(callback->succeeded);
577 EXPECT_TRUE(transaction2.CommitPhaseTwo().ok()); 571 EXPECT_TRUE(transaction2.CommitPhaseTwo().ok());
578 ASSERT_EQ(2UL, backing_store_->removals().size()); 572 ASSERT_EQ(2UL, backing_store_->removals().size());
579 EXPECT_EQ(backing_store_->writes()[1].key(), 573 EXPECT_EQ(backing_store_->writes()[1].key(),
580 backing_store_->removals()[0]); 574 backing_store_->removals()[0]);
581 EXPECT_EQ(backing_store_->writes()[2].key(), 575 EXPECT_EQ(backing_store_->writes()[2].key(),
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
650 task_runner_->RunUntilIdle(); 644 task_runner_->RunUntilIdle();
651 EXPECT_TRUE(callback->called); 645 EXPECT_TRUE(callback->called);
652 EXPECT_TRUE(callback->succeeded); 646 EXPECT_TRUE(callback->succeeded);
653 EXPECT_TRUE(transaction1.CommitPhaseTwo().ok()); 647 EXPECT_TRUE(transaction1.CommitPhaseTwo().ok());
654 } 648 }
655 649
656 { 650 {
657 IndexedDBBackingStore::Transaction transaction2(backing_store_.get()); 651 IndexedDBBackingStore::Transaction transaction2(backing_store_.get());
658 transaction2.Begin(); 652 transaction2.Begin();
659 IndexedDBValue result_value; 653 IndexedDBValue result_value;
660 size_t delete_count = 0;
661 EXPECT_TRUE( 654 EXPECT_TRUE(
662 backing_store_ 655 backing_store_->DeleteRange(&transaction2, 1, i + 1, ranges[i]).ok());
663 ->DeleteRange(&transaction2, 1, i + 1, ranges[i], &delete_count)
664 .ok());
665 EXPECT_EQ(0UL, delete_count);
666 scoped_refptr<TestCallback> callback(new TestCallback()); 656 scoped_refptr<TestCallback> callback(new TestCallback());
667 EXPECT_TRUE(transaction2.CommitPhaseOne(callback).ok()); 657 EXPECT_TRUE(transaction2.CommitPhaseOne(callback).ok());
668 task_runner_->RunUntilIdle(); 658 task_runner_->RunUntilIdle();
669 EXPECT_TRUE(callback->called); 659 EXPECT_TRUE(callback->called);
670 EXPECT_TRUE(callback->succeeded); 660 EXPECT_TRUE(callback->succeeded);
671 EXPECT_TRUE(transaction2.CommitPhaseTwo().ok()); 661 EXPECT_TRUE(transaction2.CommitPhaseTwo().ok());
672 EXPECT_EQ(0UL, backing_store_->removals().size()); 662 EXPECT_EQ(0UL, backing_store_->removals().size());
673 } 663 }
674 } 664 }
675 } 665 }
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
749 EXPECT_TRUE(CheckBlobInfoMatches(read_result_value.blob_info)); 739 EXPECT_TRUE(CheckBlobInfoMatches(read_result_value.blob_info));
750 EXPECT_TRUE(CheckBlobReadsMatchWrites(read_result_value.blob_info)); 740 EXPECT_TRUE(CheckBlobReadsMatchWrites(read_result_value.blob_info));
751 for (size_t i = 0; i < read_result_value.blob_info.size(); ++i) { 741 for (size_t i = 0; i < read_result_value.blob_info.size(); ++i) {
752 read_result_value.blob_info[i].mark_used_callback().Run(); 742 read_result_value.blob_info[i].mark_used_callback().Run();
753 } 743 }
754 } 744 }
755 745
756 { 746 {
757 IndexedDBBackingStore::Transaction transaction3(backing_store_.get()); 747 IndexedDBBackingStore::Transaction transaction3(backing_store_.get());
758 transaction3.Begin(); 748 transaction3.Begin();
759 size_t delete_count = 0; 749 EXPECT_TRUE(
760 EXPECT_TRUE(backing_store_ 750 backing_store_
761 ->DeleteRange(&transaction3, 1, 1, 751 ->DeleteRange(&transaction3, 1, 1, IndexedDBKeyRange(m_key3))
762 IndexedDBKeyRange(m_key3), &delete_count) 752 .ok());
763 .ok());
764 EXPECT_EQ(1UL, delete_count);
765 scoped_refptr<TestCallback> callback(new TestCallback()); 753 scoped_refptr<TestCallback> callback(new TestCallback());
766 EXPECT_TRUE(transaction3.CommitPhaseOne(callback).ok()); 754 EXPECT_TRUE(transaction3.CommitPhaseOne(callback).ok());
767 task_runner_->RunUntilIdle(); 755 task_runner_->RunUntilIdle();
768 EXPECT_TRUE(callback->called); 756 EXPECT_TRUE(callback->called);
769 EXPECT_TRUE(callback->succeeded); 757 EXPECT_TRUE(callback->succeeded);
770 EXPECT_TRUE(transaction3.CommitPhaseTwo().ok()); 758 EXPECT_TRUE(transaction3.CommitPhaseTwo().ok());
771 EXPECT_EQ(0U, backing_store_->removals().size()); 759 EXPECT_EQ(0U, backing_store_->removals().size());
772 for (size_t i = 0; i < read_result_value.blob_info.size(); ++i) { 760 for (size_t i = 0; i < read_result_value.blob_info.size(); ++i) {
773 read_result_value.blob_info[i].release_callback().Run( 761 read_result_value.blob_info[i].release_callback().Run(
774 read_result_value.blob_info[i].file_path()); 762 read_result_value.blob_info[i].file_path());
(...skipping 383 matching lines...) Expand 10 before | Expand all | Expand 10 after
1158 1146
1159 // Dictionary, message key and more. 1147 // Dictionary, message key and more.
1160 ASSERT_TRUE(WriteFile(info_path, "{\"message\":\"foo\",\"bar\":5}")); 1148 ASSERT_TRUE(WriteFile(info_path, "{\"message\":\"foo\",\"bar\":5}"));
1161 EXPECT_TRUE( 1149 EXPECT_TRUE(
1162 IndexedDBBackingStore::ReadCorruptionInfo(path_base, origin, &message)); 1150 IndexedDBBackingStore::ReadCorruptionInfo(path_base, origin, &message));
1163 EXPECT_FALSE(PathExists(info_path)); 1151 EXPECT_FALSE(PathExists(info_path));
1164 EXPECT_EQ("foo", message); 1152 EXPECT_EQ("foo", message);
1165 } 1153 }
1166 1154
1167 } // namespace content 1155 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/indexed_db/indexed_db_backing_store.cc ('k') | content/browser/indexed_db/indexed_db_database.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698