@@ -186,11 +186,16 @@ TEST_F(ProfilerETDumpTest, AllocationEvents) {
186186}
187187
188188TEST_F (ProfilerETDumpTest, DebugEvent) {
189+ const size_t debug_buf_size = 2048 ;
190+ const size_t etdump_buf_size = 512 * 1024 ;
191+ ASSERT_NE (this ->buf , nullptr );
192+ Span<uint8_t > span_buf = Span<uint8_t >(this ->buf , etdump_buf_size);
193+
189194 for (size_t i = 0 ; i < 2 ; i++) {
190195 for (size_t j = 0 ; j < 3 ; j++) {
191196 etdump_gen[i]->create_event_block (" test_block" );
192197
193- void * ptr = malloc (2048 );
198+ void * ptr = malloc (debug_buf_size );
194199
195200 EValue evalue_int ((int64_t )5 );
196201 etdump_gen[i]->log_evalue (evalue_int);
@@ -206,24 +211,37 @@ TEST_F(ProfilerETDumpTest, DebugEvent) {
206211 TensorFactory<ScalarType::Float> tf;
207212 EValue evalue_tensor (tf.ones ({3 , 2 }));
208213
209- // using span to record debug data
210- Span<uint8_t > buffer ((uint8_t *)ptr, 2048 );
211- auto buffer_data_sink = BufferDataSink::create (ptr, 2048 );
214+ // Create span to record debug data
215+ Span<uint8_t > buffer ((uint8_t *)ptr, debug_buf_size );
216+ auto buffer_data_sink = BufferDataSink::create (ptr, debug_buf_size );
212217 auto file_data_sink = FileDataSink::create (dump_file_path.c_str ());
213218
214219 if (j == 0 ) {
215220 ET_EXPECT_DEATH (
216221 etdump_gen[i]->log_evalue (evalue_tensor),
217222 " Must set data sink before writing tensor-like data" );
223+
224+ // Set debug buffer with span
218225 etdump_gen[i]->set_debug_buffer (buffer);
219- }
220- // using buffer data sink to record debug data
221- else if (j == 1 ) {
222- etdump_gen[i]->set_data_sink (&buffer_data_sink.get ());
223- }
224- // using file data sink to record debug data
225- else {
226- etdump_gen[i]->set_data_sink (&file_data_sink.get ());
226+ } else {
227+ // Reset ETDumpGen to trigger ET_EXPECT_DEATH before setting data sink
228+ delete etdump_gen[i];
229+
230+ // Recreate ETDumpGen; set span buffer only for etdump_gen[1]
231+ etdump_gen[i] = (i == 0 ) ? new ETDumpGen () : new ETDumpGen (span_buf);
232+ etdump_gen[i]->create_event_block (" test_block" );
233+
234+ ET_EXPECT_DEATH (
235+ etdump_gen[i]->log_evalue (evalue_tensor),
236+ " Must set data sink before writing tensor-like data" );
237+
238+ if (j == 1 ) {
239+ // Set buffer data sink
240+ etdump_gen[i]->set_data_sink (&buffer_data_sink.get ());
241+ } else {
242+ // Set file data sink
243+ etdump_gen[i]->set_data_sink (&file_data_sink.get ());
244+ }
227245 }
228246
229247 etdump_gen[i]->log_evalue (evalue_tensor);
@@ -497,8 +515,8 @@ TEST_F(ProfilerETDumpTest, VerifyData) {
497515 }
498516}
499517
500- // Helper to assert that logging without a data sink triggers ET_EXPECT_DEATH
501- static void et_expect_death_log_delegate (
518+ // Triggers ET_EXPECT_DEATH if log_intermediate_output_delegate has no data sink
519+ static void expect_log_intermediate_delegate_death (
502520 ETDumpGen* gen,
503521 TensorFactory<ScalarType::Float>& tf) {
504522 ET_EXPECT_DEATH (
@@ -527,24 +545,25 @@ TEST_F(ProfilerETDumpTest, LogDelegateIntermediateOutput) {
527545 TensorFactory<ScalarType::Float> tf;
528546
529547 if (j == 0 ) {
530- et_expect_death_log_delegate (etdump_gen[i], tf);
548+ expect_log_intermediate_delegate_death (etdump_gen[i], tf);
531549
532- // Use span to record debug data
550+ // Set debug buffer with span
533551 etdump_gen[i]->set_debug_buffer (buffer);
534552 } else {
535- // Reset ETDumpGen to correctly trigger ET_EXPECT_DEATH
553+ // Reset ETDumpGen to trigger ET_EXPECT_DEATH before setting data sink
536554 delete etdump_gen[i];
537555
538- // Recreate ETDumpGen; use span buffer only for etdump_gen[1]
556+ // Recreate ETDumpGen; set span buffer only for etdump_gen[1]
539557 etdump_gen[i] = (i == 0 ) ? new ETDumpGen () : new ETDumpGen (span_buf);
540558 etdump_gen[i]->create_event_block (" test_block" );
541- et_expect_death_log_delegate (etdump_gen[i], tf);
559+
560+ expect_log_intermediate_delegate_death (etdump_gen[i], tf);
542561
543562 if (j == 1 ) {
544- // Use buffer data sink to record debug data
563+ // Set buffer data sink
545564 etdump_gen[i]->set_data_sink (&buffer_data_sink.get ());
546565 } else {
547- // Use file data sink to record debug data
566+ // Set file data sink
548567 etdump_gen[i]->set_data_sink (&file_data_sink.get ());
549568 }
550569 }
0 commit comments