summaryrefslogtreecommitdiffstats
path: root/sql/test/test_helpers.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sql/test/test_helpers.cc')
-rw-r--r--sql/test/test_helpers.cc71
1 files changed, 0 insertions, 71 deletions
diff --git a/sql/test/test_helpers.cc b/sql/test/test_helpers.cc
index 5438bd6..de3e8f8 100644
--- a/sql/test/test_helpers.cc
+++ b/sql/test/test_helpers.cc
@@ -21,73 +21,11 @@ size_t CountSQLItemsOfType(sql::Connection* db, const char* type) {
return s.ColumnInt(0);
}
-// Helper for reading a number from the SQLite header.
-// See net/base/big_endian.h.
-unsigned ReadBigEndian(unsigned char* buf, size_t bytes) {
- unsigned r = buf[0];
- for (size_t i = 1; i < bytes; i++) {
- r <<= 8;
- r |= buf[i];
- }
- return r;
-}
-
-// Helper for writing a number to the SQLite header.
-void WriteBigEndian(unsigned val, unsigned char* buf, size_t bytes) {
- for (size_t i = 0; i < bytes; i++) {
- buf[bytes - i - 1] = (val & 0xFF);
- val >>= 8;
- }
-}
-
} // namespace
namespace sql {
namespace test {
-bool CorruptSizeInHeader(const base::FilePath& db_path) {
- // See http://www.sqlite.org/fileformat.html#database_header
- const size_t kHeaderSize = 100;
- const size_t kPageSizeOffset = 16;
- const size_t kFileChangeCountOffset = 24;
- const size_t kPageCountOffset = 28;
- const size_t kVersionValidForOffset = 92; // duplicate kFileChangeCountOffset
-
- unsigned char header[kHeaderSize];
-
- file_util::ScopedFILE file(file_util::OpenFile(db_path, "rb+"));
- if (!file.get())
- return false;
-
- if (0 != fseek(file.get(), 0, SEEK_SET))
- return false;
- if (1u != fread(header, sizeof(header), 1, file.get()))
- return false;
-
- int64 db_size = 0;
- if (!file_util::GetFileSize(db_path, &db_size))
- return false;
-
- const unsigned page_size = ReadBigEndian(header + kPageSizeOffset, 2);
-
- // One larger than the expected size.
- const unsigned page_count = (db_size + page_size) / page_size;
- WriteBigEndian(page_count, header + kPageCountOffset, 4);
-
- // Update change count so outstanding readers know the info changed.
- // Both spots must match for the page count to be considered valid.
- unsigned change_count = ReadBigEndian(header + kFileChangeCountOffset, 4);
- WriteBigEndian(change_count + 1, header + kFileChangeCountOffset, 4);
- WriteBigEndian(change_count + 1, header + kVersionValidForOffset, 4);
-
- if (0 != fseek(file.get(), 0, SEEK_SET))
- return false;
- if (1u != fwrite(header, sizeof(header), 1, file.get()))
- return false;
-
- return true;
-}
-
size_t CountSQLTables(sql::Connection* db) {
return CountSQLItemsOfType(db, "table");
}
@@ -153,14 +91,5 @@ bool CreateDatabaseFromSQL(const base::FilePath& db_path,
return db.Execute(sql.c_str());
}
-std::string IntegrityCheck(sql::Connection* db) {
- sql::Statement statement(db->GetUniqueStatement("PRAGMA integrity_check"));
-
- // SQLite should always return a row of data.
- EXPECT_TRUE(statement.Step());
-
- return statement.ColumnString(0);
-}
-
} // namespace test
} // namespace sql