Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "sql/recovery.h" | 5 #include "sql/recovery.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <string> | 8 #include <string> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 353 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 364 | 364 |
| 365 // Database handle has been poisoned. | 365 // Database handle has been poisoned. |
| 366 EXPECT_FALSE(db().IsSQLValid(kTrivialSql)); | 366 EXPECT_FALSE(db().IsSQLValid(kTrivialSql)); |
| 367 | 367 |
| 368 ASSERT_TRUE(Reopen()); | 368 ASSERT_TRUE(Reopen()); |
| 369 | 369 |
| 370 // The recovered table has consistency between the index and the table. | 370 // The recovered table has consistency between the index and the table. |
| 371 EXPECT_EQ("10", ExecuteWithResults(&db(), kCountSql, "|", ",")); | 371 EXPECT_EQ("10", ExecuteWithResults(&db(), kCountSql, "|", ",")); |
| 372 EXPECT_EQ("10", ExecuteWithResults(&db(), kDistinctSql, "|", ",")); | 372 EXPECT_EQ("10", ExecuteWithResults(&db(), kDistinctSql, "|", ",")); |
| 373 | 373 |
| 374 // The expected value was retained. | 374 // Only one of the values is retained. |
| 375 const char kSelectSql[] = "SELECT v FROM x WHERE id = 0"; | 375 const char kSelectSql[] = "SELECT v FROM x WHERE id = 0"; |
| 376 EXPECT_EQ("100", ExecuteWithResults(&db(), kSelectSql, "|", ",")); | 376 const std::string results = ExecuteWithResults(&db(), kSelectSql, "|", ","); |
| 377 EXPECT_TRUE(results=="100" || results=="0") << "Actual results: " << results; | |
|
Scott Hess - ex-Googler
2016/02/03 22:37:20
REPLACE retained the last version encountered, IGN
| |
| 377 } | 378 } |
| 378 | 379 |
| 379 TEST_F(SQLRecoveryTest, Meta) { | 380 TEST_F(SQLRecoveryTest, Meta) { |
| 380 const int kVersion = 3; | 381 const int kVersion = 3; |
| 381 const int kCompatibleVersion = 2; | 382 const int kCompatibleVersion = 2; |
| 382 | 383 |
| 383 { | 384 { |
| 384 sql::MetaTable meta; | 385 sql::MetaTable meta; |
| 385 EXPECT_TRUE(meta.Init(&db(), kVersion, kCompatibleVersion)); | 386 EXPECT_TRUE(meta.Init(&db(), kVersion, kCompatibleVersion)); |
| 386 EXPECT_EQ(kVersion, meta.GetVersionNumber()); | 387 EXPECT_EQ(kVersion, meta.GetVersionNumber()); |
| (...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 744 scoped_ptr<sql::Recovery> recovery = sql::Recovery::Begin(&db(), db_path()); | 745 scoped_ptr<sql::Recovery> recovery = sql::Recovery::Begin(&db(), db_path()); |
| 745 ASSERT_TRUE(recovery.get()); | 746 ASSERT_TRUE(recovery.get()); |
| 746 | 747 |
| 747 // In the current implementation, the PRAGMA successfully runs with no result | 748 // In the current implementation, the PRAGMA successfully runs with no result |
| 748 // rows. Running with a single result of |0| is also acceptable. | 749 // rows. Running with a single result of |0| is also acceptable. |
| 749 sql::Statement s(recovery->db()->GetUniqueStatement("PRAGMA mmap_size")); | 750 sql::Statement s(recovery->db()->GetUniqueStatement("PRAGMA mmap_size")); |
| 750 EXPECT_TRUE(!s.Step() || !s.ColumnInt64(0)); | 751 EXPECT_TRUE(!s.Step() || !s.ColumnInt64(0)); |
| 751 } | 752 } |
| 752 | 753 |
| 753 } // namespace | 754 } // namespace |
| OLD | NEW |