Test: move ControllableAllocator

This commit is contained in:
Benoit Blanchon
2023-04-01 15:06:24 +02:00
parent 57810af2ac
commit a7cdf638e7
2 changed files with 25 additions and 25 deletions

View File

@ -129,3 +129,28 @@ class SpyingAllocator : public ArduinoJson::Allocator {
AllocatorLog _log;
};
class ControllableAllocator : public ArduinoJson::Allocator {
public:
ControllableAllocator() : _enabled(true) {}
virtual ~ControllableAllocator() {}
void* allocate(size_t n) override {
return _enabled ? malloc(n) : 0;
}
void deallocate(void* p) override {
free(p);
}
void* reallocate(void* ptr, size_t n) override {
return realloc(ptr, n);
}
void disable() {
_enabled = false;
}
private:
bool _enabled;
};

View File

@ -11,31 +11,6 @@
using ArduinoJson::detail::sizeofObject;
class ControllableAllocator : public Allocator {
public:
ControllableAllocator() : _enabled(true) {}
virtual ~ControllableAllocator() {}
void* allocate(size_t n) override {
return _enabled ? malloc(n) : 0;
}
void deallocate(void* p) override {
free(p);
}
void* reallocate(void* ptr, size_t n) override {
return realloc(ptr, n);
}
void disable() {
_enabled = false;
}
private:
bool _enabled;
};
TEST_CASE("JsonDocument's allocator") {
SpyingAllocator spyingAllocator;
ControllableAllocator controllableAllocator;