66#include < uur/fixtures.h>
77#include < uur/known_failure.h>
88
9- struct urUSMGetMemAllocInfoTest
9+ struct urUSMGetMemAllocInfoPoolTest
1010 : uur::urUSMDeviceAllocTestWithParam<ur_usm_alloc_info_t > {
1111 void SetUp () override {
1212 // The setup for the parent fixture does a urQueueFlush, which isn't
@@ -19,125 +19,142 @@ struct urUSMGetMemAllocInfoTest
1919 }
2020};
2121
22- UUR_DEVICE_TEST_SUITE_P (urUSMGetMemAllocInfoTest,
23- ::testing::Values (UR_USM_ALLOC_INFO_TYPE,
24- UR_USM_ALLOC_INFO_BASE_PTR,
25- UR_USM_ALLOC_INFO_SIZE,
26- UR_USM_ALLOC_INFO_DEVICE,
27- UR_USM_ALLOC_INFO_POOL),
22+ UUR_DEVICE_TEST_SUITE_P (urUSMGetMemAllocInfoPoolTest,
23+ ::testing::Values (UR_USM_ALLOC_INFO_POOL),
2824 uur::deviceTestWithParamPrinter<ur_usm_alloc_info_t>);
2925
30- static std::unordered_map<ur_usm_alloc_info_t , size_t > usm_info_size_map = {
31- {UR_USM_ALLOC_INFO_TYPE, sizeof (ur_usm_type_t )},
32- {UR_USM_ALLOC_INFO_BASE_PTR, sizeof (void *)},
33- {UR_USM_ALLOC_INFO_SIZE, sizeof (size_t )},
34- {UR_USM_ALLOC_INFO_DEVICE, sizeof (ur_device_handle_t )},
35- {UR_USM_ALLOC_INFO_POOL, sizeof (ur_usm_pool_handle_t )},
36- };
26+ TEST_P (urUSMGetMemAllocInfoPoolTest, SuccessPool) {
27+ UUR_KNOWN_FAILURE_ON (uur::OpenCL{}, uur::LevelZeroV2{});
3728
38- TEST_P (urUSMGetMemAllocInfoTest, Success) {
39- size_t size = 0 ;
40- auto alloc_info = getParam ();
29+ size_t property_size = 0 ;
30+ ur_usm_alloc_info_t property_name = UR_USM_ALLOC_INFO_POOL;
4131
42- if (alloc_info == UR_USM_ALLOC_INFO_POOL) {
43- UUR_KNOWN_FAILURE_ON (uur::OpenCL{}, uur::LevelZeroV2{});
44- }
32+ ASSERT_SUCCESS_OR_OPTIONAL_QUERY (
33+ urUSMGetMemAllocInfo (context, ptr, property_name, 0 , nullptr ,
34+ &property_size),
35+ property_name);
36+ ASSERT_EQ (sizeof (ur_usm_pool_handle_t ), property_size);
4537
46- if (alloc_info == UR_USM_ALLOC_INFO_BASE_PTR) {
47- UUR_KNOWN_FAILURE_ON (uur::NativeCPU{});
48- }
38+ ur_usm_pool_handle_t returned_pool = nullptr ;
39+ ASSERT_SUCCESS (urUSMGetMemAllocInfo (
40+ context, ptr, property_name, property_size, &returned_pool, nullptr ));
41+
42+ ASSERT_EQ (returned_pool, pool);
43+ }
44+
45+ using urUSMGetMemAllocInfoTest = uur::urUSMDeviceAllocTest;
46+ UUR_INSTANTIATE_DEVICE_TEST_SUITE_P (urUSMGetMemAllocInfoTest);
47+
48+ TEST_P (urUSMGetMemAllocInfoTest, SuccessType) {
49+ UUR_KNOWN_FAILURE_ON (uur::NativeCPU{});
50+
51+ size_t property_size = 0 ;
52+ ur_usm_alloc_info_t property_name = UR_USM_ALLOC_INFO_TYPE;
4953
5054 ASSERT_SUCCESS_OR_OPTIONAL_QUERY (
51- urUSMGetMemAllocInfo (context, ptr, alloc_info, 0 , nullptr , &size),
52- alloc_info);
53- ASSERT_NE (size, 0 );
55+ urUSMGetMemAllocInfo (context, ptr, property_name, 0 , nullptr ,
56+ &property_size),
57+ property_name);
58+ ASSERT_EQ (sizeof (ur_usm_type_t ), property_size);
5459
55- if (const auto expected_size = usm_info_size_map.find (alloc_info);
56- expected_size != usm_info_size_map.end ()) {
57- ASSERT_EQ (expected_size->second , size);
58- }
60+ ur_usm_type_t returned_type = UR_USM_TYPE_FORCE_UINT32;
61+ ASSERT_SUCCESS (urUSMGetMemAllocInfo (
62+ context, ptr, property_name, property_size, &returned_type, nullptr ));
5963
60- std::vector<uint8_t > info_data (size);
61- ASSERT_SUCCESS (urUSMGetMemAllocInfo (context, ptr, alloc_info, size,
62- info_data.data (), nullptr ));
63- switch (alloc_info) {
64- case UR_USM_ALLOC_INFO_DEVICE: {
65- auto returned_device =
66- reinterpret_cast <ur_device_handle_t *>(info_data.data ());
67- ASSERT_EQ (*returned_device, device);
68- break ;
69- }
70- case UR_USM_ALLOC_INFO_SIZE: {
71- auto returned_size = reinterpret_cast <size_t *>(info_data.data ());
72- ASSERT_GE (*returned_size, allocation_size);
73- break ;
74- }
75- case UR_USM_ALLOC_INFO_BASE_PTR: {
76- auto returned_ptr = reinterpret_cast <void **>(info_data.data ());
77- ASSERT_EQ (*returned_ptr, ptr);
78- break ;
79- }
80- case UR_USM_ALLOC_INFO_POOL: {
81- auto returned_pool =
82- reinterpret_cast <ur_usm_pool_handle_t *>(info_data.data ());
83- ASSERT_EQ (*returned_pool, pool);
84- break ;
85- }
86- case UR_USM_ALLOC_INFO_TYPE: {
87- auto returned_type =
88- reinterpret_cast <ur_usm_type_t *>(info_data.data ());
89- ASSERT_EQ (*returned_type, UR_USM_TYPE_DEVICE);
90- break ;
91- }
92- default :
93- break ;
94- }
64+ ASSERT_EQ (returned_type, UR_USM_TYPE_DEVICE);
9565}
9666
97- struct urUSMGetMemAllocInfoNegativeTest : uur::urUSMDeviceAllocTest {
98- void SetUp () override {
99- // The setup for the parent fixture does a urQueueFlush, which isn't
100- // supported by native cpu.
101- UUR_KNOWN_FAILURE_ON (uur::NativeCPU{});
102- UUR_RETURN_ON_FATAL_FAILURE (uur::urUSMDeviceAllocTest::SetUp ());
103- }
104- };
105- UUR_INSTANTIATE_DEVICE_TEST_SUITE_P (urUSMGetMemAllocInfoNegativeTest);
67+ TEST_P (urUSMGetMemAllocInfoTest, SuccessBasePtr) {
68+ UUR_KNOWN_FAILURE_ON (uur::NativeCPU{});
10669
107- TEST_P (urUSMGetMemAllocInfoNegativeTest, InvalidNullHandleContext) {
70+ size_t property_size = 0 ;
71+ ur_usm_alloc_info_t property_name = UR_USM_ALLOC_INFO_BASE_PTR;
72+
73+ ASSERT_SUCCESS_OR_OPTIONAL_QUERY (
74+ urUSMGetMemAllocInfo (context, ptr, property_name, 0 , nullptr ,
75+ &property_size),
76+ property_name);
77+ ASSERT_GT (property_size, 0 );
78+
79+ void *returned_ptr = nullptr ;
80+ ASSERT_SUCCESS (urUSMGetMemAllocInfo (context, ptr, property_name,
81+ property_size, &returned_ptr, nullptr ));
82+
83+ ASSERT_EQ (returned_ptr, ptr);
84+ }
85+
86+ TEST_P (urUSMGetMemAllocInfoTest, SuccessSize) {
10887 UUR_KNOWN_FAILURE_ON (uur::NativeCPU{});
10988
110- ur_usm_type_t USMType;
111- ASSERT_EQ_RESULT (UR_RESULT_ERROR_INVALID_NULL_HANDLE,
112- urUSMGetMemAllocInfo (nullptr , ptr, UR_USM_ALLOC_INFO_TYPE,
113- sizeof (ur_usm_type_t ), &USMType,
114- nullptr ));
89+ size_t property_size = 0 ;
90+ ur_usm_alloc_info_t property_name = UR_USM_ALLOC_INFO_SIZE;
91+
92+ ASSERT_SUCCESS_OR_OPTIONAL_QUERY (
93+ urUSMGetMemAllocInfo (context, ptr, property_name, 0 , nullptr ,
94+ &property_size),
95+ property_name);
96+ ASSERT_EQ (sizeof (size_t ), property_size);
97+
98+ size_t returned_size = 0 ;
99+ ASSERT_SUCCESS (urUSMGetMemAllocInfo (
100+ context, ptr, property_name, property_size, &returned_size, nullptr ));
101+
102+ ASSERT_GE (returned_size, allocation_size);
103+ }
104+
105+ TEST_P (urUSMGetMemAllocInfoTest, SuccessDevice) {
106+ UUR_KNOWN_FAILURE_ON (uur::NativeCPU{});
107+
108+ size_t property_size = 0 ;
109+ ur_usm_alloc_info_t property_name = UR_USM_ALLOC_INFO_DEVICE;
110+
111+ ASSERT_SUCCESS_OR_OPTIONAL_QUERY (
112+ urUSMGetMemAllocInfo (context, ptr, property_name, 0 , nullptr ,
113+ &property_size),
114+ property_name);
115+ ASSERT_EQ (sizeof (ur_device_handle_t ), property_size);
116+
117+ ur_device_handle_t returned_device = nullptr ;
118+ ASSERT_SUCCESS (urUSMGetMemAllocInfo (
119+ context, ptr, property_name, property_size, &returned_device, nullptr ));
120+
121+ ASSERT_EQ (returned_device, device);
122+ }
123+
124+ TEST_P (urUSMGetMemAllocInfoTest, InvalidNullHandleContext) {
125+ UUR_KNOWN_FAILURE_ON (uur::NativeCPU{});
126+
127+ ur_usm_type_t USMType = UR_USM_TYPE_FORCE_UINT32;
128+ ASSERT_EQ_RESULT (
129+ UR_RESULT_ERROR_INVALID_NULL_HANDLE,
130+ urUSMGetMemAllocInfo (nullptr , ptr, UR_USM_ALLOC_INFO_FORCE_UINT32,
131+ sizeof (ur_usm_type_t ), &USMType, nullptr ));
115132}
116133
117- TEST_P (urUSMGetMemAllocInfoNegativeTest , InvalidNullPointerMem) {
134+ TEST_P (urUSMGetMemAllocInfoTest , InvalidNullPointerMem) {
118135 UUR_KNOWN_FAILURE_ON (uur::NativeCPU{});
119136
120- ur_usm_type_t USMType;
137+ ur_usm_type_t USMType = UR_USM_TYPE_FORCE_UINT32 ;
121138 ASSERT_EQ_RESULT (
122139 UR_RESULT_ERROR_INVALID_NULL_POINTER,
123- urUSMGetMemAllocInfo (context, nullptr , UR_USM_ALLOC_INFO_TYPE ,
140+ urUSMGetMemAllocInfo (context, nullptr , UR_USM_ALLOC_INFO_FORCE_UINT32 ,
124141 sizeof (ur_usm_type_t ), &USMType, nullptr ));
125142}
126143
127- TEST_P (urUSMGetMemAllocInfoNegativeTest , InvalidEnumeration) {
144+ TEST_P (urUSMGetMemAllocInfoTest , InvalidEnumeration) {
128145 UUR_KNOWN_FAILURE_ON (uur::NativeCPU{});
129146
130- ur_usm_type_t USMType;
147+ ur_usm_type_t USMType = UR_USM_TYPE_FORCE_UINT32 ;
131148 ASSERT_EQ_RESULT (
132149 UR_RESULT_ERROR_INVALID_ENUMERATION,
133150 urUSMGetMemAllocInfo (context, ptr, UR_USM_ALLOC_INFO_FORCE_UINT32,
134151 sizeof (ur_usm_type_t ), &USMType, nullptr ));
135152}
136153
137- TEST_P (urUSMGetMemAllocInfoNegativeTest , InvalidValuePropSize) {
154+ TEST_P (urUSMGetMemAllocInfoTest , InvalidValuePropSize) {
138155 UUR_KNOWN_FAILURE_ON (uur::NativeCPU{});
139156
140- ur_usm_type_t USMType;
157+ ur_usm_type_t USMType = UR_USM_TYPE_FORCE_UINT32 ;
141158 ASSERT_EQ_RESULT (UR_RESULT_ERROR_INVALID_SIZE,
142159 urUSMGetMemAllocInfo (context, ptr, UR_USM_ALLOC_INFO_TYPE,
143160 sizeof (ur_usm_type_t ) - 1 , &USMType,
0 commit comments