@@ -175,29 +175,36 @@ TEST(ExecutionEnvironment, givenExecutionEnvironmentWhenInitializeMemoryManagerI
175175 executionEnvironment->initializeMemoryManager (false , false , 0 , 0 );
176176 EXPECT_NE (nullptr , executionEnvironment->memoryManager );
177177}
178- static_assert (sizeof (ExecutionEnvironment) == sizeof (std::vector<std::unique_ptr<CommandStreamReceiver>>) + sizeof (std::mutex) + (is64bit ? 80 : 44 ), " New members detected in ExecutionEnvironment, please ensure that destruction sequence of objects is correct" );
178+ static_assert (sizeof (ExecutionEnvironment) == sizeof (std::vector<std::unique_ptr<CommandStreamReceiver>>) +
179+ sizeof (std::unique_ptr<CommandStreamReceiver>) +
180+ sizeof (std::mutex) +
181+ (is64bit ? 80 : 44 ),
182+ " New members detected in ExecutionEnvironment, please ensure that destruction sequence of objects is correct" );
179183
180184TEST (ExecutionEnvironment, givenExecutionEnvironmentWithVariousMembersWhenItIsDestroyedThenDeleteSequenceIsSpecified) {
181185 uint32_t destructorId = 0u ;
182186
183187 struct MockExecutionEnvironment : ExecutionEnvironment {
184188 using ExecutionEnvironment::gmmHelper;
185189 };
186- struct GmmHelperMock : public DestructorCounted <GmmHelper, 7 > {
190+ struct GmmHelperMock : public DestructorCounted <GmmHelper, 8 > {
187191 GmmHelperMock (uint32_t &destructorId, const HardwareInfo *hwInfo) : DestructorCounted(destructorId, hwInfo) {}
188192 };
189- struct OsInterfaceMock : public DestructorCounted <OSInterface, 6 > {
193+ struct OsInterfaceMock : public DestructorCounted <OSInterface, 7 > {
190194 OsInterfaceMock (uint32_t &destructorId) : DestructorCounted(destructorId) {}
191195 };
192- struct MemoryMangerMock : public DestructorCounted <MockMemoryManager, 5 > {
196+ struct MemoryMangerMock : public DestructorCounted <MockMemoryManager, 6 > {
193197 MemoryMangerMock (uint32_t &destructorId) : DestructorCounted(destructorId) {}
194198 };
195- struct AubCenterMock : public DestructorCounted <AubCenter, 4 > {
199+ struct AubCenterMock : public DestructorCounted <AubCenter, 5 > {
196200 AubCenterMock (uint32_t &destructorId) : DestructorCounted(destructorId, platformDevices[0 ], false , " " , CommandStreamReceiverType::CSR_AUB) {}
197201 };
198- struct CommandStreamReceiverMock : public DestructorCounted <MockCommandStreamReceiver, 3 > {
202+ struct CommandStreamReceiverMock : public DestructorCounted <MockCommandStreamReceiver, 4 > {
199203 CommandStreamReceiverMock (uint32_t &destructorId, ExecutionEnvironment &executionEnvironment) : DestructorCounted(destructorId, executionEnvironment) {}
200204 };
205+ struct SpecialCommandStreamReceiverMock : public DestructorCounted <MockCommandStreamReceiver, 3 > {
206+ SpecialCommandStreamReceiverMock (uint32_t &destructorId, ExecutionEnvironment &executionEnvironment) : DestructorCounted(destructorId, executionEnvironment) {}
207+ };
201208 struct BuiltinsMock : public DestructorCounted <BuiltIns, 2 > {
202209 BuiltinsMock (uint32_t &destructorId) : DestructorCounted(destructorId) {}
203210 };
@@ -215,12 +222,13 @@ TEST(ExecutionEnvironment, givenExecutionEnvironmentWithVariousMembersWhenItIsDe
215222 executionEnvironment->memoryManager = std::make_unique<MemoryMangerMock>(destructorId);
216223 executionEnvironment->aubCenter = std::make_unique<AubCenterMock>(destructorId);
217224 executionEnvironment->commandStreamReceivers [0 ].push_back (std::make_unique<CommandStreamReceiverMock>(destructorId, *executionEnvironment));
225+ executionEnvironment->specialCommandStreamReceiver = std::make_unique<SpecialCommandStreamReceiverMock>(destructorId, *executionEnvironment);
218226 executionEnvironment->builtins = std::make_unique<BuiltinsMock>(destructorId);
219227 executionEnvironment->compilerInterface = std::make_unique<CompilerInterfaceMock>(destructorId);
220228 executionEnvironment->sourceLevelDebugger = std::make_unique<SourceLevelDebuggerMock>(destructorId);
221229
222230 executionEnvironment.reset (nullptr );
223- EXPECT_EQ (8u , destructorId);
231+ EXPECT_EQ (9u , destructorId);
224232}
225233
226234TEST (ExecutionEnvironment, givenMultipleDevicesWhenTheyAreCreatedTheyAllReuseTheSameMemoryManagerAndCommandStreamReceiver) {
0 commit comments