diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2016-01-14 15:25:56 +0100 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2016-01-15 10:44:16 +0100 |
commit | 957415823a003111f6efecd1a1552a30f999235a (patch) | |
tree | ef767f1e3557c8d9a8964087f32beda0b39e0f26 /test | |
parent | 8939a7b7069124adac44ef822bfe6d97adcc14d6 (diff) | |
download | qtlocation-mapboxgl-957415823a003111f6efecd1a1552a30f999235a.tar.gz |
[core] Support multiple paths in SQLiteCache::getShared()
If you use many different caches, expired weak_ptrs will pile up in the unordered_map, but that is an edge case, and you probably shouldn't do that anyway.
Diffstat (limited to 'test')
-rw-r--r-- | test/storage/cache_shared.cpp | 34 | ||||
-rw-r--r-- | test/test.gypi | 1 |
2 files changed, 35 insertions, 0 deletions
diff --git a/test/storage/cache_shared.cpp b/test/storage/cache_shared.cpp new file mode 100644 index 0000000000..89ef3bfb84 --- /dev/null +++ b/test/storage/cache_shared.cpp @@ -0,0 +1,34 @@ +#include "storage.hpp" + +#include <mbgl/storage/sqlite_cache.hpp> +#include <mbgl/storage/resource.hpp> +#include <mbgl/util/run_loop.hpp> + +TEST_F(Storage, CacheShared) { + SCOPED_TEST(CacheShared) + using namespace mbgl; + + util::RunLoop loop; + + // Check that we're getting two different caches when we request different paths. + auto memory = SQLiteCache::getShared(); + auto file = SQLiteCache::getShared("test/fixtures/database/cache.db"); + EXPECT_NE(memory.get(), file.get()); + EXPECT_EQ(memory.get(), SQLiteCache::getShared().get()); + + // Store a response into the memory file cache, then delete the last reference. + const Resource resource { Resource::Kind::Unknown, "http://example.com" }; + memory->put(resource, Response()); + memory.reset(); + + // Now check that the original memory file cache has been destructed and that it doesn't contain + // the information we put into it. + memory = SQLiteCache::getShared(); + auto req = memory->get(resource, [&](std::unique_ptr<Response> res) { + EXPECT_FALSE(res.get()); + CacheShared.finish(); + loop.stop(); + }); + + loop.run(); +} diff --git a/test/test.gypi b/test/test.gypi index 21b2038876..607dd2b76c 100644 --- a/test/test.gypi +++ b/test/test.gypi @@ -70,6 +70,7 @@ 'storage/storage.cpp', 'storage/cache_response.cpp', 'storage/cache_revalidate.cpp', + 'storage/cache_shared.cpp', 'storage/cache_size.cpp', 'storage/database.cpp', 'storage/asset_file_source.cpp', |