|
Packit Service |
7f3b24 |
// SPDX-License-Identifier: BSD-2-Clause
|
|
Packit Service |
7f3b24 |
/* Copyright (C) 2019 - 2020 Intel Corporation. */
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
#include <memkind.h>
|
|
Packit Service |
7f3b24 |
#include "common.h"
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
extern const char *PMEM_DIR;
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
class MemkindDetectKindTests: public ::testing::Test
|
|
Packit Service |
7f3b24 |
{
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
protected:
|
|
Packit Service |
7f3b24 |
void SetUp()
|
|
Packit Service |
7f3b24 |
{}
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
void TearDown()
|
|
Packit Service |
7f3b24 |
{}
|
|
Packit Service |
7f3b24 |
};
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
TEST_F(MemkindDetectKindTests, test_TC_MEMKIND_DetectKindNullPtr)
|
|
Packit Service |
7f3b24 |
{
|
|
Packit Service |
7f3b24 |
struct memkind *temp_kind = memkind_detect_kind(nullptr);
|
|
Packit Service |
7f3b24 |
ASSERT_EQ(nullptr, temp_kind);
|
|
Packit Service |
7f3b24 |
}
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
TEST_F(MemkindDetectKindTests, test_TC_MEMKIND_DetectKindPmemKind)
|
|
Packit Service |
7f3b24 |
{
|
|
Packit Service |
7f3b24 |
memkind_t pmem_kind_temp = nullptr;
|
|
Packit Service |
7f3b24 |
int err = memkind_create_pmem(PMEM_DIR, 0, &pmem_kind_temp);
|
|
Packit Service |
7f3b24 |
ASSERT_EQ(0, err);
|
|
Packit Service |
7f3b24 |
ASSERT_NE(nullptr, pmem_kind_temp);
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
void *ptr = memkind_malloc(pmem_kind_temp, 512);
|
|
Packit Service |
7f3b24 |
ASSERT_NE(nullptr, ptr);
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
struct memkind *temp_kind = memkind_detect_kind(ptr);
|
|
Packit Service |
7f3b24 |
ASSERT_EQ(pmem_kind_temp, temp_kind);
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
memkind_free(pmem_kind_temp, ptr);
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
err = memkind_destroy_kind(pmem_kind_temp);
|
|
Packit Service |
7f3b24 |
ASSERT_EQ(0, err);
|
|
Packit Service |
7f3b24 |
}
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
TEST_F(MemkindDetectKindTests, test_TC_MEMKIND_DetectKindRegularKind)
|
|
Packit Service |
7f3b24 |
{
|
|
Packit Service |
7f3b24 |
void *ptr = memkind_malloc(MEMKIND_REGULAR, 512);
|
|
Packit Service |
7f3b24 |
ASSERT_NE(nullptr, ptr);
|
|
Packit Service |
7f3b24 |
struct memkind *temp_kind = memkind_detect_kind(ptr);
|
|
Packit Service |
7f3b24 |
ASSERT_EQ(MEMKIND_REGULAR, temp_kind);
|
|
Packit Service |
7f3b24 |
memkind_free(MEMKIND_REGULAR, ptr);
|
|
Packit Service |
7f3b24 |
}
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
TEST_F(MemkindDetectKindTests, test_TC_MEMKIND_DetectDefaultSmallSizeKind)
|
|
Packit Service |
7f3b24 |
{
|
|
Packit Service |
7f3b24 |
void *ptr = memkind_malloc(MEMKIND_DEFAULT, 512);
|
|
Packit Service |
7f3b24 |
ASSERT_NE(nullptr, ptr);
|
|
Packit Service |
7f3b24 |
struct memkind *temp_kind = memkind_detect_kind(ptr);
|
|
Packit Service |
7f3b24 |
ASSERT_EQ(MEMKIND_DEFAULT, temp_kind);
|
|
Packit Service |
7f3b24 |
memkind_free(MEMKIND_DEFAULT, ptr);
|
|
Packit Service |
7f3b24 |
}
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
TEST_F(MemkindDetectKindTests, test_TC_MEMKIND_DetectDefaultBigSizeKind)
|
|
Packit Service |
7f3b24 |
{
|
|
Packit Service |
7f3b24 |
void *ptr = memkind_malloc(MEMKIND_DEFAULT, 8 * MB);
|
|
Packit Service |
7f3b24 |
ASSERT_NE(nullptr, ptr);
|
|
Packit Service |
7f3b24 |
struct memkind *temp_kind = memkind_detect_kind(ptr);
|
|
Packit Service |
7f3b24 |
ASSERT_EQ(MEMKIND_DEFAULT, temp_kind);
|
|
Packit Service |
7f3b24 |
memkind_free(MEMKIND_DEFAULT, ptr);
|
|
Packit Service |
7f3b24 |
}
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
TEST_F(MemkindDetectKindTests, test_TC_MEMKIND_DetectKindMixKind)
|
|
Packit Service |
7f3b24 |
{
|
|
Packit Service |
7f3b24 |
const size_t alloc_size = 512;
|
|
Packit Service |
7f3b24 |
memkind_t pmem_kind_temp_1 = nullptr;
|
|
Packit Service |
7f3b24 |
memkind_t pmem_kind_temp_2 = nullptr;
|
|
Packit Service |
7f3b24 |
struct memkind *temp_kind = nullptr;
|
|
Packit Service |
7f3b24 |
void *ptr_pmem_1 = nullptr;
|
|
Packit Service |
7f3b24 |
void *ptr_pmem_2 = nullptr;
|
|
Packit Service |
7f3b24 |
void *ptr_regular = nullptr;
|
|
Packit Service |
7f3b24 |
void *ptr_default = nullptr;
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
int err = memkind_create_pmem(PMEM_DIR, 0, &pmem_kind_temp_1);
|
|
Packit Service |
7f3b24 |
ASSERT_EQ(0, err);
|
|
Packit Service |
7f3b24 |
ASSERT_NE(nullptr, pmem_kind_temp_1);
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
err = memkind_create_pmem(PMEM_DIR, MEMKIND_PMEM_MIN_SIZE, &pmem_kind_temp_2);
|
|
Packit Service |
7f3b24 |
ASSERT_EQ(0, err);
|
|
Packit Service |
7f3b24 |
ASSERT_NE(nullptr, pmem_kind_temp_2);
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
ptr_pmem_1 = memkind_malloc(pmem_kind_temp_1, alloc_size);
|
|
Packit Service |
7f3b24 |
ASSERT_NE(nullptr, ptr_pmem_1);
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
ptr_pmem_2 = memkind_malloc(pmem_kind_temp_2, alloc_size);
|
|
Packit Service |
7f3b24 |
ASSERT_NE(nullptr, ptr_pmem_2);
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
ptr_default = memkind_malloc(MEMKIND_DEFAULT, alloc_size);
|
|
Packit Service |
7f3b24 |
ASSERT_NE(nullptr, ptr_default);
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
ptr_regular = memkind_malloc(MEMKIND_REGULAR, alloc_size);
|
|
Packit Service |
7f3b24 |
ASSERT_NE(nullptr, ptr_regular);
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
temp_kind = memkind_detect_kind(ptr_default);
|
|
Packit Service |
7f3b24 |
ASSERT_EQ(MEMKIND_DEFAULT, temp_kind);
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
temp_kind = memkind_detect_kind(ptr_pmem_1);
|
|
Packit Service |
7f3b24 |
ASSERT_EQ(pmem_kind_temp_1, temp_kind);
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
temp_kind = memkind_detect_kind(ptr_regular);
|
|
Packit Service |
7f3b24 |
ASSERT_EQ(MEMKIND_REGULAR, temp_kind);
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
temp_kind = memkind_detect_kind(ptr_pmem_2);
|
|
Packit Service |
7f3b24 |
ASSERT_EQ(pmem_kind_temp_2, temp_kind);
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
memkind_free(pmem_kind_temp_2, ptr_pmem_2);
|
|
Packit Service |
7f3b24 |
memkind_free(pmem_kind_temp_1, ptr_pmem_1);
|
|
Packit Service |
7f3b24 |
memkind_free(MEMKIND_DEFAULT, ptr_default);
|
|
Packit Service |
7f3b24 |
memkind_free(MEMKIND_REGULAR, ptr_regular);
|
|
Packit Service |
7f3b24 |
|
|
Packit Service |
7f3b24 |
err = memkind_destroy_kind(pmem_kind_temp_2);
|
|
Packit Service |
7f3b24 |
ASSERT_EQ(0, err);
|
|
Packit Service |
7f3b24 |
err = memkind_destroy_kind(pmem_kind_temp_1);
|
|
Packit Service |
7f3b24 |
ASSERT_EQ(0, err);
|
|
Packit Service |
7f3b24 |
}
|