Browse Source

Add UT

tags/v1.2.0
zhangxiaokun 3 years ago
parent
commit
4793969fce
1 changed files with 68 additions and 7 deletions
  1. +68
    -7
      tests/ut/ge/graph/load/model_manager_unittest.cc

+ 68
- 7
tests/ut/ge/graph/load/model_manager_unittest.cc View File

@@ -85,14 +85,64 @@ class UtestModelManagerModelManager : public testing::Test {
}

void LoadStandardModelData(ModelData &data) {
static const std::string STANDARD_MODEL_DATA_PATH =
"llt/framework/domi/ut/ome/test/data/standard_partition_model.txt";
proto::ModelDef model_def;
ReadProtoFromText(STANDARD_MODEL_DATA_PATH.c_str(), &model_def);

data.model_len = model_def.ByteSizeLong();
data.model_len = 512;
data.model_data = new uint8_t[data.model_len];
model_def.SerializePartialToArray(data.model_data, data.model_len);
uint8_t *model_data = reinterpret_cast<uint8_t *>(data.model_data);

uint32_t mem_offset = sizeof(ModelFileHeader);
ModelPartitionTable *partition_table = reinterpret_cast<ModelPartitionTable *>(model_data + mem_offset);
partition_table->num = PARTITION_SIZE;

mem_offset += sizeof(ModelPartitionTable) + sizeof(ModelPartitionMemInfo) * 5;
{
Model model;
ComputeGraphPtr graph = make_shared<ComputeGraph>("default");
model.SetGraph(GraphUtils::CreateGraphFromComputeGraph(graph));
model.SetVersion(123);

Buffer buffer;
model.Save(buffer);
EXPECT_TRUE(mem_offset + buffer.GetSize() < 512);
memcpy(model_data + mem_offset, buffer.GetData(), buffer.GetSize());

ModelPartitionMemInfo &partition_info = partition_table->partition[0];
partition_info.type = ModelPartitionType::MODEL_DEF;
partition_info.mem_size = buffer.GetSize();
mem_offset += buffer.GetSize();
}

{
ModelPartitionMemInfo &partition_info = partition_table->partition[1];
partition_info.type = ModelPartitionType::WEIGHTS_DATA;
partition_info.mem_offset = mem_offset;
partition_info.mem_size = 0;
}

{
ModelPartitionMemInfo &partition_info = partition_table->partition[2];
partition_info.type = ModelPartitionType::TASK_INFO;
partition_info.mem_offset = mem_offset;
partition_info.mem_size = 0;
}

{
ModelPartitionMemInfo &partition_info = partition_table->partition[3];
partition_info.type = ModelPartitionType::TBE_KERNELS;
partition_info.mem_offset = mem_offset;
partition_info.mem_size = 0;
}

{
ModelPartitionMemInfo &partition_info = partition_table->partition[4];
partition_info.type = ModelPartitionType::CUST_AICPU_KERNELS;
partition_info.mem_offset = mem_offset;
partition_info.mem_size = 0;
}

EXPECT_TRUE(mem_offset < 512);
ModelFileHeader *header = new (data.model_data) ModelFileHeader;
header->length = mem_offset - sizeof(ModelFileHeader);
data.model_len = mem_offset;
}
};

@@ -151,6 +201,17 @@ TEST_F(UtestModelManagerModelManager, case_load_model_encypt_type_unsupported) {
EXPECT_EQ(mm.LoadModelOffline(model_id, data, nullptr, nullptr), ACL_ERROR_GE_PARAM_INVALID);
delete[](uint8_t *) data.model_data;
}

TEST_F(UtestModelManagerModelManager, case_load_model_data_success) {
ModelData data;
LoadStandardModelData(data);

uint32_t model_id = 1;
ModelManager mm;
EXPECT_EQ(mm.LoadModelOffline(model_id, data, nullptr, nullptr), SUCCESS);
delete[](uint8_t *) data.model_data;
}

/*
shared_ptr<ModelListener> LabelCallBack(new DModelListener());



Loading…
Cancel
Save