Files
Renderive/tests/Memory_Default.cpp
T
2026-07-30 18:09:03 +08:00

30 lines
901 B
C++

#include <cstdint>
#include <gtest/gtest.h>
#include <thread>
#include <vector>
#include "../Renderive/base/Memory.h"
namespace {
struct Payload {
std::uint64_t value{};
};
}
TEST(Memory_Default, AllocatesAndTracksDefaultResource) {
std::pmr::vector<std::uint64_t> values(renderive::memory_resource());
values.resize(4096, 7);
auto owner = renderive::make_shared<Payload>();
owner->value = values.front();
EXPECT_EQ(owner->value, 7);
std::thread release_thread([owner = std::move(owner)]() mutable {
owner.reset();
});
release_thread.join();
renderive::Memory_Stats stats = renderive::memory_stats();
EXPECT_GT(stats.upstream_allocation_count, 0);
EXPECT_GT(stats.upstream_current_bytes, 0);
EXPECT_GT(stats.upstream_peak_bytes, 0);
}
int main(int argc, char** argv) {
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}