30 lines
901 B
C++
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();
|
|
}
|