MCPcopy Create free account
hub / github.com/PaddlePaddle/Paddle / TEST

Function TEST

test/cpp/fluid/framework/program_desc_test.cc:26–58  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

24class VarDesc;
25
26TEST(ProgramDesc, block_desc_move) {
27 auto program = std::make_unique<ProgramDesc>();
28 auto* global_block = program->MutableBlock(0);
29
30 auto* op = global_block->AppendOp();
31 op->SetType("op_with_subblock");
32 op->SetAttr("sub_block", program->AppendBlock(*global_block));
33
34 std::vector<BlockDesc*> sub_blocks;
35 sub_blocks.push_back(program->AppendBlock(*global_block));
36 sub_blocks.push_back(program->AppendBlock(*global_block));
37 op->SetAttr("sub_blocks", sub_blocks);
38
39 program->Flush();
40
41 ProgramDesc program_move;
42 for (size_t i = 1; i < program->Size(); ++i) {
43 program_move.AppendBlock(program_move.Block(0));
44 }
45 for (size_t i = 0; i < program->Size(); ++i) {
46 program_move.MutableBlock(i)->MoveFrom(program->MutableBlock(i));
47 }
48 program = nullptr;
49 EXPECT_EQ(program_move.Size(), static_cast<size_t>(4));
50 op = program_move.Block(0).Op(0);
51 auto sub_block = op->GetAttrIfExists<BlockDesc*>("sub_block");
52 EXPECT_EQ(sub_block, program_move.MutableBlock(1));
53
54 sub_blocks = op->GetAttrIfExists<std::vector<BlockDesc*>>("sub_blocks");
55 EXPECT_EQ(sub_blocks.size(), static_cast<size_t>(2));
56 EXPECT_EQ(sub_blocks[0], program_move.MutableBlock(2));
57 EXPECT_EQ(sub_blocks[1], program_move.MutableBlock(3));
58}
59
60TEST(ProgramDesc, copy_ctor) {
61 ProgramDesc program;

Callers

nothing calls this directly

Calls 15

AppendOpMethod · 0.80
AppendBlockMethod · 0.80
LocalVarNamesMethod · 0.80
GetBlockAttrIdMethod · 0.80
GetBlocksAttrIdsMethod · 0.80
SetTypeMethod · 0.45
SetAttrMethod · 0.45
push_backMethod · 0.45
FlushMethod · 0.45
SizeMethod · 0.45
BlockMethod · 0.45
MoveFromMethod · 0.45

Tested by

no test coverage detected