From 4b1f9a3b3fbbb862b8d6a3bd31ae27c95da241f0 Mon Sep 17 00:00:00 2001 From: "Thiago Marcos P. Santos" Date: Mon, 10 Jun 2019 19:20:57 +0300 Subject: [tests] Add unit test for clearing the ambient cache --- test/storage/offline_database.test.cpp | 50 ++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 11 deletions(-) diff --git a/test/storage/offline_database.test.cpp b/test/storage/offline_database.test.cpp index a5de89d670..a0adbb4207 100644 --- a/test/storage/offline_database.test.cpp +++ b/test/storage/offline_database.test.cpp @@ -29,6 +29,17 @@ static void deleteDatabaseFiles() { util::deleteFile(filename + "-journal"s); } +static std::shared_ptr randomString(size_t size) { + auto result = std::make_shared(size, 0); + std::mt19937 random; + + for (size_t i = 0; i < size; i++) { + (*result)[i] = random(); + } + + return result; +} + static FixtureLog::Message error(ResultCode code, const char* message) { return { EventSeverity::Error, Event::Database, static_cast(code), message }; } @@ -593,6 +604,34 @@ TEST(OfflineDatabase, Invalidate) { EXPECT_EQ(0u, log.uncheckedCount()); } +TEST(OfflineDatabase, ClearTileCache) { + FixtureLog log; + deleteDatabaseFiles(); + + { + OfflineDatabase dbCreate(filename); + } + + size_t initialSize = util::read_file(filename).size(); + + { + Response response; + response.data = randomString(.5 * 1024 * 1024); + + OfflineDatabase db(filename); + + for (unsigned i = 0; i < 100; ++i) { + const Resource tile = Resource::tile("mapbox://tile_" + std::to_string(i), 1, 0, 0, 0, Tileset::Scheme::XYZ); + db.put(tile, response); + } + + db.clearTileCache(); + } + + EXPECT_EQ(initialSize, util::read_file(filename).size()); + EXPECT_EQ(0u, log.uncheckedCount()); +} + TEST(OfflineDatabase, CreateRegionInfiniteMaxZoom) { FixtureLog log; OfflineDatabase db(":memory:"); @@ -638,17 +677,6 @@ TEST(OfflineDatabase, TEST_REQUIRES_WRITE(ConcurrentUse)) { EXPECT_EQ(0u, log.uncheckedCount()); } -static std::shared_ptr randomString(size_t size) { - auto result = std::make_shared(size, 0); - std::mt19937 random; - - for (size_t i = 0; i < size; i++) { - (*result)[i] = random(); - } - - return result; -} - TEST(OfflineDatabase, PutReturnsSize) { FixtureLog log; OfflineDatabase db(":memory:"); -- cgit v1.2.1