@@ -98,9 +98,40 @@ TEST_P(urEventWaitNegativeTest, InvalidNullPointerEventList) {
98
98
urEventWait (1 , nullptr ));
99
99
}
100
100
101
- TEST_P (urEventWaitTest, WithMultipleContexts ) {
101
+ TEST_P (urEventWaitTest, WaitWithMultipleContexts ) {
102
102
UUR_KNOWN_FAILURE_ON (uur::NativeCPU{});
103
103
104
+ for (size_t i = 0 ; i < maxNumContexts; i++) {
105
+ ASSERT_SUCCESS (urEnqueueMemBufferCopy (queues[i], src_buffer[i],
106
+ dst_buffer[i], 0 , 0 , size, 0 , nullptr ,
107
+ nullptr ));
108
+ }
109
+
110
+ std::vector<ur_event_handle_t > events;
111
+ std::vector<std::vector<uint32_t >> output;
112
+ for (size_t i = 0 ; i < maxNumContexts; i++) {
113
+ output.emplace_back (count, 1 );
114
+ events.emplace_back ();
115
+ ASSERT_SUCCESS (urEnqueueMemBufferRead (queues[i], dst_buffer[i], false , 0 ,
116
+ size, output[i].data (), 0 , nullptr ,
117
+ &events.back ()));
118
+ }
119
+
120
+ ASSERT_SUCCESS (
121
+ urEventWait (static_cast <uint32_t >(events.size ()), events.data ()));
122
+
123
+ for (size_t i = 0 ; i < maxNumContexts; i++) {
124
+ ASSERT_EQ (input[i], output[i]);
125
+ }
126
+
127
+ for (auto &event : events) {
128
+ EXPECT_SUCCESS (urEventRelease (event));
129
+ }
130
+ }
131
+
132
+ TEST_P (urEventWaitTest, WithCrossContextDependencies) {
133
+ UUR_KNOWN_FAILURE_ON (uur::NativeCPU{}, uur::OpenCL{});
134
+
104
135
std::vector<uint32_t > output (count, 1 );
105
136
106
137
std::vector<ur_event_handle_t > events;
0 commit comments