| @@ -2663,6 +2663,13 @@ TEST_F(STestTensorflowParser, tensorflow_OptimizeIdentityByOutput_test) | |||||
| Status ret = model_parser.OptimizeIdentityByOutput(nodedef_map, curr_node_name, clear_input_flag); | Status ret = model_parser.OptimizeIdentityByOutput(nodedef_map, curr_node_name, clear_input_flag); | ||||
| EXPECT_EQ(ret, INTERNAL_ERROR); | EXPECT_EQ(ret, INTERNAL_ERROR); | ||||
| // op_node_context for fusion op | |||||
| ge::OpNodeContext op_node_context; | |||||
| op_node_context.input_map["pre_node_a"].push_back({0, 0}); | |||||
| op_node_context.input_map["pre_node_b"].push_back({0, 1}); | |||||
| tensorflow_parser.op_node_context_map_[fusion_op_name] = op_node_context; | |||||
| GraphDef graph; | GraphDef graph; | ||||
| curr_node_name = "pre_node_a"; | curr_node_name = "pre_node_a"; | ||||
| nodedef_map.emplace("pre_node_a", node_def); | nodedef_map.emplace("pre_node_a", node_def); | ||||
| @@ -2673,6 +2680,57 @@ TEST_F(STestTensorflowParser, tensorflow_OptimizeIdentityByOutput_test) | |||||
| delete node_def; | delete node_def; | ||||
| } | } | ||||
| TEST_F(STestTensorflowParser, tensorflow_OptimizeIdentityByOutput_test1) | |||||
| { | |||||
| TensorFlowModelParser model_parser; | |||||
| NodeDef *node_def = new NodeDef(); | |||||
| node_def->set_name("Placeholder"); | |||||
| node_def->set_op("Placeholder_0"); | |||||
| std::map<string, NodeDef *> nodedef_map; | |||||
| curr_node_name = "pre_node_a"; | |||||
| nodedef_map.emplace("pre_node_b", node_def); | |||||
| node_def->set_op("pre_node_a"); | |||||
| GenOriginContext(&model_parser, curr_node_name); | |||||
| ret = model_parser.OptimizeIdentityByOutput(nodedef_map, curr_node_name, clear_input_flag); | |||||
| EXPECT_EQ(ret, INTERNAL_ERROR); | |||||
| delete node_def; | |||||
| } | |||||
| TEST_F(STestTensorflowParser, tensorflow_OptimizeIdentityByOutput_test1) | |||||
| { | |||||
| TensorFlowModelParser model_parser; | |||||
| NodeDef *node_def = new NodeDef(); | |||||
| node_def->set_name("Placeholder"); | |||||
| node_def->set_op("Placeholder_0"); | |||||
| std::map<string, NodeDef *> nodedef_map; | |||||
| curr_node_name = "pre_node_a"; | |||||
| nodedef_map.emplace("pre_node_a", node_def); | |||||
| node_def->set_op("pre_node_a"); | |||||
| GenOriginContext(&model_parser, curr_node_name); | |||||
| ret = model_parser.OptimizeIdentityByOutput(nodedef_map, curr_node_name, clear_input_flag); | |||||
| EXPECT_EQ(ret, INTERNAL_ERROR); | |||||
| delete node_def; | |||||
| } | |||||
| TEST_F(STestTensorflowParser, tensorflow_OptimizeIdentityByOutput_test1) | |||||
| { | |||||
| TensorFlowModelParser model_parser; | |||||
| NodeDef *node_def = new NodeDef(); | |||||
| node_def->set_name("Retval_1"); | |||||
| node_def->set_op("_Retval"); | |||||
| std::map<string, NodeDef *> nodedef_map; | |||||
| curr_node_name = "pre_node_a"; | |||||
| nodedef_map.emplace("pre_node_b", node_def); | |||||
| node_def->set_op("pre_node_a"); | |||||
| GenOriginContext(&model_parser, curr_node_name); | |||||
| ret = model_parser.OptimizeIdentityByOutput(nodedef_map, curr_node_name, clear_input_flag); | |||||
| EXPECT_EQ(ret, SUCCESS); | |||||
| delete node_def; | |||||
| } | |||||
| TEST_F(STestTensorflowParser, tensorflow_OptimizeSnapShot_test) | TEST_F(STestTensorflowParser, tensorflow_OptimizeSnapShot_test) | ||||
| { | { | ||||
| TensorFlowModelParser model_parser; | TensorFlowModelParser model_parser; | ||||
| @@ -2863,6 +2921,7 @@ TEST_F(STestTensorflowParser, tensorflow_GraphDefOptimizeIdentity_test) | |||||
| Status ret = tensorflow_parser.GraphDefOptimizeIdentity(&graph_def, nodedef_map, nodedef_to_optimize); | Status ret = tensorflow_parser.GraphDefOptimizeIdentity(&graph_def, nodedef_map, nodedef_to_optimize); | ||||
| EXPECT_EQ(ret, ge::PARAM_INVALID); | EXPECT_EQ(ret, ge::PARAM_INVALID); | ||||
| } | } | ||||
| TEST_F(STestTensorflowParser, tensorflow_optimizer_snapshot_no_retval_test) { | TEST_F(STestTensorflowParser, tensorflow_optimizer_snapshot_no_retval_test) { | ||||
| std::string caseDir = __FILE__; | std::string caseDir = __FILE__; | ||||
| std::size_t idx = caseDir.find_last_of("/"); | std::size_t idx = caseDir.find_last_of("/"); | ||||