[core] recreate offline database when it is deleted out from under our feet
This commit is contained in:
@@ -32,7 +32,7 @@ static FixtureLog::Message error(ResultCode code, const char* message) {
|
||||
return { EventSeverity::Error, Event::Database, static_cast<int64_t>(code), message };
|
||||
}
|
||||
|
||||
static FixtureLog::Message warning(ResultCode code, const char* message) {
|
||||
static __attribute__((unused)) FixtureLog::Message warning(ResultCode code, const char* message) {
|
||||
return { EventSeverity::Warning, Event::Database, static_cast<int64_t>(code), message };
|
||||
}
|
||||
|
||||
@@ -232,7 +232,7 @@ TEST(OfflineDatabase, TEST_REQUIRES_WRITE(Invalid)) {
|
||||
// Checking two possibilities for the error string because it apparently changes between SQLite versions.
|
||||
EXPECT_EQ(1u, log.count(error(ResultCode::NotADB, "Can't open database: file is encrypted or is not a database"), true) +
|
||||
log.count(error(ResultCode::NotADB, "Can't open database: file is not a database"), true));
|
||||
EXPECT_EQ(1u, log.count(warning(static_cast<ResultCode>(-1), "Removing existing incompatible offline database")));
|
||||
EXPECT_EQ(1u, log.count({ EventSeverity::Warning, Event::Database, -1, "Removing existing incompatible offline database" }));
|
||||
|
||||
// Now try inserting and reading back to make sure we have a valid database.
|
||||
for (const auto& res : { fixture::resource, fixture::tile }) {
|
||||
@@ -977,7 +977,7 @@ TEST(OfflineDatabase, CorruptDatabaseOnOpen) {
|
||||
// This database is corrupt in a way that will prevent opening the database.
|
||||
OfflineDatabase db(filename);
|
||||
EXPECT_EQ(1u, log.count(error(ResultCode::Corrupt, "Can't open database: database disk image is malformed"), true));
|
||||
EXPECT_EQ(1u, log.count(warning(static_cast<ResultCode>(-1), "Removing existing incompatible offline database")));
|
||||
EXPECT_EQ(1u, log.count({ EventSeverity::Warning, Event::Database, -1, "Removing existing incompatible offline database" }));
|
||||
EXPECT_EQ(0u, log.uncheckedCount());
|
||||
|
||||
// Now try inserting and reading back to make sure we have a valid database.
|
||||
@@ -1007,7 +1007,7 @@ TEST(OfflineDatabase, CorruptDatabaseOnQuery) {
|
||||
// The first request fails because the database is corrupt and has to be recreated.
|
||||
EXPECT_EQ(nullopt, db.get(fixture::tile));
|
||||
EXPECT_EQ(1u, log.count(error(ResultCode::Corrupt, "Can't read resource: database disk image is malformed"), true));
|
||||
EXPECT_EQ(1u, log.count(warning(static_cast<ResultCode>(-1), "Removing existing incompatible offline database")));
|
||||
EXPECT_EQ(1u, log.count({ EventSeverity::Warning, Event::Database, -1, "Removing existing incompatible offline database" }));
|
||||
EXPECT_EQ(0u, log.uncheckedCount());
|
||||
|
||||
// Now try inserting and reading back to make sure we have a valid database.
|
||||
|
||||
Reference in New Issue
Block a user