should be it

This commit is contained in:
2025-10-24 19:21:19 -05:00
parent a4b23fc57c
commit f09560c7b1
14047 changed files with 3161551 additions and 1 deletions

View File

@@ -0,0 +1,58 @@
#include "catch.hpp"
#include "test_helpers.hpp"
#include "duckdb/storage/object_cache.hpp"
using namespace duckdb;
using namespace std;
struct TestObject : public ObjectCacheEntry {
int value;
TestObject(int value) : value(value) {
}
string GetObjectType() override {
return ObjectType();
}
static string ObjectType() {
return "TestObject";
}
};
struct AnotherTestObject : public ObjectCacheEntry {
int value;
AnotherTestObject(int value) : value(value) {
}
string GetObjectType() override {
return ObjectType();
}
static string ObjectType() {
return "AnotherTestObject";
}
};
TEST_CASE("Test ObjectCache", "[api]") {
DuckDB db;
Connection con(db);
auto &context = *con.context;
auto &cache = ObjectCache::GetObjectCache(context);
REQUIRE(cache.GetObject("test") == nullptr);
cache.Put("test", make_shared_ptr<TestObject>(42));
REQUIRE(cache.GetObject("test") != nullptr);
cache.Delete("test");
REQUIRE(cache.GetObject("test") == nullptr);
REQUIRE(cache.GetOrCreate<TestObject>("test", 42) != nullptr);
REQUIRE(cache.Get<TestObject>("test") != nullptr);
REQUIRE(cache.GetOrCreate<TestObject>("test", 1337)->value == 42);
REQUIRE(cache.Get<TestObject>("test")->value == 42);
REQUIRE(cache.GetOrCreate<AnotherTestObject>("test", 13) == nullptr);
}