@@ -16,6 +16,10 @@ struct urMultiDeviceContextTest : uur::urPlatformTest {
1616 ASSERT_SUCCESS (urDeviceGet (platform, UR_DEVICE_TYPE_ALL, 0 , nullptr ,
1717 &num_devices));
1818 ASSERT_NE (num_devices, 0 );
19+ if (num_devices == 1 ) {
20+ return ;
21+ }
22+
1923 devices = std::vector<ur_device_handle_t >(num_devices);
2024 ASSERT_SUCCESS (urDeviceGet (platform, UR_DEVICE_TYPE_ALL, num_devices,
2125 devices.data (), nullptr ));
@@ -31,11 +35,14 @@ struct urMultiDeviceContextTest : uur::urPlatformTest {
3135
3236 void TearDown () {
3337 uur::urPlatformTest::TearDown ();
34- urContextRelease (context);
38+ if (num_devices == 1 ) {
39+ return ;
40+ }
3541 for (auto i = 0u ; i < num_devices; ++i) {
36- urQueueRelease (queues[i]);
3742 urDeviceRelease (devices[i]);
43+ urQueueRelease (queues[i]);
3844 }
45+ urContextRelease (context);
3946 }
4047
4148 uint32_t num_devices = 0 ;
@@ -47,6 +54,9 @@ struct urMultiDeviceContextTest : uur::urPlatformTest {
4754struct urMultiDeviceContextMemBufferTest : urMultiDeviceContextTest {
4855 void SetUp () {
4956 urMultiDeviceContextTest::SetUp ();
57+ if (num_devices == 1 ) {
58+ return ;
59+ }
5060 ASSERT_SUCCESS (urMemBufferCreate (context, 0 /* flags=*/ ,
5161 buffer_size_bytes,
5262 nullptr /* pProperties=*/ , &buffer));
@@ -116,10 +126,13 @@ struct urMultiDeviceContextMemBufferTest : urMultiDeviceContextTest {
116126 }
117127
118128 void TearDown () {
119- for (auto i = 0u ; i < num_devices; ++i) {
120- ASSERT_SUCCESS (urProgramRelease (programs[i]));
129+ if (num_devices > 1 ) {
130+ for (auto i = 0u ; i < num_devices; ++i) {
131+ ASSERT_SUCCESS (urKernelRelease (kernels[i]));
132+ ASSERT_SUCCESS (urProgramRelease (programs[i]));
133+ }
134+ urMemRelease (buffer);
121135 }
122- urMemRelease (buffer);
123136 urMultiDeviceContextTest::TearDown ();
124137 }
125138
0 commit comments