1
+ /*
2
+ * Copyright (C) 2025 Intel Corporation
3
+ *
4
+ * Under the Apache License v2.0 with LLVM Exceptions. See LICENSE.TXT.
5
+ * SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ */
7
+
8
+ #include < gtest/gtest.h>
9
+
10
+ #include < umf/memory_pool.h>
11
+ #include < umf/memory_provider.h>
12
+ #include < umf/pools/pool_disjoint.h>
13
+ #include < umf/pools/pool_jemalloc.h>
14
+ #include < umf/pools/pool_proxy.h>
15
+ #include < umf/pools/pool_scalable.h>
16
+
17
+ #include " provider_null.h"
18
+
19
+ // Dummy provider implementation for testing
20
+ static umf_memory_provider_ops_t dummy_provider_ops = UMF_NULL_PROVIDER_OPS;
21
+
22
+ using PoolOpsFn = const umf_memory_pool_ops_t *(*)();
23
+
24
+ class PoolNullParamsTest : public ::testing::TestWithParam<PoolOpsFn> {
25
+ protected:
26
+ umf_memory_provider_handle_t provider = NULL ;
27
+ void SetUp () override {
28
+ ASSERT_EQ (umfMemoryProviderCreate (&dummy_provider_ops, NULL , &provider),
29
+ UMF_RESULT_SUCCESS);
30
+ }
31
+ void TearDown () override {
32
+ if (provider) {
33
+ umfMemoryProviderDestroy (provider);
34
+ }
35
+ }
36
+ };
37
+
38
+ TEST_P (PoolNullParamsTest, CreateWithNullParams) {
39
+ umf_memory_pool_handle_t pool;
40
+ PoolOpsFn opsFn = GetParam ();
41
+ umf_result_t res = umfPoolCreate (opsFn (), provider, NULL , 0 , &pool);
42
+ ASSERT_EQ (res, UMF_RESULT_SUCCESS);
43
+ umfPoolDestroy (pool);
44
+ }
45
+
46
+ namespace {
47
+ const PoolOpsFn poolOpsList[] = {
48
+ #if defined(UMF_POOL_SCALABLE_ENABLED)
49
+ &umfScalablePoolOps,
50
+ #endif
51
+ #if defined(UMF_POOL_JEMALLOC_ENABLED)
52
+ &umfJemallocPoolOps,
53
+ #endif
54
+ #if defined(UMF_POOL_PROXY_ENABLED)
55
+ &umfProxyPoolOps
56
+ #endif
57
+ &umfDisjointPoolOps};
58
+ } // namespace
59
+
60
+ INSTANTIATE_TEST_SUITE_P (poolNullParamsTest, PoolNullParamsTest,
61
+ ::testing::ValuesIn (poolOpsList));
0 commit comments