summaryrefslogtreecommitdiff
path: root/chromium/sql
diff options
context:
space:
mode:
authorZeno Albisser <zeno.albisser@theqtcompany.com>2014-12-05 15:04:29 +0100
committerAndras Becsi <andras.becsi@theqtcompany.com>2014-12-09 10:49:28 +0100
commitaf6588f8d723931a298c995fa97259bb7f7deb55 (patch)
tree060ca707847ba1735f01af2372e0d5e494dc0366 /chromium/sql
parent2fff84d821cc7b1c785f6404e0f8091333283e74 (diff)
downloadqtwebengine-chromium-af6588f8d723931a298c995fa97259bb7f7deb55.tar.gz
BASELINE: Update chromium to 40.0.2214.28 and ninja to 1.5.3.
Change-Id: I759465284fd64d59ad120219cbe257f7402c4181 Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
Diffstat (limited to 'chromium/sql')
-rw-r--r--chromium/sql/BUILD.gn8
-rw-r--r--chromium/sql/connection.cc2
-rw-r--r--chromium/sql/connection_unittest.cc2
-rw-r--r--chromium/sql/recovery.cc4
-rw-r--r--chromium/sql/recovery_unittest.cc32
-rw-r--r--chromium/sql/sql.gyp28
-rw-r--r--chromium/sql/sql_unittests.isolate17
-rw-r--r--chromium/sql/sqlite_features_unittest.cc7
-rw-r--r--chromium/sql/statement.cc2
-rw-r--r--chromium/sql/statement_unittest.cc2
-rw-r--r--chromium/sql/transaction_unittest.cc2
11 files changed, 93 insertions, 13 deletions
diff --git a/chromium/sql/BUILD.gn b/chromium/sql/BUILD.gn
index d67284141b4..21a6f85d94f 100644
--- a/chromium/sql/BUILD.gn
+++ b/chromium/sql/BUILD.gn
@@ -33,6 +33,7 @@ component("sql") {
}
source_set("test_support") {
+ testonly = true
sources = [
"test/error_callback_support.cc",
"test/error_callback_support.h",
@@ -56,6 +57,11 @@ test("sql_unittests") {
"recovery_unittest.cc",
"sqlite_features_unittest.cc",
"statement_unittest.cc",
+ "test/paths.cc",
+ "test/paths.h",
+ "test/run_all_unittests.cc",
+ "test/sql_test_suite.cc",
+ "test/sql_test_suite.h",
"transaction_unittest.cc",
]
@@ -67,7 +73,7 @@ test("sql_unittests") {
":sql",
":test_support",
"//base/allocator",
- "//base/test:run_all_unittests",
+ "//base/test:test_support",
"//testing/gtest",
"//third_party/sqlite",
]
diff --git a/chromium/sql/connection.cc b/chromium/sql/connection.cc
index f9f80c2674e..cc7e69dba74 100644
--- a/chromium/sql/connection.cc
+++ b/chromium/sql/connection.cc
@@ -7,7 +7,7 @@
#include <string.h>
#include "base/files/file_path.h"
-#include "base/file_util.h"
+#include "base/files/file_util.h"
#include "base/lazy_instance.h"
#include "base/logging.h"
#include "base/metrics/histogram.h"
diff --git a/chromium/sql/connection_unittest.cc b/chromium/sql/connection_unittest.cc
index c0a06410f19..bb3f000cf65 100644
--- a/chromium/sql/connection_unittest.cc
+++ b/chromium/sql/connection_unittest.cc
@@ -3,7 +3,7 @@
// found in the LICENSE file.
#include "base/bind.h"
-#include "base/file_util.h"
+#include "base/files/file_util.h"
#include "base/files/scoped_file.h"
#include "base/files/scoped_temp_dir.h"
#include "base/logging.h"
diff --git a/chromium/sql/recovery.cc b/chromium/sql/recovery.cc
index 42f1a9af6e9..f9da40762bc 100644
--- a/chromium/sql/recovery.cc
+++ b/chromium/sql/recovery.cc
@@ -355,7 +355,7 @@ bool Recovery::AutoRecoverTable(const char* table_name,
// |rowid_decl| stores the ROWID version of the last INTEGER column
// seen, which is at |rowid_ofs| in |create_column_decls|.
size_t pk_column_count = 0;
- size_t rowid_ofs; // Only valid if rowid_decl is set.
+ size_t rowid_ofs = 0; // Only valid if rowid_decl is set.
std::string rowid_decl; // ROWID version of column |rowid_ofs|.
while (s.Step()) {
@@ -372,7 +372,7 @@ bool Recovery::AutoRecoverTable(const char* table_name,
// (zero for not in primary key). I find that it is always 1 for
// columns in the primary key. Since this code is very dependent on
// that pragma, review if the implementation changes.
- DCHECK_EQ(pk_column, 1);
+ DCHECK_EQ(1, pk_column);
++pk_column_count;
}
diff --git a/chromium/sql/recovery_unittest.cc b/chromium/sql/recovery_unittest.cc
index ce3884bbc08..eba81a521d6 100644
--- a/chromium/sql/recovery_unittest.cc
+++ b/chromium/sql/recovery_unittest.cc
@@ -6,12 +6,15 @@
#include "base/bind.h"
#include "base/files/file_path.h"
+#include "base/files/file_util.h"
#include "base/files/scoped_temp_dir.h"
+#include "base/path_service.h"
#include "base/strings/string_number_conversions.h"
#include "sql/connection.h"
#include "sql/meta_table.h"
#include "sql/recovery.h"
#include "sql/statement.h"
+#include "sql/test/paths.h"
#include "sql/test/scoped_error_ignorer.h"
#include "sql/test/test_helpers.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -683,6 +686,35 @@ TEST_F(SQLRecoveryTest, AutoRecoverTableExtendColumns) {
ASSERT_EQ(orig_schema, GetSchema(&db()));
ASSERT_EQ(orig_data, ExecuteWithResults(&db(), kXSql, "|", "\n"));
}
+
+// Recover a golden file where an interior page has been manually modified so
+// that the number of cells is greater than will fit on a single page. This
+// case happened in <http://crbug.com/387868>.
+TEST_F(SQLRecoveryTest, Bug387868) {
+ base::FilePath golden_path;
+ ASSERT_TRUE(PathService::Get(sql::test::DIR_TEST_DATA, &golden_path));
+ golden_path = golden_path.AppendASCII("recovery_387868");
+ db().Close();
+ ASSERT_TRUE(base::CopyFile(golden_path, db_path()));
+ ASSERT_TRUE(Reopen());
+
+ {
+ scoped_ptr<sql::Recovery> recovery = sql::Recovery::Begin(&db(), db_path());
+ ASSERT_TRUE(recovery.get());
+
+ // Create the new version of the table.
+ const char kCreateSql[] =
+ "CREATE TABLE x (id INTEGER PRIMARY KEY, t0 TEXT)";
+ ASSERT_TRUE(recovery->db()->Execute(kCreateSql));
+
+ size_t rows = 0;
+ EXPECT_TRUE(recovery->AutoRecoverTable("x", 0, &rows));
+ EXPECT_EQ(43u, rows);
+
+ // Successfully recovered.
+ EXPECT_TRUE(sql::Recovery::Recovered(recovery.Pass()));
+ }
+}
#endif // !defined(USE_SYSTEM_SQLITE)
} // namespace
diff --git a/chromium/sql/sql.gyp b/chromium/sql/sql.gyp
index 37c6ae71091..4642457f656 100644
--- a/chromium/sql/sql.gyp
+++ b/chromium/sql/sql.gyp
@@ -80,7 +80,6 @@
'dependencies': [
'sql',
'test_support_sql',
- '../base/base.gyp:run_all_unittests',
'../base/base.gyp:test_support_base',
'../testing/gtest.gyp:gtest',
'../third_party/sqlite/sqlite.gyp:sqlite',
@@ -91,6 +90,11 @@
'recovery_unittest.cc',
'sqlite_features_unittest.cc',
'statement_unittest.cc',
+ 'test/paths.cc',
+ 'test/paths.h',
+ 'test/run_all_unittests.cc',
+ 'test/sql_test_suite.cc',
+ 'test/sql_test_suite.h',
'transaction_unittest.cc',
],
'include_dirs': [
@@ -111,6 +115,11 @@
'../testing/android/native_test.gyp:native_test_native_code',
],
}],
+ ['sqlite_enable_fts2', {
+ 'defines': [
+ 'SQLITE_ENABLE_FTS2',
+ ],
+ }],
],
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
'msvs_disabled_warnings': [4267, ],
@@ -132,5 +141,22 @@
},
],
}],
+ ['test_isolation_mode != "noop"', {
+ 'targets': [
+ {
+ 'target_name': 'sql_unittests_run',
+ 'type': 'none',
+ 'dependencies': [
+ 'sql_unittests',
+ ],
+ 'includes': [
+ '../build/isolate.gypi',
+ ],
+ 'sources': [
+ 'sql_unittests.isolate',
+ ],
+ },
+ ],
+ }],
],
}
diff --git a/chromium/sql/sql_unittests.isolate b/chromium/sql/sql_unittests.isolate
new file mode 100644
index 00000000000..f422ae6eab6
--- /dev/null
+++ b/chromium/sql/sql_unittests.isolate
@@ -0,0 +1,17 @@
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+{
+ 'conditions': [
+ ['OS=="android" or OS=="linux" or OS=="mac" or OS=="win"', {
+ 'variables': {
+ 'files': [
+ 'test/data/',
+ ],
+ },
+ }],
+ ],
+ 'includes': [
+ '../base/base.isolate',
+ ],
+}
diff --git a/chromium/sql/sqlite_features_unittest.cc b/chromium/sql/sqlite_features_unittest.cc
index e30d0a49880..e721693383f 100644
--- a/chromium/sql/sqlite_features_unittest.cc
+++ b/chromium/sql/sqlite_features_unittest.cc
@@ -5,7 +5,7 @@
#include <string>
#include "base/bind.h"
-#include "base/file_util.h"
+#include "base/files/file_util.h"
#include "base/files/scoped_temp_dir.h"
#include "sql/connection.h"
#include "sql/statement.h"
@@ -63,10 +63,9 @@ TEST_F(SQLiteFeaturesTest, NoFTS1) {
"CREATE VIRTUAL TABLE foo USING fts1(x)"));
}
-#if !defined(OS_IOS)
+#if defined(SQLITE_ENABLE_FTS2)
// fts2 is used for older history files, so we're signed on for keeping our
-// version up-to-date. iOS does not include fts2, so this test does not run on
-// iOS.
+// version up-to-date.
// TODO(shess): Think up a crazy way to get out from having to support
// this forever.
TEST_F(SQLiteFeaturesTest, FTS2) {
diff --git a/chromium/sql/statement.cc b/chromium/sql/statement.cc
index 7001d171ee3..b3707c53dd3 100644
--- a/chromium/sql/statement.cc
+++ b/chromium/sql/statement.cc
@@ -182,7 +182,7 @@ ColType Statement::ColumnType(int col) const {
ColType Statement::DeclaredColumnType(int col) const {
std::string column_type(sqlite3_column_decltype(ref_->stmt(), col));
- StringToLowerASCII(&column_type);
+ base::StringToLowerASCII(&column_type);
if (column_type == "integer")
return COLUMN_TYPE_INTEGER;
diff --git a/chromium/sql/statement_unittest.cc b/chromium/sql/statement_unittest.cc
index c5217aa6c99..a140ee095c3 100644
--- a/chromium/sql/statement_unittest.cc
+++ b/chromium/sql/statement_unittest.cc
@@ -5,7 +5,7 @@
#include <string>
#include "base/bind.h"
-#include "base/file_util.h"
+#include "base/files/file_util.h"
#include "base/files/scoped_temp_dir.h"
#include "sql/connection.h"
#include "sql/statement.h"
diff --git a/chromium/sql/transaction_unittest.cc b/chromium/sql/transaction_unittest.cc
index fe5eee232d6..5625041eb5f 100644
--- a/chromium/sql/transaction_unittest.cc
+++ b/chromium/sql/transaction_unittest.cc
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include "base/file_util.h"
+#include "base/files/file_util.h"
#include "base/files/scoped_temp_dir.h"
#include "sql/connection.h"
#include "sql/statement.h"