@@ -88,3 +88,35 @@ TEST_P(urCudaEnqueueNativeCommandTest, Dependencies) {
88
88
ASSERT_EQ (i, val);
89
89
}
90
90
}
91
+
92
+ TEST_P (urCudaEnqueueNativeCommandTest, DependenciesURBefore) {
93
+ ur_event_handle_t event_1, event_2;
94
+
95
+ ASSERT_SUCCESS (urEnqueueUSMFill (queue, device_ptr, sizeof (val), &val,
96
+ allocation_size, 0 ,
97
+ nullptr /* phEventWaitList=*/ , &event_1));
98
+
99
+ InteropData2 data_2{device_ptr, host_vec.data ()};
100
+ ASSERT_SUCCESS (urEnqueueNativeCommandExp (
101
+ queue, &interop_func_2, &data_2, 0 , nullptr /* phMemList=*/ ,
102
+ nullptr /* pProperties=*/ , 1 , &event_1, &event_2));
103
+ urQueueFinish (queue);
104
+ for (auto &i : host_vec) {
105
+ ASSERT_EQ (i, val);
106
+ }
107
+ }
108
+
109
+ TEST_P (urCudaEnqueueNativeCommandTest, DependenciesURAfter) {
110
+ ur_event_handle_t event_1;
111
+
112
+ InteropData1 data_1{device_ptr};
113
+ ASSERT_SUCCESS (urEnqueueNativeCommandExp (
114
+ queue, &interop_func_1, &data_1, 0 , nullptr /* phMemList=*/ ,
115
+ nullptr /* pProperties=*/ , 0 , nullptr /* phEventWaitList=*/ , &event_1));
116
+
117
+ urEnqueueUSMMemcpy (queue, /* blocking*/ true , host_vec.data (), device_ptr,
118
+ allocation_size, 1 , &event_1, nullptr );
119
+ for (auto &i : host_vec) {
120
+ ASSERT_EQ (i, val);
121
+ }
122
+ }
0 commit comments