@@ -99,6 +99,57 @@ TEST_P(urEnqueueMemBufferMapTest, SuccessPartialMap) {
99
99
}
100
100
}
101
101
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
+
102
153
TEST_P (urEnqueueMemBufferMapTest, SuccessMultiMaps) {
103
154
const std::vector<uint32_t > input (count, 0 );
104
155
ASSERT_SUCCESS (urEnqueueMemBufferWrite (queue, buffer, true , 0 , size,
0 commit comments