@@ -153,11 +153,15 @@ struct TTestEnv
153153 }
154154};
155155
156- TTestEnv CreateTestEnv (IBlockStorePtr service)
156+ TTestEnv CreateTestEnv (
157+ IBlockStorePtr service,
158+ bool connectionMonitoringEnabled = true )
157159{
158160 auto server = std::make_shared<TTestServer>();
159161
160162 NProto::TRdmaTarget rdmaTargetProto;
163+ rdmaTargetProto.SetConnectionMonitoringEnabled (connectionMonitoringEnabled);
164+
161165 auto config =
162166 std::make_shared<TBlockstoreServerRdmaTargetConfig>(rdmaTargetProto);
163167
@@ -181,22 +185,25 @@ TTestEnv CreateTestEnv(IBlockStorePtr service)
181185 std::move (target)};
182186}
183187
184- NMonitoring::TIndexMonPage* FindRootPage (const IMonitoringServicePtr& monitoring)
188+ NMonitoring::IMonPage* FindRdmaTargetPage (
189+ const IMonitoringServicePtr& monitoring)
185190{
186191 auto rootPage = monitoring->GetMonPage (" blockstore" );
187- UNIT_ASSERT (rootPage);
192+ if (!rootPage) {
193+ return nullptr ;
194+ }
188195
189196 auto * indexPage =
190197 dynamic_cast <NMonitoring::TIndexMonPage*>(rootPage.Get ());
191198 UNIT_ASSERT (indexPage);
192199
193- return indexPage;
200+ return indexPage-> FindPage ( " RdmaTarget " ) ;
194201}
195202
196203TString RenderMonPage (const IMonitoringServicePtr& monitoring)
197204{
198205 auto * page = dynamic_cast <NMonitoring::THtmlMonPage*>(
199- FindRootPage (monitoring)-> FindPage ( " RdmaTarget " ));
206+ FindRdmaTargetPage (monitoring));
200207 UNIT_ASSERT (page);
201208
202209 TStringStream out;
@@ -506,7 +513,23 @@ Y_UNIT_TEST_SUITE(TRequestHandlerTest)
506513 auto service = std::make_shared<TTestService>();
507514 auto env = CreateTestEnv (service);
508515
509- UNIT_ASSERT (FindRootPage (env.Monitoring )->FindPage (" RdmaTarget" ));
516+ UNIT_ASSERT (FindRdmaTargetPage (env.Monitoring ));
517+
518+ env.Target ->Stop ();
519+ }
520+
521+ Y_UNIT_TEST (ShouldNotTrackConnectionsWhenMonitoringIsDisabled)
522+ {
523+ auto service = std::make_shared<TTestService>();
524+ auto env = CreateTestEnv (service, false );
525+ auto handler = env.GetHandler ();
526+
527+ UNIT_ASSERT (!FindRdmaTargetPage (env.Monitoring ));
528+
529+ // the handler still has to survive the connection events
530+ TTestSession session (4242 );
531+ handler->OnSessionCreated (session);
532+ handler->OnSessionClosed (session.GetId ());
510533
511534 env.Target ->Stop ();
512535 }
0 commit comments