Skip to content

Commit 8dec5b7

Browse files
committed
Add ET_EXPECT_DEATH tests to DebugEvent test
1 parent 5901797 commit 8dec5b7

File tree

1 file changed

+40
-21
lines changed

1 file changed

+40
-21
lines changed

devtools/etdump/tests/etdump_test.cpp

Lines changed: 40 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -186,11 +186,16 @@ TEST_F(ProfilerETDumpTest, AllocationEvents) {
186186
}
187187

188188
TEST_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

Comments
 (0)