Skip to content

Commit c7bf3d6

Browse files
committed
[CTS] Add mapping tests for host alloc
1 parent 4db517d commit c7bf3d6

File tree

1 file changed

+51
-0
lines changed

1 file changed

+51
-0
lines changed

test/conformance/enqueue/urEnqueueMemBufferMap.cpp

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,57 @@ TEST_P(urEnqueueMemBufferMapTest, SuccessPartialMap) {
9999
}
100100
}
101101

102+
TEST_P(urEnqueueMemBufferMapTest, SuccesPinnedRead) {
103+
const size_t memSize = sizeof(int);
104+
const int value = 20;
105+
106+
ur_mem_handle_t memObj;
107+
ASSERT_SUCCESS(urMemBufferCreate(
108+
context, UR_MEM_FLAG_READ_WRITE | UR_MEM_FLAG_ALLOC_HOST_POINTER,
109+
memSize, nullptr, &memObj));
110+
111+
ASSERT_SUCCESS(urEnqueueMemBufferWrite(queue, memObj, true, 0, sizeof(int),
112+
&value, 0, nullptr, nullptr));
113+
114+
int *host_ptr = nullptr;
115+
ASSERT_SUCCESS(urEnqueueMemBufferMap(queue, memObj, true, UR_MAP_FLAG_READ,
116+
0, sizeof(int), 0, nullptr, nullptr,
117+
(void **)&host_ptr));
118+
119+
ASSERT_EQ(*host_ptr, value);
120+
ASSERT_SUCCESS(
121+
urEnqueueMemUnmap(queue, memObj, host_ptr, 0, nullptr, nullptr));
122+
123+
ASSERT_SUCCESS(urMemRelease(memObj));
124+
}
125+
126+
TEST_P(urEnqueueMemBufferMapTest, SuccesPinnedWrite) {
127+
const size_t memSize = sizeof(int);
128+
const int value = 30;
129+
130+
ur_mem_handle_t memObj;
131+
ASSERT_SUCCESS(urMemBufferCreate(
132+
context, UR_MEM_FLAG_READ_WRITE | UR_MEM_FLAG_ALLOC_HOST_POINTER,
133+
memSize, nullptr, &memObj));
134+
135+
int *host_ptr = nullptr;
136+
ASSERT_SUCCESS(urEnqueueMemBufferMap(queue, memObj, true, UR_MAP_FLAG_WRITE,
137+
0, sizeof(int), 0, nullptr, nullptr,
138+
(void **)&host_ptr));
139+
140+
*host_ptr = value;
141+
142+
ASSERT_SUCCESS(
143+
urEnqueueMemUnmap(queue, memObj, host_ptr, 0, nullptr, nullptr));
144+
145+
int read_value = 0;
146+
ASSERT_SUCCESS(urEnqueueMemBufferRead(queue, memObj, true, 0, sizeof(int),
147+
&read_value, 0, nullptr, nullptr));
148+
149+
ASSERT_EQ(read_value, value);
150+
ASSERT_SUCCESS(urMemRelease(memObj));
151+
}
152+
102153
TEST_P(urEnqueueMemBufferMapTest, SuccessMultiMaps) {
103154
const std::vector<uint32_t> input(count, 0);
104155
ASSERT_SUCCESS(urEnqueueMemBufferWrite(queue, buffer, true, 0, size,

0 commit comments

Comments
 (0)