@@ -100,3 +100,32 @@ TEST(SubDevicesTest, givenSubDeviceWhenOsContextIsCreatedThenItsBitfieldBasesOnS
100100 EXPECT_EQ (firstSubDeviceMask, static_cast <uint32_t >(firstSubDevice->getDefaultEngine ().osContext ->getDeviceBitfield ().to_ulong ()));
101101 EXPECT_EQ (secondSubDeviceMask, static_cast <uint32_t >(secondSubDevice->getDefaultEngine ().osContext ->getDeviceBitfield ().to_ulong ()));
102102}
103+
104+ TEST (SubDevicesTest, givenDeviceWithoutSubDevicesWhenGettingDeviceByIdZeroThenGetThisDevice) {
105+ auto device = std::unique_ptr<MockDevice>(MockDevice::createWithNewExecutionEnvironment<MockDevice>(*platformDevices));
106+
107+ EXPECT_EQ (1u , device->getNumAvailableDevices ());
108+ EXPECT_EQ (device.get (), device->getDeviceById (0u ));
109+ EXPECT_THROW (device->getDeviceById (1 ), std::exception);
110+ }
111+
112+ TEST (SubDevicesTest, givenDeviceWithSubDevicesWhenGettingDeviceByIdThenGetCorrectSubDevice) {
113+ DebugManagerStateRestore restorer;
114+ DebugManager.flags .CreateMultipleSubDevices .set (2 );
115+ auto device = std::unique_ptr<MockDevice>(MockDevice::createWithNewExecutionEnvironment<MockDevice>(*platformDevices));
116+ EXPECT_EQ (2u , device->getNumSubDevices ());
117+ EXPECT_EQ (device->subdevices .at (0 ).get (), device->getDeviceById (0 ));
118+ EXPECT_EQ (device->subdevices .at (1 ).get (), device->getDeviceById (1 ));
119+ EXPECT_THROW (device->getDeviceById (2 ), std::exception);
120+ }
121+
122+ TEST (SubDevicesTest, givenSubDevicesWhenGettingDeviceByIdZeroThenGetThisSubDevice) {
123+ DebugManagerStateRestore restorer;
124+ DebugManager.flags .CreateMultipleSubDevices .set (2 );
125+ auto device = std::unique_ptr<MockDevice>(MockDevice::createWithNewExecutionEnvironment<MockDevice>(*platformDevices));
126+ EXPECT_EQ (2u , device->getNumSubDevices ());
127+ auto subDevice = device->subdevices .at (0 ).get ();
128+
129+ EXPECT_EQ (subDevice, subDevice->getDeviceById (0 ));
130+ EXPECT_THROW (subDevice->getDeviceById (1 ), std::exception);
131+ }
0 commit comments