diff --git a/devtools/etdump/etdump_flatcc.cpp b/devtools/etdump/etdump_flatcc.cpp index 8c20bb4ad89..4dea62004a6 100644 --- a/devtools/etdump/etdump_flatcc.cpp +++ b/devtools/etdump/etdump_flatcc.cpp @@ -351,10 +351,6 @@ void ETDumpGen::log_intermediate_output_delegate_helper( (name == nullptr) ^ (delegate_debug_index == -1), "Only name or delegate_debug_index can be valid. Check DelegateMappingBuilder documentation for more details."); - ET_CHECK_MSG( - data_sink_, - "Must pre-set data sink before logging evalue with set_data_sink() or set_debug_buffer()\n"); - check_ready_to_add_events(); int64_t string_id = name != nullptr ? create_string_entry(name) : -1; @@ -515,8 +511,6 @@ void ETDumpGen::set_data_sink(DataSinkBase* data_sink) { } void ETDumpGen::log_evalue(const EValue& evalue, LoggedEValueType evalue_type) { - ET_CHECK_MSG(data_sink_, "Must set data sink before logging evalue\n"); - check_ready_to_add_events(); etdump_DebugEvent_start(builder_); @@ -650,7 +644,8 @@ long ETDumpGen::write_tensor_or_raise_error(Tensor tensor) { return static_cast(-1); } - ET_CHECK_MSG(data_sink_, "Must set data sink before writing data"); + ET_CHECK_MSG( + data_sink_, "Must set data sink before writing tensor-like data"); Result ret = data_sink_->write(tensor.const_data_ptr(), tensor.nbytes()); ET_CHECK_MSG( diff --git a/devtools/etdump/tests/etdump_test.cpp b/devtools/etdump/tests/etdump_test.cpp index cd9acdf5e65..4a732335d34 100644 --- a/devtools/etdump/tests/etdump_test.cpp +++ b/devtools/etdump/tests/etdump_test.cpp @@ -178,27 +178,9 @@ TEST_F(ProfilerETDumpTest, AllocationEvents) { TEST_F(ProfilerETDumpTest, DebugEvent) { for (size_t i = 0; i < 2; i++) { for (size_t j = 0; j < 2; j++) { - TensorFactory tf; - EValue evalue(tf.ones({3, 2})); - etdump_gen[i]->create_event_block("test_block"); void* ptr = malloc(2048); - Span buffer((uint8_t*)ptr, 2048); - - auto buffer_data_sink = BufferDataSink::create(ptr, 2048); - - // using span to record debug data - if (j == 0) { - etdump_gen[i]->set_debug_buffer(buffer); - } - // using data sink to record debug data - else { - etdump_gen[i]->set_data_sink(&buffer_data_sink.get()); - } - - etdump_gen[i]->log_evalue(evalue); - etdump_gen[i]->log_evalue(evalue, LoggedEValueType::kProgramOutput); EValue evalue_int((int64_t)5); etdump_gen[i]->log_evalue(evalue_int); @@ -211,6 +193,27 @@ TEST_F(ProfilerETDumpTest, DebugEvent) { etdump_gen[i]->log_evalue(evalue_bool); + TensorFactory tf; + EValue evalue_tensor(tf.ones({3, 2})); + + // using span to record debug data + Span buffer((uint8_t*)ptr, 2048); + auto buffer_data_sink = BufferDataSink::create(ptr, 2048); + if (j == 0) { + ET_EXPECT_DEATH( + etdump_gen[i]->log_evalue(evalue_tensor), + "Must set data sink before writing tensor-like data"); + etdump_gen[i]->set_debug_buffer(buffer); + } + // using data sink to record debug data + else { + etdump_gen[i]->set_data_sink(&buffer_data_sink.get()); + } + + etdump_gen[i]->log_evalue(evalue_tensor); + etdump_gen[i]->log_evalue( + evalue_tensor, LoggedEValueType::kProgramOutput); + free(ptr); } } @@ -487,7 +490,7 @@ TEST_F(ProfilerETDumpTest, LogDelegateIntermediateOutput) { "test_event_tensor", static_cast(-1), tf.ones({3, 2})), - "Must pre-set data sink before logging evalue with set_data_sink"); + "Must set data sink before writing tensor-like data"); etdump_gen[i]->set_debug_buffer(buffer); } // using data sink to record debug data