--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/langtools/test/tools/javac/classfiles/attributes/innerclasses/README.txt Tue Aug 12 13:24:40 2014 +0400
@@ -0,0 +1,92 @@
+The description of the tests for the InnerClasses attribute.
+
+InnerClassesTestBase is the base class for tests of inner classes attribute.
+Each tests extends the base class.
+The scenario of tests:
+ 1. set possible values of class modifiers, outer/inner class types.
+ 2. according to set class modifiers, a test generates sources
+ and golden data with generateTestCases.
+ 3. a test loops through all test cases and checks InnerClasses attribute in method test().
+
+Example, possible flags for outer class are Modifier.PRIVATE and Modifier.PUBLIC,
+possible flags for inner class are Modifier.EMPTY, outer class type is CLASS
+and inner class type is CLASS.
+At the second step the test generates two test cases:
+ 1. public class A {
+ public class B {
+ class C {}
+ }
+ }
+ 2. public class A {
+ private class B {
+ class C {}
+ }
+ }
+
+The list of tests.
+
+Test: test if there is not inner class, the InnerClasses attribute
+is not generated (NoInnerClasses.java).
+
+Test: inner classes in anonymous class (InnerClassesInAnonymousClassTest.java).
+Possible access flags of the inner class: abstract and final.
+
+Test: inner classes in local class (InnerClassesInLocalClassTest.java).
+Locations of local class: static and instance initializer, constructor, method, lambda,
+default and static methods of interface.
+
+Test: test the outer_class_info_index and inner_name_index of
+local and anonymous classes (InnerClassesIndexTest.java).
+
+List of test cases for Inner*InInner*Test:
+ * InnerClassesInInnerClassTest
+ outer flags: all possible flags
+ inner flags: all possible flags
+ * InnerClassesInInnerEnumTest
+ outer flags: all access flags, abstract
+ inner flags: all possible flags
+ * InnerClassesInInnerAnnotationTest
+ outer flags: all access flags, abstract
+ inner flags: all flags, except private and protected
+ * InnerClassesInInnerInterfaceTest
+ outer flags: all access flags, abstract
+ inner flags: all flags, except private and protected
+
+ * InnerEnumsInInnerClassTest
+ outer flags: all possible flags
+ inner flags: all possible flags
+ * InnerEnumsInInnerEnumTest
+ outer flags: all possible flags
+ inner flags: all possible flags
+ * InnerEnumsInInnerAnnotationTest
+ outer flags: all access flags, abstract, static
+ inner flags: public, static
+ * InnerEnumsInInnerInterfaceTest
+ outer flags: all access flags, abstract, static
+ inner flags: public, static
+
+ * InnerAnnotationInInnerClassTest
+ outer flags: all possible flags, except static
+ inner flags: all access flags, abstract and static
+ * InnerAnnotationInInnerEnumTest
+ outer flags: all access flags, static
+ inner flags: all access flags, abstract and static
+ * InnerAnnotationInInnerAnnotation
+ outer flags: all access flags, static and abstract
+ inner flags: public, abstract, static
+ * InnerAnnotationInInnerInterface
+ outer flags: all access flags, static and abstract
+ inner flags: public, abstract, static
+
+ * InnerInterfaceInInnerClassTest
+ outer flags: all possible flags, except static
+ inner flags: all access flags, abstract and static
+ * InnerInterfaceInInnerEnumTest
+ outer flags: all access flags, static
+ inner flags: all access flags, abstract and static
+ * InnerInterfaceInInnerAnnotation
+ outer flags: all access flags, static and abstract
+ inner flags: public, abstract, static
+ * InnerInterfaceInInnerInterface
+ outer flags: all access flags, static and abstract
+ inner flags: public, abstract, static
\ No newline at end of file