| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 "testing/gtest/include/gtest/gtest.h" | 5 #include "testing/gtest/include/gtest/gtest.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "app/sql/connection.h" | 9 #include "app/sql/connection.h" |
| 10 #include "app/sql/statement.h" | 10 #include "app/sql/statement.h" |
| (...skipping 28 matching lines...) Expand all Loading... |
| 39 } | 39 } |
| 40 | 40 |
| 41 FilePath GetDatabasePath() { | 41 FilePath GetDatabasePath() { |
| 42 return temp_dir_.path().Append( | 42 return temp_dir_.path().Append( |
| 43 DirectoryManager::GetSyncDataDatabaseFilename()); | 43 DirectoryManager::GetSyncDataDatabaseFilename()); |
| 44 } | 44 } |
| 45 void SetUpVersion67Database(); | 45 void SetUpVersion67Database(); |
| 46 void SetUpVersion68Database(); | 46 void SetUpVersion68Database(); |
| 47 void SetUpVersion69Database(); | 47 void SetUpVersion69Database(); |
| 48 void SetUpVersion70Database(); | 48 void SetUpVersion70Database(); |
| 49 void SetUpVersion71Database(); |
| 49 | 50 |
| 50 void SetUpCurrentDatabaseAndCheckVersion() { | 51 void SetUpCurrentDatabaseAndCheckVersion() { |
| 51 SetUpVersion70Database(); // Prepopulates data. | 52 SetUpVersion70Database(); // Prepopulates data. |
| 52 scoped_ptr<DirectoryBackingStore> dbs( | 53 scoped_ptr<DirectoryBackingStore> dbs( |
| 53 new DirectoryBackingStore(GetUsername(), GetDatabasePath())); | 54 new DirectoryBackingStore(GetUsername(), GetDatabasePath())); |
| 54 | 55 |
| 55 dbs->BeginLoad(); | 56 dbs->BeginLoad(); |
| 56 ASSERT_EQ(OPENED, dbs->InitializeTables()); | 57 ASSERT_EQ(OPENED, dbs->InitializeTables()); |
| 57 ASSERT_FALSE(dbs->needs_column_refresh_); | 58 ASSERT_FALSE(dbs->needs_column_refresh_); |
| 58 ASSERT_EQ(kCurrentDBVersion, dbs->GetVersion()); | 59 ASSERT_EQ(kCurrentDBVersion, dbs->GetVersion()); |
| 59 dbs->EndLoad(); | 60 dbs->EndLoad(); |
| 60 } | 61 } |
| 61 | 62 |
| 62 private: | 63 private: |
| 63 ScopedTempDir temp_dir_; | 64 ScopedTempDir temp_dir_; |
| 64 }; | 65 }; |
| 65 | 66 |
| 66 class DirectoryBackingStoreTest : public MigrationTest {}; | 67 class DirectoryBackingStoreTest : public MigrationTest {}; |
| 67 | 68 |
| 68 void MigrationTest::SetUpVersion67Database() { | 69 void MigrationTest::SetUpVersion67Database() { |
| 69 // This is a version 67 database dump whose contents were backformed from | 70 // This is a version 67 database dump whose contents were backformed from |
| 70 // the contents of the version 68 database dump (the v68 migration was | 71 // the contents of the version 68 database dump (the v68 migration was |
| 71 // actually written first). | 72 // actually written first). |
| 72 sql::Connection connection; | 73 sql::Connection connection; |
| 73 ASSERT_TRUE(connection.Open(GetDatabasePath())); | 74 ASSERT_TRUE(connection.Open(GetDatabasePath())); |
| 74 ASSERT_TRUE(connection.BeginTransaction()); | 75 ASSERT_TRUE(connection.BeginTransaction()); |
| 75 ASSERT_TRUE(connection.Execute( | 76 ASSERT_TRUE(connection.Execute( |
| 76 "CREATE TABLE extended_attributes(metahandle bigint, key varchar(127), " | 77 "CREATE TABLE extended_attributes(metahandle bigint, key varchar(127), " |
| 77 "value blob, PRIMARY KEY(metahandle, key) ON CONFLICT REPLACE);" | 78 "value blob, PRIMARY KEY(metahandle, key) ON CONFLICT REPLACE);" |
| 78 "CREATE TABLE metas (metahandle bigint primary key ON CONFLICT FAIL," | 79 "CREATE TABLE metas (metahandle bigint primary key ON CONFLICT FAIL," |
| 79 "base_version bigint default -1,server_version bigint default 0," | 80 "base_version bigint default -1,server_version bigint default 0," |
| 80 "mtime bigint default 0,server_mtime bigint default 0," | 81 "mtime bigint default 0,server_mtime bigint default 0," |
| 81 "ctime bigint default 0,server_ctime bigint default 0," | 82 "ctime bigint default 0,server_ctime bigint default 0," |
| 82 "server_position_in_parent bigint default 0," | 83 "server_position_in_parent bigint default 0," |
| 83 "local_external_id bigint default 0,id varchar(255) default 'r'," | 84 "local_external_id bigint default 0,id varchar(255) default 'r'," |
| 84 "parent_id varchar(255) default 'r'," | 85 "parent_id varchar(255) default 'r'," |
| 85 "server_parent_id varchar(255) default 'r'," | 86 "server_parent_id varchar(255) default 'r'," |
| 86 "prev_id varchar(255) default 'r',next_id varchar(255) default 'r'," | 87 "prev_id varchar(255) default 'r',next_id varchar(255) default 'r'," |
| 87 "is_unsynced bit default 0,is_unapplied_update bit default 0," | 88 "is_unsynced bit default 0,is_unapplied_update bit default 0," |
| 88 "is_del bit default 0,is_dir bit default 0," | 89 "is_del bit default 0,is_dir bit default 0," |
| (...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 522 "129079958383000000,129079958383000000,129079958383000000,1048576," | 523 "129079958383000000,129079958383000000,129079958383000000,1048576," |
| 523 "11,'s_ID_14','s_ID_6','s_ID_6','s_ID_12','r',0,0,0,0,0,0," | 524 "11,'s_ID_14','s_ID_6','s_ID_6','s_ID_12','r',0,0,0,0,0,0," |
| 524 "'The WebKit Open Source Project','The WebKit Open Source Project'," | 525 "'The WebKit Open Source Project','The WebKit Open Source Project'," |
| 525 "NULL,NULL,X'C288101A0A12687474703A2F2F7765626B69742E6F72672F120450" | 526 "NULL,NULL,X'C288101A0A12687474703A2F2F7765626B69742E6F72672F120450" |
| 526 "4E4758',X'C288101C0A13687474703A2F2F7765626B69742E6F72672F78120550" | 527 "4E4758',X'C288101C0A13687474703A2F2F7765626B69742E6F72672F78120550" |
| 527 "4E473259');" | 528 "4E473259');" |
| 528 )); | 529 )); |
| 529 ASSERT_TRUE(connection.CommitTransaction()); | 530 ASSERT_TRUE(connection.CommitTransaction()); |
| 530 } | 531 } |
| 531 | 532 |
| 533 void MigrationTest::SetUpVersion71Database() { |
| 534 sql::Connection connection; |
| 535 ASSERT_TRUE(connection.Open(GetDatabasePath())); |
| 536 ASSERT_TRUE(connection.BeginTransaction()); |
| 537 ASSERT_TRUE(connection.Execute( |
| 538 "CREATE TABLE extended_attributes(metahandle bigint, key varchar(127), " |
| 539 "value blob, PRIMARY KEY(metahandle, key) ON CONFLICT REPLACE);" |
| 540 "CREATE TABLE share_version (id VARCHAR(128) primary key, data INT);" |
| 541 "INSERT INTO 'share_version' VALUES('nick@chromium.org',71);" |
| 542 "CREATE TABLE metas(metahandle bigint primary key ON CONFLICT FAIL," |
| 543 "base_version bigint default -1,server_version bigint default 0," |
| 544 "mtime bigint default 0,server_mtime bigint default 0,ctime bigint " |
| 545 "default 0,server_ctime bigint default 0,server_position_in_parent " |
| 546 "bigint default 0,local_external_id bigint default 0,id varchar(255) " |
| 547 "default 'r',parent_id varchar(255) default 'r',server_parent_id " |
| 548 "varchar(255) default 'r',prev_id varchar(255) default 'r',next_id " |
| 549 "varchar(255) default 'r',is_unsynced bit default 0," |
| 550 "is_unapplied_update bit default 0,is_del bit default 0,is_dir bit " |
| 551 "default 0,server_is_dir bit default 0,server_is_del bit default 0," |
| 552 "non_unique_name varchar,server_non_unique_name varchar(255)," |
| 553 "unique_server_tag varchar,unique_client_tag varchar,specifics blob," |
| 554 "server_specifics blob);" |
| 555 "INSERT INTO 'metas' VALUES(1,-1,0,129079956640320000,0," |
| 556 "129079956640320000,0,0,0,'r','r','r','r','r',0,0,0,1,0,0,NULL,NULL," |
| 557 "NULL,NULL,X'',X'');" |
| 558 "INSERT INTO 'metas' VALUES(2,669,669,128976886618480000," |
| 559 "128976886618480000,128976886618480000,128976886618480000,-2097152,4," |
| 560 "'s_ID_2','s_ID_9','s_ID_9','s_ID_2','s_ID_2',0,0,1,0,0,1," |
| 561 "'Deleted Item','Deleted Item',NULL,NULL,X'C28810220A16687474703A2F2F" |
| 562 "7777772E676F6F676C652E636F6D2F12084141534741534741',X'C28810260A1768" |
| 563 "7474703A2F2F7777772E676F6F676C652E636F6D2F32120B41534144474144474144" |
| 564 "47');" |
| 565 "INSERT INTO 'metas' VALUES(4,681,681,129002163642690000," |
| 566 "129002163642690000,129002163642690000,129002163642690000,-3145728,3," |
| 567 "'s_ID_4','s_ID_9','s_ID_9','s_ID_4','s_ID_4',0,0,1,0,0,1," |
| 568 "'Welcome to Chromium','Welcome to Chromium',NULL,NULL,X'C28810350A31" |
| 569 "687474703A2F2F7777772E676F6F676C652E636F6D2F6368726F6D652F696E746C2F" |
| 570 "656E2F77656C636F6D652E68746D6C1200',X'C28810350A31687474703A2F2F7777" |
| 571 "772E676F6F676C652E636F6D2F6368726F6D652F696E746C2F656E2F77656C636F6D" |
| 572 "652E68746D6C1200');" |
| 573 "INSERT INTO 'metas' VALUES(5,677,677,129001555500000000," |
| 574 "129001555500000000,129001555500000000,129001555500000000,1048576,7," |
| 575 "'s_ID_5','s_ID_9','s_ID_9','s_ID_5','s_ID_5',0,0,1,0,0,1,'Google'," |
| 576 "'Google',NULL,NULL,X'C28810220A16687474703A2F2F7777772E676F6F676C652" |
| 577 "E636F6D2F12084147415347415347',X'C28810220A16687474703A2F2F7777772E6" |
| 578 "76F6F676C652E636F6D2F12084147464447415347');" |
| 579 "INSERT INTO 'metas' VALUES(6,694,694,129053976170000000," |
| 580 "129053976170000000,129053976170000000,129053976170000000,-4194304,6," |
| 581 "'s_ID_6','s_ID_9','s_ID_9','r','r',0,0,0,1,1,0,'The Internet'," |
| 582 "'The Internet',NULL,NULL,X'C2881000',X'C2881000');" |
| 583 "INSERT INTO 'metas' VALUES(7,663,663,128976864758480000," |
| 584 "128976864758480000,128976864758480000,128976864758480000,1048576,0," |
| 585 "'s_ID_7','r','r','r','r',0,0,0,1,1,0,'Google Chrome','Google Chrome'" |
| 586 ",'google_chrome',NULL,NULL,NULL);" |
| 587 "INSERT INTO 'metas' VALUES(8,664,664,128976864758480000," |
| 588 "128976864758480000,128976864758480000,128976864758480000,1048576,0," |
| 589 "'s_ID_8','s_ID_7','s_ID_7','r','r',0,0,0,1,1,0,'Bookmarks'," |
| 590 "'Bookmarks','google_chrome_bookmarks',NULL,X'C2881000',X'C2881000');" |
| 591 "INSERT INTO 'metas' VALUES(9,665,665,128976864758480000," |
| 592 "128976864758480000,128976864758480000,128976864758480000,1048576,1," |
| 593 "'s_ID_9','s_ID_8','s_ID_8','r','s_ID_10',0,0,0,1,1,0,'Bookmark Bar'," |
| 594 "'Bookmark Bar','bookmark_bar',NULL,X'C2881000',X'C2881000');" |
| 595 "INSERT INTO 'metas' VALUES(10,666,666,128976864758480000," |
| 596 "128976864758480000,128976864758480000,128976864758480000,2097152,2," |
| 597 "'s_ID_10','s_ID_8','s_ID_8','s_ID_9','r',0,0,0,1,1,0," |
| 598 "'Other Bookmarks','Other Bookmarks','other_bookmarks',NULL," |
| 599 "X'C2881000',X'C2881000');" |
| 600 "INSERT INTO 'metas' VALUES(11,683,683,129079956948440000," |
| 601 "129079956948440000,129079956948440000,129079956948440000,-1048576,8," |
| 602 "'s_ID_11','s_ID_6','s_ID_6','r','s_ID_13',0,0,0,0,0,0," |
| 603 "'Home (The Chromium Projects)','Home (The Chromium Projects)',NULL," |
| 604 "NULL,X'C28810220A18687474703A2F2F6465762E6368726F6D69756D2E6F72672F1" |
| 605 "206414741545741',X'C28810290A1D687474703A2F2F6465762E6368726F6D69756" |
| 606 "D2E6F72672F6F7468657212084146414756415346');" |
| 607 "INSERT INTO 'metas' VALUES(12,685,685,129079957513650000," |
| 608 "129079957513650000,129079957513650000,129079957513650000,0,9," |
| 609 "'s_ID_12','s_ID_6','s_ID_6','s_ID_13','s_ID_14',0,0,0,1,1,0," |
| 610 "'Extra Bookmarks','Extra Bookmarks',NULL,NULL,X'C2881000'," |
| 611 "X'C2881000');" |
| 612 "INSERT INTO 'metas' VALUES(13,687,687,129079957985300000," |
| 613 "129079957985300000,129079957985300000,129079957985300000,-917504,10," |
| 614 "'s_ID_13','s_ID_6','s_ID_6','s_ID_11','s_ID_12',0,0,0,0,0,0," |
| 615 "'ICANN | Internet Corporation for Assigned Names and Numbers'," |
| 616 "'ICANN | Internet Corporation for Assigned Names and Numbers',NULL," |
| 617 "NULL,X'C28810240A15687474703A2F2F7777772E6963616E6E2E636F6D2F120B504" |
| 618 "E474158463041414646',X'C28810200A15687474703A2F2F7777772E6963616E6E2" |
| 619 "E636F6D2F120744414146415346');" |
| 620 "INSERT INTO 'metas' VALUES(14,692,692,129079958383000000," |
| 621 "129079958383000000,129079958383000000,129079958383000000,1048576,11," |
| 622 "'s_ID_14','s_ID_6','s_ID_6','s_ID_12','r',0,0,0,0,0,0," |
| 623 "'The WebKit Open Source Project','The WebKit Open Source Project'," |
| 624 "NULL,NULL,""X'C288101A0A12687474703A2F2F7765626B69742E6F72672F120450" |
| 625 "4E4758',X'C288101C0A13687474703A2F2F7765626B69742E6F72672F781205504E" |
| 626 "473259');" |
| 627 "CREATE TABLE models (model_id BLOB primary key, " |
| 628 "last_download_timestamp INT, initial_sync_ended BOOLEAN default 0);" |
| 629 "INSERT INTO 'models' VALUES(X'C2881000',694,1);" |
| 630 "CREATE TABLE 'share_info' (id TEXT primary key, name TEXT, " |
| 631 "store_birthday TEXT, db_create_version TEXT, db_create_time INT, " |
| 632 "next_id INT default -2, cache_guid TEXT);" |
| 633 "INSERT INTO 'share_info' VALUES('nick@chromium.org','nick@chromium.org'," |
| 634 "'c27e9f59-08ca-46f8-b0cc-f16a2ed778bb','Unknown',1263522064,-65542," |
| 635 "'9010788312004066376x-6609234393368420856x');")); |
| 636 ASSERT_TRUE(connection.CommitTransaction()); |
| 637 } |
| 532 TEST_F(DirectoryBackingStoreTest, MigrateVersion67To68) { | 638 TEST_F(DirectoryBackingStoreTest, MigrateVersion67To68) { |
| 533 SetUpVersion67Database(); | 639 SetUpVersion67Database(); |
| 534 | 640 |
| 535 { | 641 { |
| 536 sql::Connection connection; | 642 sql::Connection connection; |
| 537 ASSERT_TRUE(connection.Open(GetDatabasePath())); | 643 ASSERT_TRUE(connection.Open(GetDatabasePath())); |
| 538 | 644 |
| 539 // Columns existing before version 67. | 645 // Columns existing before version 67. |
| 540 ASSERT_TRUE(connection.DoesColumnExist("metas", "name")); | 646 ASSERT_TRUE(connection.DoesColumnExist("metas", "name")); |
| 541 ASSERT_TRUE(connection.DoesColumnExist("metas", "unsanitized_name")); | 647 ASSERT_TRUE(connection.DoesColumnExist("metas", "unsanitized_name")); |
| (...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 667 "initial_sync_ended, last_download_timestamp FROM models")); | 773 "initial_sync_ended, last_download_timestamp FROM models")); |
| 668 ASSERT_TRUE(s.Step()); | 774 ASSERT_TRUE(s.Step()); |
| 669 std::string model_id = s.ColumnString(0); | 775 std::string model_id = s.ColumnString(0); |
| 670 EXPECT_EQ("C2881000", HexEncode(model_id.data(), model_id.size())) | 776 EXPECT_EQ("C2881000", HexEncode(model_id.data(), model_id.size())) |
| 671 << "Model ID is expected to be the empty BookmarkSpecifics proto."; | 777 << "Model ID is expected to be the empty BookmarkSpecifics proto."; |
| 672 EXPECT_EQ(true, s.ColumnBool(1)); | 778 EXPECT_EQ(true, s.ColumnBool(1)); |
| 673 EXPECT_EQ(694, s.ColumnInt64(2)); | 779 EXPECT_EQ(694, s.ColumnInt64(2)); |
| 674 ASSERT_FALSE(s.Step()); | 780 ASSERT_FALSE(s.Step()); |
| 675 } | 781 } |
| 676 | 782 |
| 783 |
| 784 TEST_F(DirectoryBackingStoreTest, MigrateVersion71To72) { |
| 785 SetUpVersion71Database(); |
| 786 |
| 787 { |
| 788 sql::Connection connection; |
| 789 ASSERT_TRUE(connection.Open(GetDatabasePath())); |
| 790 ASSERT_TRUE(connection.DoesTableExist("extended_attributes")); |
| 791 } |
| 792 |
| 793 scoped_ptr<DirectoryBackingStore> dbs( |
| 794 new DirectoryBackingStore(GetUsername(), GetDatabasePath())); |
| 795 |
| 796 dbs->BeginLoad(); |
| 797 ASSERT_FALSE(dbs->needs_column_refresh_); |
| 798 ASSERT_TRUE(dbs->MigrateVersion71To72()); |
| 799 ASSERT_EQ(72, dbs->GetVersion()); |
| 800 dbs->EndLoad(); |
| 801 ASSERT_FALSE(dbs->needs_column_refresh_); |
| 802 |
| 803 sql::Connection connection; |
| 804 ASSERT_TRUE(connection.Open(GetDatabasePath())); |
| 805 ASSERT_FALSE(connection.DoesTableExist("extended_attributes")); |
| 806 } |
| 807 |
| 677 TEST_P(MigrationTest, ToCurrentVersion) { | 808 TEST_P(MigrationTest, ToCurrentVersion) { |
| 678 switch (GetParam()) { | 809 switch (GetParam()) { |
| 679 case 67: | 810 case 67: |
| 680 SetUpVersion67Database(); | 811 SetUpVersion67Database(); |
| 681 break; | 812 break; |
| 682 case 68: | 813 case 68: |
| 683 SetUpVersion68Database(); | 814 SetUpVersion68Database(); |
| 684 break; | 815 break; |
| 685 case 69: | 816 case 69: |
| 686 SetUpVersion69Database(); | 817 SetUpVersion69Database(); |
| 687 break; | 818 break; |
| 688 case 70: | 819 case 70: |
| 689 SetUpVersion70Database(); | 820 SetUpVersion70Database(); |
| 690 break; | 821 break; |
| 822 case 71: |
| 823 SetUpVersion71Database(); |
| 824 break; |
| 691 default: | 825 default: |
| 692 // If you see this error, it may mean that you've increased the | 826 // If you see this error, it may mean that you've increased the |
| 693 // database version number but you haven't finished adding unit tests | 827 // database version number but you haven't finished adding unit tests |
| 694 // for the database migration code. You need to need to supply a | 828 // for the database migration code. You need to need to supply a |
| 695 // SetUpVersionXXDatabase function with a dump of the test database | 829 // SetUpVersionXXDatabase function with a dump of the test database |
| 696 // at the old schema. Here's one way to do that: | 830 // at the old schema. Here's one way to do that: |
| 697 // 1. Start on a clean tree (with none of your pending schema changes). | 831 // 1. Start on a clean tree (with none of your pending schema changes). |
| 698 // 2. Set a breakpoint in this function and run the unit test. | 832 // 2. Set a breakpoint in this function and run the unit test. |
| 699 // 3. Allow this test to run to completion (step out of the call), | 833 // 3. Allow this test to run to completion (step out of the call), |
| 700 // without allowing ~MigrationTest to execute. | 834 // without allowing ~MigrationTest to execute. |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 732 ASSERT_FALSE(connection.DoesColumnExist("metas", | 866 ASSERT_FALSE(connection.DoesColumnExist("metas", |
| 733 "server_is_bookmark_object")); | 867 "server_is_bookmark_object")); |
| 734 ASSERT_FALSE(connection.DoesColumnExist("metas", "bookmark_favicon")); | 868 ASSERT_FALSE(connection.DoesColumnExist("metas", "bookmark_favicon")); |
| 735 ASSERT_FALSE(connection.DoesColumnExist("metas", "bookmark_url")); | 869 ASSERT_FALSE(connection.DoesColumnExist("metas", "bookmark_url")); |
| 736 ASSERT_FALSE(connection.DoesColumnExist("metas", "server_bookmark_url")); | 870 ASSERT_FALSE(connection.DoesColumnExist("metas", "server_bookmark_url")); |
| 737 | 871 |
| 738 // Renamed a column in Version 70 | 872 // Renamed a column in Version 70 |
| 739 ASSERT_FALSE(connection.DoesColumnExist("metas", "singleton_tag")); | 873 ASSERT_FALSE(connection.DoesColumnExist("metas", "singleton_tag")); |
| 740 ASSERT_TRUE(connection.DoesColumnExist("metas", "unique_server_tag")); | 874 ASSERT_TRUE(connection.DoesColumnExist("metas", "unique_server_tag")); |
| 741 ASSERT_TRUE(connection.DoesColumnExist("metas", "unique_client_tag")); | 875 ASSERT_TRUE(connection.DoesColumnExist("metas", "unique_client_tag")); |
| 876 |
| 877 // Removed extended attributes in Version 72. |
| 878 ASSERT_FALSE(connection.DoesTableExist("extended_attributes")); |
| 742 } | 879 } |
| 743 | 880 |
| 744 MetahandlesIndex index; | 881 MetahandlesIndex index; |
| 745 dbs->LoadEntries(&index); | 882 dbs->LoadEntries(&index); |
| 746 dbs->EndLoad(); | 883 dbs->EndLoad(); |
| 747 | 884 |
| 748 MetahandlesIndex::iterator it = index.begin(); | 885 MetahandlesIndex::iterator it = index.begin(); |
| 749 ASSERT_TRUE(it != index.end()); | 886 ASSERT_TRUE(it != index.end()); |
| 750 ASSERT_EQ(1, (*it)->ref(META_HANDLE)); | 887 ASSERT_EQ(1, (*it)->ref(META_HANDLE)); |
| 751 EXPECT_TRUE((*it)->ref(ID).IsRoot()); | 888 EXPECT_TRUE((*it)->ref(ID).IsRoot()); |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 900 // over if it detects invalid/corrupted data. | 1037 // over if it detects invalid/corrupted data. |
| 901 #if defined(NDEBUG) | 1038 #if defined(NDEBUG) |
| 902 EXPECT_TRUE(dbs->BeginLoad()); | 1039 EXPECT_TRUE(dbs->BeginLoad()); |
| 903 #else | 1040 #else |
| 904 EXPECT_DEATH(dbs->BeginLoad(), "sqlite error"); | 1041 EXPECT_DEATH(dbs->BeginLoad(), "sqlite error"); |
| 905 #endif | 1042 #endif |
| 906 } | 1043 } |
| 907 } | 1044 } |
| 908 | 1045 |
| 909 } // namespace syncable | 1046 } // namespace syncable |
| OLD | NEW |