test/langtools/tools/javac/classfiles/attributes/innerclasses/InnerClassesInInnerClassTest.java
changeset 50735 2f2af62dfac7
parent 47216 71c04702a3d5
equal deleted inserted replaced
50734:0828a0f6676b 50735:2f2af62dfac7
     1 /*
     1 /*
     2  * Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2014, 2018, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     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
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    29  * @modules jdk.compiler/com.sun.tools.javac.api
    29  * @modules jdk.compiler/com.sun.tools.javac.api
    30  *          jdk.compiler/com.sun.tools.javac.main
    30  *          jdk.compiler/com.sun.tools.javac.main
    31  *          jdk.jdeps/com.sun.tools.classfile
    31  *          jdk.jdeps/com.sun.tools.classfile
    32  * @build toolbox.ToolBox InMemoryFileManager TestResult TestBase
    32  * @build toolbox.ToolBox InMemoryFileManager TestResult TestBase
    33  * @build InnerClassesInInnerClassTestBase InnerClassesTestBase
    33  * @build InnerClassesInInnerClassTestBase InnerClassesTestBase
    34  * @run main InnerClassesInInnerClassTest
    34  * @run main InnerClassesInInnerClassTest true
       
    35  * @run main InnerClassesInInnerClassTest false
    35  */
    36  */
    36 
    37 
       
    38 import java.util.Arrays;
    37 import java.util.List;
    39 import java.util.List;
    38 
    40 
    39 public class InnerClassesInInnerClassTest extends InnerClassesInInnerClassTestBase {
    41 public class InnerClassesInInnerClassTest extends InnerClassesInInnerClassTestBase {
    40 
    42 
       
    43     final boolean expectSyntheticClass;
       
    44 
       
    45     public InnerClassesInInnerClassTest(boolean expectSyntheticClass) {
       
    46         this.expectSyntheticClass = expectSyntheticClass;
       
    47     }
       
    48 
    41     public static void main(String[] args) throws TestFailedException {
    49     public static void main(String[] args) throws TestFailedException {
    42         InnerClassesTestBase test = new InnerClassesInInnerClassTest();
    50         boolean expectSyntheticClass = Boolean.parseBoolean(args[0]);
       
    51         InnerClassesTestBase test = new InnerClassesInInnerClassTest(expectSyntheticClass);
    43         test.test("InnerClassesSrc$Inner", "Inner", "1");
    52         test.test("InnerClassesSrc$Inner", "Inner", "1");
    44     }
    53     }
    45 
    54 
    46     @Override
    55     @Override
    47     public void setProperties() {
    56     public void setProperties() {
    48         setHasSyntheticClass(true);
    57         setHasSyntheticClass(expectSyntheticClass);
    49         setOuterClassType(ClassType.CLASS);
    58         setOuterClassType(ClassType.CLASS);
    50         setInnerClassType(ClassType.CLASS);
    59         setInnerClassType(ClassType.CLASS);
    51     }
    60     }
    52 
    61 
    53     @Override
    62     @Override
    60         setInnerOtherModifiers(Modifier.EMPTY, Modifier.ABSTRACT, Modifier.FINAL);
    69         setInnerOtherModifiers(Modifier.EMPTY, Modifier.ABSTRACT, Modifier.FINAL);
    61         sources.addAll(super.generateTestCases());
    70         sources.addAll(super.generateTestCases());
    62 
    71 
    63         return sources;
    72         return sources;
    64     }
    73     }
       
    74 
       
    75     @Override
       
    76     protected List<String> getCompileOptions() {
       
    77         return !expectSyntheticClass ?
       
    78                 super.getCompileOptions() :
       
    79                 Arrays.asList("-source", "10", "-target", "10");
       
    80     }
    65 }
    81 }