diff options
Diffstat (limited to 'src/relooper/test.cpp')
-rw-r--r-- | src/relooper/test.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/relooper/test.cpp b/src/relooper/test.cpp index 4275941b..7da990b5 100644 --- a/src/relooper/test.cpp +++ b/src/relooper/test.cpp @@ -190,5 +190,46 @@ int main() { puts(buffer); } + + if (1) { + Relooper::SetOutputBuffer(buffer, sizeof(buffer)); + + printf("\n\n-- if (expensive || expensive2) X else Y; Z --\n\n"); + + Block *b_a = new Block("// block A\n"); + Block *b_b = new Block("// block B\n"); + Block *b_c = new Block("// block C;\n"); + Block *b_d = new Block("// block D\n"); + Block *b_e = new Block("// block E\n"); + Block *b_f = new Block("// block F\n"); + + b_a->AddBranchTo(b_c, "expensive()"); + b_a->AddBranchTo(b_b, NULL); + + b_b->AddBranchTo(b_c, "expensive2()"); + b_b->AddBranchTo(b_d, NULL); + + b_c->AddBranchTo(b_e, NULL); + + b_d->AddBranchTo(b_e, NULL); + + b_e->AddBranchTo(b_f, NULL); + + b_f->AddBranchTo(b_e, NULL); + + Relooper r; + r.AddBlock(b_a); + r.AddBlock(b_b); + r.AddBlock(b_c); + r.AddBlock(b_d); + r.AddBlock(b_e); + r.AddBlock(b_f); + + r.Calculate(b_a); + printf("\n\n"); + r.Render(); + + puts(buffer); + } } |