FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

add missing negative providers tests by bratpiorka · Pull Request #1478 · oneapi-src/unified-memory-framework · GitHub

Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension .c  (1) .cpp  (8) All 2 file types selected
Viewed files
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Unified
Split
Hide whitespace
Diff view
Unified
Split
Hide whitespace
54 changes: 4 additions & 50 deletions src/provider/provider_level_zero.c
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -684,26 +684,6 @@ static umf_result_t ze_memory_provider_get_min_page_size(void *provider,
return UMF_RESULT_SUCCESS;
}

static umf_result_t ze_memory_provider_purge_lazy(void *provider, void *ptr,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

changes done in this file could be moved into a sep. commit (unless it was a bad rebase and it shouldn't be here at all)

size_t size) {
(void)provider;
(void)ptr;
(void)size;

// TODO not supported yet
return UMF_RESULT_ERROR_NOT_SUPPORTED;
}

static umf_result_t ze_memory_provider_purge_force(void *provider, void *ptr,
size_t size) {
(void)provider;
(void)ptr;
(void)size;

// TODO not supported yet
return UMF_RESULT_ERROR_NOT_SUPPORTED;
}

static umf_result_t
ze_memory_provider_get_recommended_page_size(void *provider, size_t size,
size_t *pageSize) {
Expand All @@ -725,32 +705,6 @@ static umf_result_t ze_memory_provider_get_name(void *provider,
return UMF_RESULT_SUCCESS;
}

static umf_result_t ze_memory_provider_allocation_merge(void *hProvider,
void *lowPtr,
void *highPtr,
size_t totalSize) {
(void)hProvider;
(void)lowPtr;
(void)highPtr;
(void)totalSize;

// TODO not supported yet
return UMF_RESULT_ERROR_NOT_SUPPORTED;
}

static umf_result_t ze_memory_provider_allocation_split(void *provider,
void *ptr,
size_t totalSize,
size_t firstSize) {
(void)provider;
(void)ptr;
(void)totalSize;
(void)firstSize;

// TODO not supported yet
return UMF_RESULT_ERROR_NOT_SUPPORTED;
}

typedef struct ze_ipc_data_t {
int pid;
ze_ipc_mem_handle_t ze_handle;
Expand Down Expand Up @@ -881,10 +835,10 @@ static umf_memory_provider_ops_t UMF_LEVEL_ZERO_MEMORY_PROVIDER_OPS = {
.get_recommended_page_size = ze_memory_provider_get_recommended_page_size,
.get_min_page_size = ze_memory_provider_get_min_page_size,
.get_name = ze_memory_provider_get_name,
.ext_purge_lazy = ze_memory_provider_purge_lazy,
.ext_purge_force = ze_memory_provider_purge_force,
.ext_allocation_merge = ze_memory_provider_allocation_merge,
.ext_allocation_split = ze_memory_provider_allocation_split,
.ext_purge_lazy = NULL,
.ext_purge_force = NULL,
.ext_allocation_merge = NULL,
.ext_allocation_split = NULL,
.ext_get_ipc_handle_size = ze_memory_provider_get_ipc_handle_size,
.ext_get_ipc_handle = ze_memory_provider_get_ipc_handle,
.ext_put_ipc_handle = ze_memory_provider_put_ipc_handle,
Expand Down
46 changes: 46 additions & 0 deletions test/provider_devdax_memory.cpp
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -565,3 +565,49 @@ TEST_F(test, create_wrong_size_0) {
ret = umfDevDaxMemoryProviderParamsDestroy(wrong_params);
ASSERT_EQ(ret, UMF_RESULT_SUCCESS);
}

TEST_F(test, create_NULL_params) {
umf_memory_provider_handle_t hProvider = nullptr;
auto ret = umfMemoryProviderCreate(umfDevDaxMemoryProviderOps(), nullptr,
&hProvider);
ASSERT_EQ(ret, UMF_RESULT_ERROR_INVALID_ARGUMENT);
ASSERT_EQ(hProvider, nullptr);
}

TEST_F(test, params_NULL_name) {
umf_devdax_memory_provider_params_handle_t params = nullptr;
auto ret =
umfDevDaxMemoryProviderParamsCreate("/dev/dax0.0", 4096, &params);
ASSERT_EQ(ret, UMF_RESULT_SUCCESS);
ASSERT_NE(params, nullptr);

ret = umfDevDaxMemoryProviderParamsSetName(params, nullptr);
ASSERT_EQ(ret, UMF_RESULT_ERROR_INVALID_ARGUMENT);

ret = umfDevDaxMemoryProviderParamsDestroy(params);
ASSERT_EQ(ret, UMF_RESULT_SUCCESS);

ret = umfDevDaxMemoryProviderParamsSetName(nullptr, "test");
ASSERT_EQ(ret, UMF_RESULT_ERROR_INVALID_ARGUMENT);
}

TEST_F(test, get_NULL_name) {
umf_devdax_memory_provider_params_handle_t params =
defaultDevDaxParams.get();
ASSERT_NE(params, nullptr);

umf_memory_provider_handle_t hProvider = nullptr;
umf_result_t ret = umfMemoryProviderCreate(umfDevDaxMemoryProviderOps(),
params, &hProvider);
ASSERT_EQ(ret, UMF_RESULT_SUCCESS);
ASSERT_NE(hProvider, nullptr);

ret = umfMemoryProviderGetName(hProvider, NULL);
ASSERT_EQ(ret, UMF_RESULT_ERROR_INVALID_ARGUMENT);

ret = umfMemoryProviderDestroy(hProvider);
ASSERT_EQ(ret, UMF_RESULT_SUCCESS);

ret = umfDevDaxMemoryProviderParamsDestroy(params);
ASSERT_EQ(ret, UMF_RESULT_SUCCESS);
}
3 changes: 3 additions & 0 deletions test/provider_devdax_memory_not_impl.cpp
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,9 @@ TEST_F(test, devdax_provider_not_implemented) {
umf_result = umfDevDaxMemoryProviderParamsSetProtection(nullptr, 0);
EXPECT_EQ(umf_result, UMF_RESULT_ERROR_NOT_SUPPORTED);

umf_result = umfDevDaxMemoryProviderParamsSetName(params, "test");
EXPECT_EQ(umf_result, UMF_RESULT_ERROR_NOT_SUPPORTED);

const umf_memory_provider_ops_t *ops = umfDevDaxMemoryProviderOps();
EXPECT_EQ(ops, nullptr);
}
62 changes: 62 additions & 0 deletions test/provider_file_memory.cpp
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -624,3 +624,65 @@ TEST_P(FileProviderParamsShared, IPC_file_not_exist) {
umf_result = umfMemoryProviderFree(provider.get(), ptr, size);
ASSERT_EQ(umf_result, UMF_RESULT_SUCCESS);
}

TEST_F(test, create_NULL_params) {
umf_memory_provider_handle_t hProvider = nullptr;
auto ret = umfMemoryProviderCreate(umfFileMemoryProviderOps(), nullptr,
&hProvider);
ASSERT_EQ(ret, UMF_RESULT_ERROR_INVALID_ARGUMENT);
ASSERT_EQ(hProvider, nullptr);
}

TEST_F(test, params_NULL_name) {
umf_file_memory_provider_params_handle_t params = nullptr;
umf_result_t ret = umfFileMemoryProviderParamsCreate(FILE_PATH, &params);
ASSERT_EQ(ret, UMF_RESULT_SUCCESS);
ASSERT_NE(params, nullptr);

ret = umfFileMemoryProviderParamsSetName(params, nullptr);
ASSERT_EQ(ret, UMF_RESULT_ERROR_INVALID_ARGUMENT);

ret = umfFileMemoryProviderParamsDestroy(params);
ASSERT_EQ(ret, UMF_RESULT_SUCCESS);

ret = umfFileMemoryProviderParamsSetName(nullptr, "test");
ASSERT_EQ(ret, UMF_RESULT_ERROR_INVALID_ARGUMENT);
}

TEST_F(test, get_NULL_name) {
umf_file_memory_provider_params_handle_t params = nullptr;
umf_result_t ret = umfFileMemoryProviderParamsCreate(FILE_PATH, &params);
ASSERT_EQ(ret, UMF_RESULT_SUCCESS);
ASSERT_NE(params, nullptr);

umf_memory_provider_handle_t hProvider = nullptr;
ret =
umfMemoryProviderCreate(umfFileMemoryProviderOps(), params, &hProvider);
ASSERT_EQ(ret, UMF_RESULT_SUCCESS);
ASSERT_NE(hProvider, nullptr);

ret = umfMemoryProviderGetName(hProvider, NULL);
ASSERT_EQ(ret, UMF_RESULT_ERROR_INVALID_ARGUMENT);

ret = umfMemoryProviderDestroy(hProvider);
ASSERT_EQ(ret, UMF_RESULT_SUCCESS);

ret = umfFileMemoryProviderParamsDestroy(params);
ASSERT_EQ(ret, UMF_RESULT_SUCCESS);
}

TEST_F(test, params_protection_flag) {
umf_file_memory_provider_params_handle_t params = nullptr;
umf_result_t ret = umfFileMemoryProviderParamsCreate(FILE_PATH, &params);
ASSERT_EQ(ret, UMF_RESULT_SUCCESS);
ASSERT_NE(params, nullptr);

// test all valid combinations
for (unsigned protection = UMF_PROTECTION_NONE;
protection < (UMF_PROTECTION_MAX - 1) << 1; ++protection) {
ret = umfFileMemoryProviderParamsSetProtection(params, protection);
ASSERT_EQ(ret, UMF_RESULT_SUCCESS);
}

umfFileMemoryProviderParamsDestroy(params);
}
3 changes: 3 additions & 0 deletions test/provider_file_memory_not_impl.cpp
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ TEST_F(test, file_provider_not_implemented) {
umfFileMemoryProviderParamsSetVisibility(nullptr, UMF_MEM_MAP_PRIVATE);
EXPECT_EQ(umf_result, UMF_RESULT_ERROR_NOT_SUPPORTED);

umf_result = umfFileMemoryProviderParamsSetName(params, "test");
EXPECT_EQ(umf_result, UMF_RESULT_ERROR_NOT_SUPPORTED);

const umf_memory_provider_ops_t *ops = umfFileMemoryProviderOps();
EXPECT_EQ(ops, nullptr);
}
10 changes: 10 additions & 0 deletions test/providers/provider_cuda.cpp
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,10 @@ TEST_P(umfCUDAProviderTest, getName) {
ASSERT_EQ(umf_result, UMF_RESULT_SUCCESS);
ASSERT_STREQ(name, "CUDA");

// negative case - pass NULL as a name pointer
umf_result = umfMemoryProviderGetName(provider, nullptr);
ASSERT_EQ(umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT);

umfMemoryProviderDestroy(provider);
}

Expand Down Expand Up @@ -469,6 +473,12 @@ TEST_P(umfCUDAProviderTest, cudaProviderNullParams) {
res =
umfCUDAMemoryProviderParamsSetMemoryType(nullptr, expected_memory_type);
EXPECT_EQ(res, UMF_RESULT_ERROR_INVALID_ARGUMENT);

res = umfCUDAMemoryProviderParamsSetAllocFlags(nullptr, 0);
EXPECT_EQ(res, UMF_RESULT_ERROR_INVALID_ARGUMENT);

res = umfCUDAMemoryProviderParamsSetName(nullptr, "test");
EXPECT_EQ(res, UMF_RESULT_ERROR_INVALID_ARGUMENT);
}

TEST_P(umfCUDAProviderTest, cudaProviderInvalidCreate) {
Expand Down
3 changes: 3 additions & 0 deletions test/providers/provider_cuda_not_impl.cpp
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@ TEST_F(test, cuda_provider_not_implemented) {
result = umfCUDAMemoryProviderParamsSetAllocFlags(hParams, 0);
ASSERT_EQ(result, UMF_RESULT_ERROR_NOT_SUPPORTED);

result = umfCUDAMemoryProviderParamsSetName(hParams, "test");
ASSERT_EQ(result, UMF_RESULT_ERROR_NOT_SUPPORTED);

const umf_memory_provider_ops_t *ops = umfCUDAMemoryProviderOps();
ASSERT_EQ(ops, nullptr);
}
10 changes: 10 additions & 0 deletions test/providers/provider_level_zero.cpp
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -396,6 +396,10 @@ TEST_P(umfLevelZeroProviderTest, getName) {
ASSERT_EQ(umf_result, UMF_RESULT_SUCCESS);
ASSERT_STREQ(name, "LEVEL_ZERO");

// negative case - pass NULL as a name pointer
umf_result = umfMemoryProviderGetName(provider, nullptr);
ASSERT_EQ(umf_result, UMF_RESULT_ERROR_INVALID_ARGUMENT);

umfMemoryProviderDestroy(provider);
}

Expand Down Expand Up @@ -546,6 +550,12 @@ TEST_P(umfLevelZeroProviderTest, levelZeroProviderNullParams) {

res = umfLevelZeroMemoryProviderParamsSetDeviceOrdinal(nullptr, 0);
EXPECT_EQ(res, UMF_RESULT_ERROR_INVALID_ARGUMENT);

res = umfLevelZeroMemoryProviderParamsSetAllocFlags(nullptr, 0);
EXPECT_EQ(res, UMF_RESULT_ERROR_INVALID_ARGUMENT);

res = umfLevelZeroMemoryProviderParamsSetName(nullptr, "test");
EXPECT_EQ(res, UMF_RESULT_ERROR_INVALID_ARGUMENT);
}

TEST_P(umfLevelZeroProviderTest, setDeviceOrdinalValid) {
Expand Down
3 changes: 3 additions & 0 deletions test/providers/provider_level_zero_not_impl.cpp
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ TEST_F(test, level_zero_provider_not_implemented) {
result = umfLevelZeroMemoryProviderParamsSetDeviceOrdinal(hParams, 0);
ASSERT_EQ(result, UMF_RESULT_ERROR_NOT_SUPPORTED);

result = umfLevelZeroMemoryProviderParamsSetName(hParams, "test");
ASSERT_EQ(result, UMF_RESULT_ERROR_NOT_SUPPORTED);

const umf_memory_provider_ops_t *ops = umfLevelZeroMemoryProviderOps();
ASSERT_EQ(ops, nullptr);
}
Loading

Back | FazBrowse Home | New Git URL