summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/fixtures/offline_database/corrupt-delayed.dbbin19456 -> 19456 bytes
-rw-r--r--test/fixtures/offline_database/offline_sideload.dbbin73728 -> 73728 bytes
-rw-r--r--test/fixtures/offline_database/satellite_test.dbbin114688 -> 114688 bytes
-rw-r--r--test/fixtures/offline_database/sideload_ambient.dbbin90112 -> 90112 bytes
-rw-r--r--test/fixtures/offline_database/sideload_sat.dbbin73728 -> 73728 bytes
-rw-r--r--test/fixtures/offline_database/sideload_sat_multiple.dbbin90112 -> 90112 bytes
-rw-r--r--test/fixtures/offline_database/v6.dbbin0 -> 61440 bytes
-rw-r--r--test/storage/offline_database.test.cpp62
8 files changed, 56 insertions, 6 deletions
diff --git a/test/fixtures/offline_database/corrupt-delayed.db b/test/fixtures/offline_database/corrupt-delayed.db
index 04989dbf36..9019b81ef2 100644
--- a/test/fixtures/offline_database/corrupt-delayed.db
+++ b/test/fixtures/offline_database/corrupt-delayed.db
Binary files differ
diff --git a/test/fixtures/offline_database/offline_sideload.db b/test/fixtures/offline_database/offline_sideload.db
index 6146e30872..6d1528a333 100644
--- a/test/fixtures/offline_database/offline_sideload.db
+++ b/test/fixtures/offline_database/offline_sideload.db
Binary files differ
diff --git a/test/fixtures/offline_database/satellite_test.db b/test/fixtures/offline_database/satellite_test.db
index 95dd8617ff..023cabcffc 100644
--- a/test/fixtures/offline_database/satellite_test.db
+++ b/test/fixtures/offline_database/satellite_test.db
Binary files differ
diff --git a/test/fixtures/offline_database/sideload_ambient.db b/test/fixtures/offline_database/sideload_ambient.db
index 5f10a23c61..9c9f7a8041 100644
--- a/test/fixtures/offline_database/sideload_ambient.db
+++ b/test/fixtures/offline_database/sideload_ambient.db
Binary files differ
diff --git a/test/fixtures/offline_database/sideload_sat.db b/test/fixtures/offline_database/sideload_sat.db
index 6146e30872..6d1528a333 100644
--- a/test/fixtures/offline_database/sideload_sat.db
+++ b/test/fixtures/offline_database/sideload_sat.db
Binary files differ
diff --git a/test/fixtures/offline_database/sideload_sat_multiple.db b/test/fixtures/offline_database/sideload_sat_multiple.db
index 0a74be5ff9..35c02c498a 100644
--- a/test/fixtures/offline_database/sideload_sat_multiple.db
+++ b/test/fixtures/offline_database/sideload_sat_multiple.db
Binary files differ
diff --git a/test/fixtures/offline_database/v6.db b/test/fixtures/offline_database/v6.db
new file mode 100644
index 0000000000..f19e639933
--- /dev/null
+++ b/test/fixtures/offline_database/v6.db
Binary files differ
diff --git a/test/storage/offline_database.test.cpp b/test/storage/offline_database.test.cpp
index 24234b0624..bcbc1af50b 100644
--- a/test/storage/offline_database.test.cpp
+++ b/test/storage/offline_database.test.cpp
@@ -92,6 +92,14 @@ static std::vector<std::string> databaseTableColumns(const std::string& path, co
return columns;
}
+static int databaseAutoVacuum(const std::string& path) {
+ mapbox::sqlite::Database db = mapbox::sqlite::Database::open(path, mapbox::sqlite::ReadOnly);
+ mapbox::sqlite::Statement stmt{db, "pragma auto_vacuum"};
+ mapbox::sqlite::Query query{stmt};
+ query.run();
+ return query.get<int>(0);
+}
+
namespace fixture {
const Resource resource{ Resource::Style, "mapbox://test" };
@@ -219,7 +227,7 @@ TEST(OfflineDatabase, TEST_REQUIRES_WRITE(SchemaVersion)) {
OfflineDatabase db(filename);
}
- EXPECT_EQ(6, databaseUserVersion(filename));
+ EXPECT_EQ(7, databaseUserVersion(filename));
OfflineDatabase db(filename);
// Now try inserting and reading back to make sure we have a valid database.
@@ -1286,7 +1294,7 @@ TEST(OfflineDatabase, MigrateFromV2Schema) {
}
}
- EXPECT_EQ(6, databaseUserVersion(filename));
+ EXPECT_EQ(7, databaseUserVersion(filename));
EXPECT_LT(databasePageCount(filename),
databasePageCount("test/fixtures/offline_database/v2.db"));
@@ -1309,7 +1317,7 @@ TEST(OfflineDatabase, MigrateFromV3Schema) {
}
}
- EXPECT_EQ(6, databaseUserVersion(filename));
+ EXPECT_EQ(7, databaseUserVersion(filename));
EXPECT_EQ(0u, log.uncheckedCount());
}
@@ -1330,7 +1338,7 @@ TEST(OfflineDatabase, MigrateFromV4Schema) {
}
}
- EXPECT_EQ(6, databaseUserVersion(filename));
+ EXPECT_EQ(7, databaseUserVersion(filename));
// Journal mode should be DELETE after migration to v5.
EXPECT_EQ("delete", databaseJournalMode(filename));
@@ -1358,7 +1366,49 @@ TEST(OfflineDatabase, MigrateFromV5Schema) {
}
}
- EXPECT_EQ(6, databaseUserVersion(filename));
+ EXPECT_EQ(7, databaseUserVersion(filename));
+
+ EXPECT_EQ((std::vector<std::string>{"id",
+ "url_template",
+ "pixel_ratio",
+ "z",
+ "x",
+ "y",
+ "expires",
+ "modified",
+ "etag",
+ "data",
+ "compressed",
+ "accessed",
+ "must_revalidate"}),
+ databaseTableColumns(filename, "tiles"));
+ EXPECT_EQ(
+ (std::vector<std::string>{
+ "id", "url", "kind", "expires", "modified", "etag", "data", "compressed", "accessed", "must_revalidate"}),
+ databaseTableColumns(filename, "resources"));
+
+ EXPECT_EQ(0u, log.uncheckedCount());
+}
+
+TEST(OfflineDatabase, MigrateFromV6Schema) {
+ // v6.db is a v6 database, initially created as v6.
+ FixtureLog log;
+ deleteDatabaseFiles();
+ util::copyFile(filename, "test/fixtures/offline_database/v6.db");
+ EXPECT_EQ(0, databaseAutoVacuum(filename));
+
+ {
+ OfflineDatabase db(filename);
+ db.setMaximumAmbientCacheSize(0);
+
+ auto regions = db.listRegions().value();
+ for (auto& region : regions) {
+ db.deleteRegion(std::move(region));
+ }
+ }
+
+ EXPECT_EQ(7, databaseUserVersion(filename));
+ EXPECT_EQ(2, databaseAutoVacuum(filename));
EXPECT_EQ((std::vector<std::string>{ "id", "url_template", "pixel_ratio", "z", "x", "y",
"expires", "modified", "etag", "data", "compressed",
@@ -1383,7 +1433,7 @@ TEST(OfflineDatabase, DowngradeSchema) {
db.setMaximumAmbientCacheSize(0);
}
- EXPECT_EQ(6, databaseUserVersion(filename));
+ EXPECT_EQ(7, databaseUserVersion(filename));
EXPECT_EQ((std::vector<std::string>{ "id", "url_template", "pixel_ratio", "z", "x", "y",
"expires", "modified", "etag", "data", "compressed",