8134732: [TEST_BUG] Test java/awt/applet/Applet/AppletFlipBuffer.java fails on Windows with AWTException
authorserb
Wed, 28 Oct 2015 16:42:49 +0300
changeset 33855 2450e37e84dd
parent 33854 e89a68072d5b
child 33856 875f59862274
8134732: [TEST_BUG] Test java/awt/applet/Applet/AppletFlipBuffer.java fails on Windows with AWTException Reviewed-by: azvegint, yan
jdk/test/java/awt/applet/Applet/AppletFlipBuffer.java
--- a/jdk/test/java/awt/applet/Applet/AppletFlipBuffer.java	Wed Oct 28 15:41:42 2015 +0300
+++ b/jdk/test/java/awt/applet/Applet/AppletFlipBuffer.java	Wed Oct 28 16:42:49 2015 +0300
@@ -21,35 +21,72 @@
  * questions.
  */
 
-/* @test
-   @bug 8130390
-   @summary Applet fails to launch on virtual desktop
-   @author Semyon Sadetsky
-  */
+import java.applet.Applet;
+import java.awt.AWTException;
+import java.awt.BufferCapabilities;
+import java.awt.BufferCapabilities.FlipContents;
+import java.awt.Frame;
+import java.awt.ImageCapabilities;
+import java.util.HashSet;
+import java.util.Set;
 
 import sun.awt.AWTAccessor;
+import sun.awt.AWTAccessor.ComponentAccessor;
 
-import java.applet.Applet;
-import java.awt.*;
+import static java.awt.BufferCapabilities.FlipContents.BACKGROUND;
+import static java.awt.BufferCapabilities.FlipContents.COPIED;
+import static java.awt.BufferCapabilities.FlipContents.PRIOR;
+import static java.awt.BufferCapabilities.FlipContents.UNDEFINED;
+
+/**
+ * @test
+ * @bug 8130390 8134732
+ * @summary Applet fails to launch on virtual desktop
+ * @modules java.desktop/sun.awt
+ * @author Semyon Sadetsky
+ */
+public final class AppletFlipBuffer {
 
-public class AppletFlipBuffer {
-    public static void main(String[] args) throws Exception {
+    static final ImageCapabilities[] ics = {new ImageCapabilities(true),
+                                            new ImageCapabilities(false)};
+    static final FlipContents[] cntx = {UNDEFINED, BACKGROUND, PRIOR, COPIED};
+    static final Set<BufferCapabilities> bcs = new HashSet<>();
+
+    static {
+        for (final ImageCapabilities icFront : ics) {
+            for (final ImageCapabilities icBack : ics) {
+                for (final FlipContents cnt : cntx) {
+                    bcs.add(new BufferCapabilities(icFront, icBack, cnt));
+                }
+            }
+        }
+    }
+
+    public static void main(final String[] args) throws Exception {
         Applet applet = new Applet();
-        AWTAccessor.ComponentAccessor componentAccessor
-                = AWTAccessor.getComponentAccessor();
-        BufferCapabilities caps = new BufferCapabilities(
-                new ImageCapabilities(true), new ImageCapabilities(true),
-                BufferCapabilities.FlipContents.BACKGROUND);
         Frame frame = new Frame();
         try {
+            frame.setSize(10, 10);
             frame.add(applet);
             frame.setUndecorated(true);
             frame.setVisible(true);
-            componentAccessor.createBufferStrategy(applet, 2, caps);
+            test(applet);
             System.out.println("ok");
-        }
-        finally {
+        } finally {
             frame.dispose();
         }
     }
+
+    private static void test(final Applet applet) {
+        ComponentAccessor acc = AWTAccessor.getComponentAccessor();
+        for (int i = 1; i < 10; ++i) {
+            for (final BufferCapabilities caps : bcs) {
+                try {
+                    acc.createBufferStrategy(applet, i, caps);
+                } catch (final AWTException ignored) {
+                    // this kind of buffer strategy is not supported
+                }
+            }
+        }
+    }
 }