Files
MapLibreParticleLab/test/storage/cache_shared.cpp
Konstantin Käfer 957415823a [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.
2016-01-15 10:44:16 +01:00

35 lines
1.1 KiB
C++

#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();
}