jdk/test/java/awt/font/Rotate/Shear.java
author goetz
Tue, 14 Jun 2016 10:44:59 +0200
changeset 39056 d99e63b6d962
parent 5506 202f599c92aa
permissions -rw-r--r--
8159690: [TESTBUG] Mark headful tests with @key headful. Reviewed-by: simonis, alexsch
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
546
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
     1
/*
39056
d99e63b6d962 8159690: [TESTBUG] Mark headful tests with @key headful.
goetz
parents: 5506
diff changeset
     2
 * Copyright (c) 2008, 2016, Oracle and/or its affiliates. All rights reserved.
546
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
     3
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
     4
 *
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
     5
 * This code is free software; you can redistribute it and/or modify it
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
     6
 * under the terms of the GNU General Public License version 2 only, as
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
     7
 * published by the Free Software Foundation.
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
     8
 *
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
     9
 * This code is distributed in the hope that it will be useful, but WITHOUT
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    10
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    11
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    12
 * version 2 for more details (a copy is included in the LICENSE file that
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    13
 * accompanied this code).
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    14
 *
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    15
 * You should have received a copy of the GNU General Public License version
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    16
 * 2 along with this work; if not, write to the Free Software Foundation,
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    17
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    18
 *
5506
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 546
diff changeset
    19
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 546
diff changeset
    20
 * or visit www.oracle.com if you need additional information or have any
202f599c92aa 6943119: Rebrand source copyright notices
ohair
parents: 546
diff changeset
    21
 * questions.
546
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    22
 */
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    23
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    24
/*
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    25
 * @test
39056
d99e63b6d962 8159690: [TESTBUG] Mark headful tests with @key headful.
goetz
parents: 5506
diff changeset
    26
 * @key headful
546
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    27
 * @bug 6692979
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    28
 * @summary Verify no crashes with extreme shears.
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    29
 */
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    30
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    31
import javax.swing.*;
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    32
import java.awt.*;
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    33
import java.awt.font.*;
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    34
import java.awt.geom.*;
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    35
public class Shear extends Component {
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    36
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    37
    public static void main(String[] args) {
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    38
        JFrame f = new JFrame();
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    39
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    40
        f.getContentPane().add("Center", new Shear());
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    41
        f.pack();
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    42
        f.setVisible(true);
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    43
    }
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    44
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    45
    public Dimension getPreferredSize() {
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    46
      return new Dimension(400,300);
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    47
    }
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    48
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    49
    public void paint(Graphics g) {
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    50
        Graphics2D g2 = (Graphics2D)g;
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    51
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    52
        g.setColor(Color.white);
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    53
        g.fillRect(0,0,400,300);
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    54
        g.setColor(Color.black);
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    55
        Font origFont = new Font(Font.DIALOG, Font.BOLD, 30);
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    56
        for (int i=0;i<=360;i++) {
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    57
            double sv = i*180.0/Math.PI;
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    58
            AffineTransform tx = AffineTransform.getShearInstance(sv, sv);
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    59
            Font font = origFont.deriveFont(tx);
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    60
            g.setFont(font);
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    61
            GlyphVector gv =
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    62
                  font.createGlyphVector(g2.getFontRenderContext(), "JavaFX");
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    63
            //System.out.println(gv.getVisualBounds());
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    64
            g.drawString("JavaFX", 100, 100);
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    65
        }
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    66
    }
06253731a445 6692979: VM Crash when shearing text + rect over a range of values
prr
parents:
diff changeset
    67
}