@@ -316,3 +316,49 @@ TEST_F(TestDPCTLDeviceMgrNullReference, ChkGetPositionInDevices)
316
316
EXPECT_NO_FATAL_FAILURE (
317
317
DPCTLDeviceMgr_GetPositionInDevices (nullDRef, mask));
318
318
}
319
+
320
+ struct TestDPCTLGetCompositeDevices : public ::testing::Test
321
+ {
322
+ DPCTLDeviceVectorRef DV = nullptr ;
323
+ size_t nDevices = 0 ;
324
+
325
+ TestDPCTLGetCompositeDevices ()
326
+ {
327
+ EXPECT_NO_FATAL_FAILURE (DV = DPCTLDeviceMgr_GetCompositeDevices ());
328
+ EXPECT_TRUE (DV != nullptr );
329
+ EXPECT_NO_FATAL_FAILURE (nDevices = DPCTLDeviceVector_Size (DV));
330
+ }
331
+
332
+ void SetUp ()
333
+ {
334
+ if (!nDevices) {
335
+ GTEST_SKIP_ (" Skipping as no composite devices available" );
336
+ }
337
+ }
338
+
339
+ ~TestDPCTLGetCompositeDevices ()
340
+ {
341
+ EXPECT_NO_FATAL_FAILURE (DPCTLDeviceVector_Clear (DV));
342
+ EXPECT_NO_FATAL_FAILURE (DPCTLDeviceVector_Delete (DV));
343
+ }
344
+ };
345
+
346
+ TEST_F (TestDPCTLGetCompositeDevices, ChkGetAt)
347
+ {
348
+ for (auto i = 0ul ; i < nDevices; ++i) {
349
+ DPCTLSyclDeviceRef DRef = nullptr ;
350
+ EXPECT_NO_FATAL_FAILURE (DRef = DPCTLDeviceVector_GetAt (DV, i));
351
+ ASSERT_TRUE (DRef != nullptr );
352
+ }
353
+ }
354
+
355
+ TEST_F (TestDPCTLGetCompositeDevices, ChkCompositeAspect)
356
+ {
357
+ for (auto i = 0ul ; i < nDevices; ++i) {
358
+ DPCTLSyclDeviceRef DRef = nullptr ;
359
+ EXPECT_NO_FATAL_FAILURE (DRef = DPCTLDeviceVector_GetAt (DV, i));
360
+ ASSERT_TRUE (DRef != nullptr );
361
+ ASSERT_TRUE (
362
+ DPCTLDevice_HasAspect (DRef, DPCTLSyclAspectType::is_composite));
363
+ }
364
+ }
0 commit comments