/** * Copyright 2019-2020 Huawei Technologies Co., Ltd * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #include #define private public #define protected public #include "graph/load/model_manager/data_dumper.h" #include "graph/load/model_manager/davinci_model.h" #undef private #undef protected using namespace std; namespace ge { class UtestDataDumper : public testing::Test { protected: void SetUp() {} void TearDown() {} }; std::vector stub_get_output_addrs(const RuntimeParam &model_param, ConstOpDescPtr op_desc) { std::vector res; res.emplace_back(reinterpret_cast(23333)); return res; } static ge::OpDescPtr CreateOpDesc(string name = "", string type = "") { auto op_desc = std::make_shared(name, type); op_desc->SetStreamId(0); op_desc->SetId(0); op_desc->SetWorkspace({}); op_desc->SetWorkspaceBytes({}); op_desc->SetInputOffset({}); op_desc->SetOutputOffset({100, 200}); return op_desc; } TEST_F(UtestDataDumper, LoadDumpInfo_success) { RuntimeParam rts_param; DataDumper data_dumper(&rts_param); data_dumper.SetModelName("test"); data_dumper.SetModelId(2333); std::shared_ptr op_desc_1(new OpDesc()); op_desc_1->AddOutputDesc("test", GeTensorDesc()); data_dumper.SaveDumpTask(0, 0, op_desc_1, 0); string dump_mode = "output"; data_dumper.is_op_debug_ = true; data_dumper.dump_properties_.SetDumpMode(dump_mode); EXPECT_EQ(data_dumper.LoadDumpInfo(), SUCCESS); EXPECT_EQ(data_dumper.UnloadDumpInfo(), SUCCESS); } TEST_F(UtestDataDumper, DumpOutputWithTask_success) { RuntimeParam rts_param; DataDumper data_dumper(&rts_param); data_dumper.SetModelName("test"); data_dumper.SetModelId(2333); toolkit::aicpu::dump::Task task; OpDescPtr op_desc = CreateOpDesc("conv", CONVOLUTION); GeTensorDesc tensor_0(GeShape(), FORMAT_NCHW, DT_FLOAT); GeTensorDesc tensor_1(GeShape(), FORMAT_NCHW, DT_FLOAT); int32_t calc_type = 1; ge::AttrUtils::SetInt(tensor_1, ATTR_NAME_MEMORY_SIZE_CALC_TYPE, calc_type); op_desc->AddOutputDesc(tensor_0); op_desc->AddOutputDesc(tensor_1); DataDumper::InnerDumpInfo inner_dump_info; inner_dump_info.op = op_desc; Status ret = data_dumper.DumpOutputWithTask(inner_dump_info, task); EXPECT_EQ(ret, SUCCESS); int64_t task_size = 1; data_dumper.GenerateOpBuffer(task_size, task); } } // namespace ge