langtools/test/tools/javac/classfiles/attributes/innerclasses/InnerClassesTestBase.java
changeset 32908 bef9744cf56f
parent 27552 8a4b2d3639c1
equal deleted inserted replaced
32803:51b2db2fa04c 32908:bef9744cf56f
    24 import com.sun.tools.classfile.Attribute;
    24 import com.sun.tools.classfile.Attribute;
    25 import com.sun.tools.classfile.ClassFile;
    25 import com.sun.tools.classfile.ClassFile;
    26 import com.sun.tools.classfile.InnerClasses_attribute;
    26 import com.sun.tools.classfile.InnerClasses_attribute;
    27 import com.sun.tools.classfile.InnerClasses_attribute.Info;
    27 import com.sun.tools.classfile.InnerClasses_attribute.Info;
    28 
    28 
       
    29 import java.nio.file.Paths;
    29 import java.util.ArrayList;
    30 import java.util.ArrayList;
    30 import java.util.Arrays;
    31 import java.util.Arrays;
       
    32 import java.util.Collections;
    31 import java.util.HashMap;
    33 import java.util.HashMap;
    32 import java.util.HashSet;
    34 import java.util.HashSet;
    33 import java.util.List;
    35 import java.util.List;
    34 import java.util.Map;
    36 import java.util.Map;
    35 import java.util.Set;
    37 import java.util.Set;
    85      * @param classToTest expected name of outer class
    87      * @param classToTest expected name of outer class
    86      * @param skipClasses classes that names should not be checked
    88      * @param skipClasses classes that names should not be checked
    87      */
    89      */
    88     public void test(String classToTest, String...skipClasses) throws TestFailedException {
    90     public void test(String classToTest, String...skipClasses) throws TestFailedException {
    89         try {
    91         try {
    90             for (TestCase test : generateTestCases()) {
    92             String testName = getClass().getName();
    91                 addTestCase(test.getSource());
    93             List<TestCase> testCases = generateTestCases();
       
    94             for (int i = 0; i < testCases.size(); ++i) {
       
    95                 TestCase test = testCases.get(i);
       
    96                 String testCaseName = testName + i + ".java";
       
    97                 addTestCase(testCaseName);
       
    98                 writeToFileIfEnabled(Paths.get(testCaseName), test.getSource());
    92                 test(classToTest, test, skipClasses);
    99                 test(classToTest, test, skipClasses);
    93             }
   100             }
    94         } catch (Exception e) {
   101         } catch (Exception e) {
    95             addFailure(e);
   102             addFailure(e);
    96         } finally {
   103         } finally {
   328                         continue;
   335                         continue;
   329                     }
   336                     }
   330                     list.add(Arrays.asList(access, mod1, mod2));
   337                     list.add(Arrays.asList(access, mod1, mod2));
   331                 }
   338                 }
   332                 if (mod1 == Modifier.EMPTY) {
   339                 if (mod1 == Modifier.EMPTY) {
   333                     list.add(Arrays.asList(access));
   340                     list.add(Collections.singletonList(access));
   334                 }
   341                 }
   335             }
   342             }
   336         }
   343         }
   337         return list;
   344         return list;
   338     }
   345     }
   411             }
   418             }
   412         };
   419         };
   413 
   420 
   414         private final String classType;
   421         private final String classType;
   415 
   422 
   416         private ClassType(String clazz) {
   423         ClassType(String clazz) {
   417             this.classType = clazz;
   424             this.classType = clazz;
   418         }
   425         }
   419 
   426 
   420         public abstract void addSpecificFlags(Set<String> flags);
   427         public abstract void addSpecificFlags(Set<String> flags);
   421 
   428 
   433         FINAL("final"), ABSTRACT("abstract"),
   440         FINAL("final"), ABSTRACT("abstract"),
   434         STATIC("static"), EMPTY("");
   441         STATIC("static"), EMPTY("");
   435 
   442 
   436         private final String str;
   443         private final String str;
   437 
   444 
   438         private Modifier(String str) {
   445         Modifier(String str) {
   439             this.str = str;
   446             this.str = str;
   440         }
   447         }
   441 
   448 
   442         public String getString() {
   449         public String getString() {
   443             return str;
   450             return str;