13#include "kstd_cstring"
30 EXPECT_TRUE(ptr !=
nullptr,
"memory_test: malloc failed");
33 auto* byte_ptr =
static_cast<uint8_t*
>(ptr);
34 for (
size_t i = 0; i < size; ++i) {
35 byte_ptr[i] =
static_cast<uint8_t
>(i & 0xFF);
38 for (
size_t i = 0; i < size; ++i) {
39 EXPECT_EQ(byte_ptr[i],
static_cast<uint8_t
>(i & 0xFF),
40 "memory_test: verify failed");
47 size_t alignment = 256;
48 size_t aligned_size = 512;
50 EXPECT_TRUE(aligned_ptr !=
nullptr,
"memory_test: aligned_alloc failed");
52 EXPECT_EQ(
reinterpret_cast<uintptr_t
>(aligned_ptr) & (alignment - 1), 0,
53 "memory_test: aligned_alloc alignment failed");
56 klog::Info(
"memory_test: aligned_alloc passed");
62 for (
int i = 0; i < count; ++i) {
64 EXPECT_TRUE(ptrs[i] !=
nullptr,
"memory_test: multi alloc failed");
66 kstd::memset(ptrs[i], i, 128);
69 for (
int i = 0; i < count; ++i) {
70 auto* p =
static_cast<uint8_t*
>(ptrs[i]);
71 for (
int j = 0; j < 128; ++j) {
72 EXPECT_EQ(p[j], i,
"memory_test: multi alloc verify failed");
void * aligned_alloc(size_t alignment, size_t size)
void * malloc(size_t size)
auto memory_test() -> bool
auto Info(etl::format_string< Args... > fmt, Args &&... args) -> void
以 INFO 级别记录日志
#define EXPECT_TRUE(cond, msg)
#define EXPECT_EQ(val1, val2, msg)