jdk
1/*
2* Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved.
3* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4*
5* This code is free software; you can redistribute it and/or modify it
6* under the terms of the GNU General Public License version 2 only, as
7* published by the Free Software Foundation.
8*
9* This code is distributed in the hope that it will be useful, but WITHOUT
10* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12* version 2 for more details (a copy is included in the LICENSE file that
13* accompanied this code).
14*
15* You should have received a copy of the GNU General Public License version
16* 2 along with this work; if not, write to the Free Software Foundation,
17* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18*
19* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20* or visit www.oracle.com if you need additional information or have any
21* questions.
22*/
23
24/*
25* @test
26* @bug 6359661 6366196
27* @summary Unit test for corner cases of position encoding
28* @author Wei Tao
29* @modules jdk.compiler/com.sun.tools.javac.util
30* @run main T6366196
31*/
32
33import com.sun.tools.javac.util.*;34
35public class T6366196 {36public static final int MIDLINE = Position.MAXPOS>>>Position.LINESHIFT; // 0x0020000037
38public static void main(String[] args) {39positiveTest(10, Position.MAXCOLUMN);40negativeTest(20, Position.MAXCOLUMN + 1);41positiveTest(MIDLINE, Position.MAXCOLUMN);42positiveTest(Position.MAXLINE, 40);43negativeTest(Position.MAXLINE, Position.MAXCOLUMN);44negativeTest(Position.MAXLINE + 1, 1);45}46
47public static void positiveTest(int line, int col) {48if (Position.encodePosition(line, col) == Position.NOPOS) {49throw new Error("test failed at line = " + line + ", column = " + col);50} else {51System.out.println("test passed at line = " + line + ", column = " + col);52}53}54
55public static void negativeTest(int line, int col) {56if (Position.encodePosition(line, col) != Position.NOPOS) {57throw new Error("test failed at line = " + line + ", column = " + col);58} else {59System.out.println("test passed at line = " + line + ", column = " + col);60}61}62}
63