NameDateSize

..14-Dec-201714

InnerAnnotationsInInnerAnnotationTest.javaH A D14-Dec-20172.2 KiB

InnerAnnotationsInInnerClassTest.javaH A D14-Dec-20172.1 KiB

InnerAnnotationsInInnerEnumTest.javaH A D14-Dec-20172.1 KiB

InnerAnnotationsInInnerInterfaceTest.javaH A D14-Dec-20172.2 KiB

InnerClassesHierarchyTest.javaH A D14-Dec-201711.5 KiB

InnerClassesInAnonymousClassTest.javaH A D14-Dec-20173.2 KiB

InnerClassesIndexTest.javaH A D14-Dec-20174.5 KiB

InnerClassesInInnerAnnotationTest.javaH A D14-Dec-20172.1 KiB

InnerClassesInInnerClassTest.javaH A D14-Dec-20172.5 KiB

InnerClassesInInnerClassTestBase.javaH A D14-Dec-20171.7 KiB

InnerClassesInInnerEnumTest.javaH A D14-Dec-20172.1 KiB

InnerClassesInInnerInterfaceTest.javaH A D14-Dec-20172.1 KiB

InnerClassesInLocalClassTest.javaH A D14-Dec-20176.5 KiB

InnerClassesTest.javaH A D14-Dec-20173 KiB

InnerClassesTestBase.javaH A D14-Dec-201716.2 KiB

InnerEnumInInnerAnnotationTest.javaH A D14-Dec-20172.1 KiB

InnerEnumInInnerEnumTest.javaH A D14-Dec-20172.1 KiB

InnerEnumInInnerInterfaceTest.javaH A D14-Dec-20172.1 KiB

InnerEnumsInInnerClassTest.javaH A D14-Dec-20172 KiB

InnerInterfacesInInnerAnnotationTest.javaH A D14-Dec-20172.2 KiB

InnerInterfacesInInnerClassTest.javaH A D14-Dec-20172.1 KiB

InnerInterfacesInInnerEnumTest.javaH A D14-Dec-20172.1 KiB

InnerInterfacesInInnerInterfaceTest.javaH A D14-Dec-20172.2 KiB

NoInnerClassesTest.javaH A D14-Dec-20172 KiB

README.txtH A D14-Dec-20173.6 KiB

TestCase.javaH A D14-Dec-20171.9 KiB

README.txt

1The description of the tests for the InnerClasses attribute.
2
3InnerClassesTestBase is the base class for tests of inner classes attribute.
4Each tests extends the base class.
5The scenario of tests:
6    1. set possible values of class modifiers, outer/inner class types.
7    2. according to set class modifiers, a test generates sources
8       and golden data with generateTestCases.
9    3. a test loops through all test cases and checks InnerClasses attribute in method test().
10
11Example, possible flags for outer class are Modifier.PRIVATE and Modifier.PUBLIC,
12possible flags for inner class are Modifier.EMPTY, outer class type is CLASS
13and inner class type is CLASS.
14At the second step the test generates two test cases:
15  1. public class A {
16       public class B {
17         class C {}
18        }
19     }
20  2. public class A {
21       private class B {
22         class C {}
23       }
24     }
25
26The list of tests.
27
28Test: test if there is not inner class, the InnerClasses attribute
29is not generated (NoInnerClasses.java).
30
31Test: inner classes in anonymous class (InnerClassesInAnonymousClassTest.java).
32Possible access flags of the inner class: abstract and final.
33
34Test: inner classes in local class (InnerClassesInLocalClassTest.java).
35Locations of local class: static and instance initializer, constructor, method, lambda,
36default and static methods of interface.
37
38Test: test the outer_class_info_index and inner_name_index of
39local and anonymous classes (InnerClassesIndexTest.java).
40
41List of test cases for Inner*InInner*Test:
42    * InnerClassesInInnerClassTest
43        outer flags: all possible flags
44        inner flags: all possible flags
45    * InnerClassesInInnerEnumTest
46        outer flags: all access flags, abstract
47        inner flags: all possible flags
48    * InnerClassesInInnerAnnotationTest
49        outer flags: all access flags, abstract
50        inner flags: all flags, except private and protected
51    * InnerClassesInInnerInterfaceTest
52        outer flags: all access flags, abstract
53        inner flags: all flags, except private and protected
54
55    * InnerEnumsInInnerClassTest
56        outer flags: all possible flags
57        inner flags: all possible flags
58    * InnerEnumsInInnerEnumTest
59        outer flags: all possible flags
60        inner flags: all possible flags
61    * InnerEnumsInInnerAnnotationTest
62        outer flags: all access flags, abstract, static
63        inner flags: public, static
64    * InnerEnumsInInnerInterfaceTest
65        outer flags: all access flags, abstract, static
66        inner flags: public, static
67
68    * InnerAnnotationInInnerClassTest
69        outer flags: all possible flags, except static
70        inner flags: all access flags, abstract and static
71    * InnerAnnotationInInnerEnumTest
72        outer flags: all access flags, static
73        inner flags: all access flags, abstract and static
74    * InnerAnnotationInInnerAnnotation
75        outer flags: all access flags, static and abstract
76        inner flags: public, abstract, static
77    * InnerAnnotationInInnerInterface
78        outer flags: all access flags, static and abstract
79        inner flags: public, abstract, static
80
81    * InnerInterfaceInInnerClassTest
82        outer flags: all possible flags, except static
83        inner flags: all access flags, abstract and static
84    * InnerInterfaceInInnerEnumTest
85        outer flags: all access flags, static
86        inner flags: all access flags, abstract and static
87    * InnerInterfaceInInnerAnnotation
88        outer flags: all access flags, static and abstract
89        inner flags: public, abstract, static
90    * InnerInterfaceInInnerInterface
91        outer flags: all access flags, static and abstract
92        inner flags: public, abstract, static