    @Test
    public void testSimpleLoopWithSuccessor2() throws HeadToHeadControlFlowException {

        final Program p = new Program(DebugInformation.empty(), null);
        final ControlFlowGraph g = new ControlFlowGraph(p);
        final RegionNode startNode = g.createAt(BytecodeOpcodeAddress.START_AT_ZERO, RegionNode.BlockType.NORMAL);
        startNode.getExpressions().add(new GotoExpression(p, new BytecodeOpcodeAddress(0), new BytecodeOpcodeAddress(0)));
        final RegionNode node1 = g.createAt(new BytecodeOpcodeAddress(10), RegionNode.BlockType.NORMAL);
        node1.getExpressions().add(new GotoExpression(p, new BytecodeOpcodeAddress(1), new BytecodeOpcodeAddress(20)));
        final RegionNode node2 = g.createAt(new BytecodeOpcodeAddress(20), RegionNode.BlockType.NORMAL);

        startNode.addEdgeTo(ControlFlowEdgeType.forward, node1);
        startNode.addEdgeTo(ControlFlowEdgeType.forward, node2);
        node1.addEdgeTo(ControlFlowEdgeType.forward, startNode);
        g.calculateReachabilityAndMarkBackEdges();

        final Stackifier stackifier = new Stackifier(g);
        final StringWriter sw = new StringWriter();
        stackifier.writeStructuredControlFlow(new DebugStructurecControlFlowWriter(stackifier, new PrintWriter(sw)));

        assertEquals("LOOP $L_0_2: {" + System.lineSeparator() +
                "    BLOCK $B_0_2: {" + System.lineSeparator() +
                "        BLOCK $B_0_1: {" + System.lineSeparator() +
                "            RegionNode{startAddress=BytecodeOpcodeAddress{address=0}}" + System.lineSeparator() +
                "            continue $L_0_2" + System.lineSeparator() +
                "        } ; Closing block $B_0_1" + System.lineSeparator() +
                "        RegionNode{startAddress=BytecodeOpcodeAddress{address=10}}" + System.lineSeparator() +
                "        break $B_0_2" + System.lineSeparator() +
                "    } ; Closing block $B_0_2" + System.lineSeparator() +
                "    RegionNode{startAddress=BytecodeOpcodeAddress{address=20}}" + System.lineSeparator() +
                "} ; Closing block $L_0_2" + System.lineSeparator(), sw.toString());
    }