@@ -16,6 +16,10 @@ struct urMultiDeviceContextTest : uur::urPlatformTest {
16
16
ASSERT_SUCCESS (urDeviceGet (platform, UR_DEVICE_TYPE_ALL, 0 , nullptr ,
17
17
&num_devices));
18
18
ASSERT_NE (num_devices, 0 );
19
+ if (num_devices == 1 ) {
20
+ return ;
21
+ }
22
+
19
23
devices = std::vector<ur_device_handle_t >(num_devices);
20
24
ASSERT_SUCCESS (urDeviceGet (platform, UR_DEVICE_TYPE_ALL, num_devices,
21
25
devices.data (), nullptr ));
@@ -31,11 +35,14 @@ struct urMultiDeviceContextTest : uur::urPlatformTest {
31
35
32
36
void TearDown () {
33
37
uur::urPlatformTest::TearDown ();
34
- urContextRelease (context);
38
+ if (num_devices == 1 ) {
39
+ return ;
40
+ }
35
41
for (auto i = 0u ; i < num_devices; ++i) {
36
- urQueueRelease (queues[i]);
37
42
urDeviceRelease (devices[i]);
43
+ urQueueRelease (queues[i]);
38
44
}
45
+ urContextRelease (context);
39
46
}
40
47
41
48
uint32_t num_devices = 0 ;
@@ -47,6 +54,9 @@ struct urMultiDeviceContextTest : uur::urPlatformTest {
47
54
struct urMultiDeviceContextMemBufferTest : urMultiDeviceContextTest {
48
55
void SetUp () {
49
56
urMultiDeviceContextTest::SetUp ();
57
+ if (num_devices == 1 ) {
58
+ return ;
59
+ }
50
60
ASSERT_SUCCESS (urMemBufferCreate (context, 0 /* flags=*/ ,
51
61
buffer_size_bytes,
52
62
nullptr /* pProperties=*/ , &buffer));
@@ -116,10 +126,13 @@ struct urMultiDeviceContextMemBufferTest : urMultiDeviceContextTest {
116
126
}
117
127
118
128
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);
121
135
}
122
- urMemRelease (buffer);
123
136
urMultiDeviceContextTest::TearDown ();
124
137
}
125
138
0 commit comments