@@ -32,8 +32,6 @@ thread_local int urIPCGetMemHandleExp_counter = 0;
3232thread_local int urIPCPutMemHandleExp_counter = 0 ;
3333thread_local int urIPCOpenMemHandleExp_counter = 0 ;
3434thread_local int urIPCCloseMemHandleExp_counter = 0 ;
35- thread_local int urIPCCreateMemHandleFromDataExp_counter = 0 ;
36- thread_local int urIPCDestroyMemHandleExp_counter = 0 ;
3735thread_local int urIPCGetMemHandleDataExp_counter = 0 ;
3836
3937ur_result_t replace_urIPCGetMemHandleExp (void *pParams) {
@@ -54,7 +52,8 @@ ur_result_t replace_urIPCPutMemHandleExp(void *pParams) {
5452ur_result_t replace_urIPCOpenMemHandleExp (void *pParams) {
5553 ++urIPCOpenMemHandleExp_counter;
5654 auto params = *static_cast <ur_ipc_open_mem_handle_exp_params_t *>(pParams);
57- EXPECT_EQ (*params.phIPCMem , DummyMemHandle);
55+ EXPECT_EQ (*params.pipcMemHandleData , DummyHandleData);
56+ EXPECT_EQ (*params.pipcMemHandleDataSize , DummyHandleDataSize);
5857 **params.pppMem = DummyPtr;
5958 return UR_RESULT_SUCCESS;
6059}
@@ -66,23 +65,6 @@ ur_result_t replace_urIPCCloseMemHandleExp(void *pParams) {
6665 return UR_RESULT_SUCCESS;
6766}
6867
69- ur_result_t replace_urIPCCreateMemHandleFromDataExp (void *pParams) {
70- ++urIPCCreateMemHandleFromDataExp_counter;
71- auto params =
72- *static_cast <ur_ipc_create_mem_handle_from_data_exp_params_t *>(pParams);
73- EXPECT_EQ (*params.pipcMemHandleData , DummyHandleData);
74- EXPECT_EQ (*params.pipcMemHandleDataSize , DummyHandleDataSize);
75- **params.pphIPCMem = DummyMemHandle;
76- return UR_RESULT_SUCCESS;
77- }
78-
79- ur_result_t replace_urIPCDestroyMemHandleExp (void *pParams) {
80- ++urIPCDestroyMemHandleExp_counter;
81- auto params = *static_cast <ur_ipc_destroy_mem_handle_exp_params_t *>(pParams);
82- EXPECT_EQ (*params.phIPCMem , DummyMemHandle);
83- return UR_RESULT_SUCCESS;
84- }
85-
8668ur_result_t replace_urIPCGetMemHandleDataExp (void *pParams) {
8769 ++urIPCGetMemHandleDataExp_counter;
8870 auto params =
@@ -103,8 +85,6 @@ class IPCTests : public ::testing::Test {
10385 urIPCPutMemHandleExp_counter = 0 ;
10486 urIPCOpenMemHandleExp_counter = 0 ;
10587 urIPCCloseMemHandleExp_counter = 0 ;
106- urIPCCreateMemHandleFromDataExp_counter = 0 ;
107- urIPCDestroyMemHandleExp_counter = 0 ;
10888 urIPCGetMemHandleDataExp_counter = 0 ;
10989
11090 mock::getCallbacks ().set_replace_callback (" urIPCGetMemHandleExp" ,
@@ -115,11 +95,6 @@ class IPCTests : public ::testing::Test {
11595 replace_urIPCOpenMemHandleExp);
11696 mock::getCallbacks ().set_replace_callback (" urIPCCloseMemHandleExp" ,
11797 replace_urIPCCloseMemHandleExp);
118- mock::getCallbacks ().set_replace_callback (
119- " urIPCCreateMemHandleFromDataExp" ,
120- replace_urIPCCreateMemHandleFromDataExp);
121- mock::getCallbacks ().set_replace_callback (" urIPCDestroyMemHandleExp" ,
122- replace_urIPCDestroyMemHandleExp);
12398 mock::getCallbacks ().set_replace_callback (" urIPCGetMemHandleDataExp" ,
12499 replace_urIPCGetMemHandleDataExp);
125100 }
@@ -137,11 +112,9 @@ TEST_F(IPCTests, IPCGetPut) {
137112 EXPECT_EQ (urIPCPutMemHandleExp_counter, 0 );
138113 EXPECT_EQ (urIPCOpenMemHandleExp_counter, 0 );
139114 EXPECT_EQ (urIPCCloseMemHandleExp_counter, 0 );
140- EXPECT_EQ (urIPCCreateMemHandleFromDataExp_counter, 0 );
141- EXPECT_EQ (urIPCDestroyMemHandleExp_counter, 0 );
142115 EXPECT_EQ (urIPCGetMemHandleDataExp_counter, 0 );
143116
144- sycl::span< const char , sycl::dynamic_extent> IPCMemHandleData =
117+ syclexp:: ipc_memory_handle_data_t IPCMemHandleData =
145118 IPCMem.get_handle_data ();
146119 EXPECT_EQ (IPCMemHandleData.data (), DummyHandleData);
147120 EXPECT_EQ (IPCMemHandleData.size (), DummyHandleDataSize);
@@ -151,8 +124,6 @@ TEST_F(IPCTests, IPCGetPut) {
151124 EXPECT_EQ (urIPCPutMemHandleExp_counter, 0 );
152125 EXPECT_EQ (urIPCOpenMemHandleExp_counter, 0 );
153126 EXPECT_EQ (urIPCCloseMemHandleExp_counter, 0 );
154- EXPECT_EQ (urIPCCreateMemHandleFromDataExp_counter, 0 );
155- EXPECT_EQ (urIPCDestroyMemHandleExp_counter, 0 );
156127 EXPECT_EQ (urIPCGetMemHandleDataExp_counter, 1 );
157128 }
158129
@@ -162,52 +133,31 @@ TEST_F(IPCTests, IPCGetPut) {
162133 EXPECT_EQ (urIPCPutMemHandleExp_counter, 1 );
163134 EXPECT_EQ (urIPCOpenMemHandleExp_counter, 0 );
164135 EXPECT_EQ (urIPCCloseMemHandleExp_counter, 0 );
165- EXPECT_EQ (urIPCCreateMemHandleFromDataExp_counter, 0 );
166- EXPECT_EQ (urIPCDestroyMemHandleExp_counter, 0 );
167136 EXPECT_EQ (urIPCGetMemHandleDataExp_counter, 1 );
168137}
169138
170139TEST_F (IPCTests, IPCOpenClose) {
171- {
172- sycl::span<const char , sycl::dynamic_extent> HandleData{
173- DummyHandleData, DummyHandleDataSize};
174- syclexp::ipc_memory IPCMem{HandleData, Ctxt, Ctxt.get_devices ()[0 ]};
175- EXPECT_EQ (IPCMem.get_ptr (), DummyPtr);
176-
177- // Creating the IPC memory from handle data should first re-create the
178- // handle and then call open on it.
179- EXPECT_EQ (urIPCGetMemHandleExp_counter, 0 );
180- EXPECT_EQ (urIPCPutMemHandleExp_counter, 0 );
181- EXPECT_EQ (urIPCOpenMemHandleExp_counter, 1 );
182- EXPECT_EQ (urIPCCloseMemHandleExp_counter, 0 );
183- EXPECT_EQ (urIPCCreateMemHandleFromDataExp_counter, 1 );
184- EXPECT_EQ (urIPCDestroyMemHandleExp_counter, 0 );
185- EXPECT_EQ (urIPCGetMemHandleDataExp_counter, 0 );
140+ syclexp::ipc_memory_handle_data_t HandleData{DummyHandleData,
141+ DummyHandleDataSize};
142+ void *Ptr =
143+ syclexp::ipc_memory::open (HandleData, Ctxt, Ctxt.get_devices ()[0 ]);
144+ EXPECT_EQ (Ptr, DummyPtr);
186145
187- sycl::span<const char , sycl::dynamic_extent> IPCMemHandleData =
188- IPCMem.get_handle_data ();
189- EXPECT_EQ (IPCMemHandleData.data (), DummyHandleData);
190- EXPECT_EQ (IPCMemHandleData.size (), DummyHandleDataSize);
146+ // Opening an IPC handle should call open.
147+ EXPECT_EQ (urIPCGetMemHandleExp_counter, 0 );
148+ EXPECT_EQ (urIPCPutMemHandleExp_counter, 0 );
149+ EXPECT_EQ (urIPCOpenMemHandleExp_counter, 1 );
150+ EXPECT_EQ (urIPCCloseMemHandleExp_counter, 0 );
151+ EXPECT_EQ (urIPCGetMemHandleDataExp_counter, 0 );
191152
192- // Getting the underlying data should call the backend.
193- EXPECT_EQ (urIPCGetMemHandleExp_counter, 0 );
194- EXPECT_EQ (urIPCPutMemHandleExp_counter, 0 );
195- EXPECT_EQ (urIPCOpenMemHandleExp_counter, 1 );
196- EXPECT_EQ (urIPCCloseMemHandleExp_counter, 0 );
197- EXPECT_EQ (urIPCCreateMemHandleFromDataExp_counter, 1 );
198- EXPECT_EQ (urIPCDestroyMemHandleExp_counter, 0 );
199- EXPECT_EQ (urIPCGetMemHandleDataExp_counter, 1 );
200- }
153+ syclexp::ipc_memory::close (Ptr, Ctxt);
201154
202- // When the IPC memory object dies, it should release the handle, calling
203- // "close" and then destroying it.
155+ // When we close an IPC memory pointer, it should call close.
204156 EXPECT_EQ (urIPCGetMemHandleExp_counter, 0 );
205157 EXPECT_EQ (urIPCPutMemHandleExp_counter, 0 );
206158 EXPECT_EQ (urIPCOpenMemHandleExp_counter, 1 );
207159 EXPECT_EQ (urIPCCloseMemHandleExp_counter, 1 );
208- EXPECT_EQ (urIPCCreateMemHandleFromDataExp_counter, 1 );
209- EXPECT_EQ (urIPCDestroyMemHandleExp_counter, 1 );
210- EXPECT_EQ (urIPCGetMemHandleDataExp_counter, 1 );
160+ EXPECT_EQ (urIPCGetMemHandleDataExp_counter, 0 );
211161}
212162
213163} // namespace
0 commit comments