jdk/test/com/sun/jdi/ControlFlow.java
changeset 2 90ce3da70b43
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/com/sun/jdi/ControlFlow.java	Sat Dec 01 00:00:00 2007 +0000
@@ -0,0 +1,79 @@
+/* /nodynamiccopyright/ */ // hard coded linenumbers in other tests - DO NOT CHANGE
+/*
+ * Debuggee which exercises various types of control flow
+ */
+
+class ControlFlow {
+    boolean b = true;
+    int n = 22;
+
+    public static void main(String args[]) throws Exception {
+        (new ControlFlow()).go();
+    }
+
+    void go() throws Exception {
+        if (b) {
+            System.out.println("if, no else");
+        }
+
+        if (b) {
+            System.out.println("if branch");
+        } else {
+            throw new Exception("Wrong branch!?");
+        }
+
+        if (!b) {
+            throw new Exception("Wrong branch!?");
+        } else {
+            System.out.println("else branch");
+        }
+
+        try {
+            throw new Exception();
+        } catch (Exception e) {
+            System.out.println("caught exception");
+        } finally {
+            System.out.println("finally");
+        }
+
+        // This isn't control flow at the source level,  but it is at the bytecode level
+        synchronized (this) {
+            System.out.println("synchronized");
+        }
+
+
+        for (int i = 0; i < n; i++) {
+            System.out.println("Loop iteration: " + (i+1) + "/" + n);
+        }
+
+        switch (n) {
+            case 0:
+                throw new Exception("Wrong branch!?");
+            case 1:
+                throw new Exception("Wrong branch!?");
+            case 2:
+                throw new Exception("Wrong branch!?");
+            case 3:
+                throw new Exception("Wrong branch!?");
+            case 22:
+                System.out.println("switch case");
+                break;
+            default:
+                throw new Exception("Wrong branch!?");
+        }
+
+        switch (n) {
+            case 0:
+                throw new Exception("Wrong branch!?");
+            case 1:
+                throw new Exception("Wrong branch!?");
+            case 2:
+                throw new Exception("Wrong branch!?");
+            case 3:
+                throw new Exception("Wrong branch!?");
+            default:
+                System.out.println("switch default");
+                break;
+        }
+    }
+}