| 
					
				 | 
			
			
				@@ -160,14 +160,14 @@ TEST_P(ChannelTracerTest, ComplexTest) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       ChannelTrace::Severity::Info, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       grpc_slice_from_static_string("subchannel one created"), sc1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ValidateChannelTrace(&tracer, 3, GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  AddSimpleTrace(sc1->trace()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  AddSimpleTrace(sc1->trace()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  AddSimpleTrace(sc1->trace()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ValidateChannelTrace(sc1->trace(), 3, GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  AddSimpleTrace(sc1->trace()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  AddSimpleTrace(sc1->trace()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  AddSimpleTrace(sc1->trace()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  ValidateChannelTrace(sc1->trace(), 6, GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  AddSimpleTrace(sc1->counter_and_tracer()->trace()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  AddSimpleTrace(sc1->counter_and_tracer()->trace()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  AddSimpleTrace(sc1->counter_and_tracer()->trace()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ValidateChannelTrace(sc1->counter_and_tracer()->trace(), 3, GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  AddSimpleTrace(sc1->counter_and_tracer()->trace()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  AddSimpleTrace(sc1->counter_and_tracer()->trace()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  AddSimpleTrace(sc1->counter_and_tracer()->trace()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ValidateChannelTrace(sc1->counter_and_tracer()->trace(), 6, GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   AddSimpleTrace(&tracer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   AddSimpleTrace(&tracer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   ValidateChannelTrace(&tracer, 5, GetParam()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -191,55 +191,53 @@ TEST_P(ChannelTracerTest, ComplexTest) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   sc2.reset(nullptr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// // Test a case in which the parent channel has subchannels and the 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// subchannels 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// // have connections. Ensures that everything lives as long as it should then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// // gets deleted. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// TEST_P(ChannelTracerTest, TestNesting) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   grpc_core::ExecCtx exec_ctx; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   ChannelTrace tracer(GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   AddSimpleTrace(&tracer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   AddSimpleTrace(&tracer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   ValidateChannelTrace(&tracer, 2, GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   ChannelFixture channel1(GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   RefCountedPtr<ChannelNode> sc1 = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       MakeRefCounted<ChannelNode>(channel1.channel(), GetParam(), true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   tracer.AddTraceEventReferencingChannel( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       ChannelTrace::Severity::Info, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       grpc_slice_from_static_string("subchannel one created"), sc1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   ValidateChannelTrace(&tracer, 3, GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   AddSimpleTrace(sc1->trace()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   ChannelFixture channel2(GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   RefCountedPtr<ChannelNode> conn1 = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       MakeRefCounted<ChannelNode>(channel2.channel(), GetParam(), true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   // nesting one level deeper. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   sc1->trace()->AddTraceEventReferencingChannel( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       ChannelTrace::Severity::Info, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       grpc_slice_from_static_string("connection one created"), conn1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   ValidateChannelTrace(&tracer, 3, GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   AddSimpleTrace(conn1->trace()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   AddSimpleTrace(&tracer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   AddSimpleTrace(&tracer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   ValidateChannelTrace(&tracer, 5, GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   ValidateChannelTrace(conn1->trace(), 1, GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   ChannelFixture channel3(GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   RefCountedPtr<ChannelNode> sc2 = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       MakeRefCounted<ChannelNode>(channel3.channel(), GetParam(), true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   tracer.AddTraceEventReferencingChannel( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       ChannelTrace::Severity::Info, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       grpc_slice_from_static_string("subchannel two created"), sc2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   // this trace should not get added to the parents children since it is 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   already 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   // present in the tracer. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   tracer.AddTraceEventReferencingChannel( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       ChannelTrace::Severity::Warning, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//       grpc_slice_from_static_string("subchannel one inactive"), sc1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   AddSimpleTrace(&tracer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   ValidateChannelTrace(&tracer, 8, GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   sc1.reset(nullptr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   sc2.reset(nullptr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//   conn1.reset(nullptr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// Test a case in which the parent channel has subchannels and the subchannels 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// have connections. Ensures that everything lives as long as it should then 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// gets deleted. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+TEST_P(ChannelTracerTest, TestNesting) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  grpc_core::ExecCtx exec_ctx; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ChannelTrace tracer(GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  AddSimpleTrace(&tracer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  AddSimpleTrace(&tracer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ValidateChannelTrace(&tracer, 2, GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ChannelFixture channel1(GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  RefCountedPtr<ChannelNode> sc1 = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      MakeRefCounted<ChannelNode>(channel1.channel(), GetParam(), true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  tracer.AddTraceEventReferencingChannel( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ChannelTrace::Severity::Info, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      grpc_slice_from_static_string("subchannel one created"), sc1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ValidateChannelTrace(&tracer, 3, GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  AddSimpleTrace(sc1->counter_and_tracer()->trace()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ChannelFixture channel2(GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  RefCountedPtr<ChannelNode> conn1 = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      MakeRefCounted<ChannelNode>(channel2.channel(), GetParam(), true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // nesting one level deeper. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  sc1->counter_and_tracer()->trace()->AddTraceEventReferencingChannel( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ChannelTrace::Severity::Info, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      grpc_slice_from_static_string("connection one created"), conn1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ValidateChannelTrace(&tracer, 3, GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  AddSimpleTrace(conn1->counter_and_tracer()->trace()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  AddSimpleTrace(&tracer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  AddSimpleTrace(&tracer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ValidateChannelTrace(&tracer, 5, GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ValidateChannelTrace(conn1->counter_and_tracer()->trace(), 1, GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ChannelFixture channel3(GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  RefCountedPtr<ChannelNode> sc2 = 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      MakeRefCounted<ChannelNode>(channel3.channel(), GetParam(), true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  tracer.AddTraceEventReferencingChannel( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ChannelTrace::Severity::Info, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      grpc_slice_from_static_string("subchannel two created"), sc2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // this trace should not get added to the parents children since it is already 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // present in the tracer. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  tracer.AddTraceEventReferencingChannel( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ChannelTrace::Severity::Warning, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      grpc_slice_from_static_string("subchannel one inactive"), sc1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  AddSimpleTrace(&tracer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ValidateChannelTrace(&tracer, 8, GetParam()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  sc1.reset(nullptr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  sc2.reset(nullptr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  conn1.reset(nullptr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 INSTANTIATE_TEST_CASE_P(ChannelTracerTestSweep, ChannelTracerTest, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         ::testing::Values(0, 1, 2, 6, 10, 15)); 
			 |