test/java/lang/reflect/DefaultStaticTest/DefaultStaticTestData.java

Print this page
rev 8097 : 8009411: (reflect) Class.getMethods should not include static methods from interfaces
Summary: Update getMethods() and getMethod() to filter out interface statics
Reviewed-by: duke
Contributed-by: joel.franck@oracle.com, andreas.lundblad@oracle.com, amy.lu@oracle.com

*** 170,180 **** } } @MethodDesc(name = "defaultMethod", retval = "TestIF8.TestClass8", mod = DEFAULT, declared = NO) class TestClass8<T> implements TestIF8<T> { ! }; @MethodDesc(name = "defaultMethod", retval = "TestIF9.defaultMethod", mod = DEFAULT, declared = YES) interface TestIF9 extends TestIF1 { default String defaultMethod() { --- 170,180 ---- } } @MethodDesc(name = "defaultMethod", retval = "TestIF8.TestClass8", mod = DEFAULT, declared = NO) class TestClass8<T> implements TestIF8<T> { ! } @MethodDesc(name = "defaultMethod", retval = "TestIF9.defaultMethod", mod = DEFAULT, declared = YES) interface TestIF9 extends TestIF1 { default String defaultMethod() {
*** 216,226 **** @MethodDesc(name = "defaultMethod", retval = "TestIF1.defaultMethod", mod = DEFAULT, declared = NO) class TestClass11 implements TestIF11 { } @MethodDesc(name = "defaultMethod", retval = "TestIF12.defaultMethod", mod = DEFAULT, declared = YES) - @MethodDesc(name = "staticMethod", retval = "TestIF2.staticMethod", mod = STATIC, declared = NO) interface TestIF12 extends TestIF2 { default String defaultMethod() { return "TestIF12.defaultMethod"; } --- 216,225 ----
*** 297,307 **** } } @MethodDesc(name = "defaultMethod", retval = "TestIF16.defaultMethod", mod = DEFAULT, declared = NO) class TestClass16 implements TestIF16 { ! }; @MethodDesc(name = "defaultMethod", retval = "TestIF17.defaultMethod", mod = DEFAULT, declared = YES) @MethodDesc(name = "staticMethod", retval = "TestIF17.staticMethod", mod = STATIC, declared = YES) interface TestIF17 { --- 296,306 ---- } } @MethodDesc(name = "defaultMethod", retval = "TestIF16.defaultMethod", mod = DEFAULT, declared = NO) class TestClass16 implements TestIF16 { ! } @MethodDesc(name = "defaultMethod", retval = "TestIF17.defaultMethod", mod = DEFAULT, declared = YES) @MethodDesc(name = "staticMethod", retval = "TestIF17.staticMethod", mod = STATIC, declared = YES) interface TestIF17 {
*** 316,325 **** --- 315,330 ---- @MethodDesc(name = "defaultMethod", retval = "TestIF17.defaultMethod", mod = DEFAULT, declared = NO) class TestClass17 implements TestIF17 { } + + @MethodDesc(name = "defaultMethod", retval = "TestIF17.defaultMethod", mod = DEFAULT, declared = NO) + class TestClass18 extends TestClass17 { + } + + @Retention(RetentionPolicy.RUNTIME) @Repeatable(MethodDescs.class) @interface MethodDesc { String name(); String retval();
*** 330,339 **** --- 335,379 ---- @Retention(RetentionPolicy.RUNTIME) @interface MethodDescs { MethodDesc[] value(); } + //Diamond Case for static method + @MethodDesc(name = "staticMethod", retval = "TestIF2A.staticMethod", mod = STATIC, declared = YES) + interface TestIF2A extends TestIF2 { + static String staticMethod() { + return "TestIF2A.staticMethod"; + } + } + + @MethodDesc(name = "method", retval = "", mod = ABSTRACT, declared = YES) + interface TestIF2B extends TestIF2 { + String method(); + } + + @MethodDesc(name = "method", retval = "", mod = ABSTRACT, declared = YES) + interface TestIF18 extends TestIF10, TestIF2A { + String method(); + } + + @MethodDesc(name = "method", retval = "", mod = ABSTRACT, declared = NO) + @MethodDesc(name = "defaultMethod", retval = "TestIF12.defaultMethod", mod = DEFAULT, declared = NO) + interface TestIF19 extends TestIF12, TestIF2B { + } + + @MethodDesc(name = "staticMethod", retval = "TestIF20.staticMethod", mod = STATIC, declared = YES) + @MethodDesc(name = "defaultMethod", retval = "TestIF12.defaultMethod", mod = DEFAULT, declared = NO) + interface TestIF20 extends TestIF12, TestIF2A { + static String staticMethod() { + return "TestIF20.staticMethod"; + } + } + + @MethodDesc(name = "method", retval = "", mod = ABSTRACT, declared = NO) + interface TestIF21 extends TestIF2A, TestIF2B { + } + public class DefaultStaticTestData { /** * Test data for DefaultStaticInvokeTest The format of inner array is: First * data is the name of the class under test Second data used in test as the
*** 341,366 **** */ @DataProvider static Object[][] testClasses() { return new Object[][]{ {"TestClass1", null}, ! //{"TestClass2", null}, @ignore due to JDK-8009411 {"TestClass3", null}, ! //{"TestClass4", null}, @ignore due to JDK-8009411 ! //{"TestClass5", null}, @ignore due to JDK-8009411 ! //{"TestClass6", null}, @ignore due to JDK-8009411 {"TestClass7", "TestIF7.TestClass7"}, {"TestClass8", "TestIF8.TestClass8"}, {"TestClass9", null}, {"TestClass91", null}, ! //{"TestClass11", null}, @ignore due to JDK-8009411 ! //{"TestClass12", null}, @ignore due to JDK-8009411 {"TestClass13", null}, {"TestClass14", null}, {"TestClass15", null}, ! {"TestClass16", null} ! //{"TestClass17", null} @ignore due to JDK-8009411 }; } /** * Test data for DefaultStaticInvokeTest The format of inner array is: First --- 381,407 ---- */ @DataProvider static Object[][] testClasses() { return new Object[][]{ {"TestClass1", null}, ! {"TestClass2", null}, {"TestClass3", null}, ! {"TestClass4", null}, ! {"TestClass5", null}, ! {"TestClass6", null}, {"TestClass7", "TestIF7.TestClass7"}, {"TestClass8", "TestIF8.TestClass8"}, {"TestClass9", null}, {"TestClass91", null}, ! {"TestClass11", null}, ! {"TestClass12", null}, {"TestClass13", null}, {"TestClass14", null}, {"TestClass15", null}, ! {"TestClass16", null}, ! {"TestClass17", null}, ! {"TestClass18", null}, }; } /** * Test data for DefaultStaticInvokeTest The format of inner array is: First
*** 370,379 **** --- 411,422 ---- @DataProvider static Object[][] testInterfaces() { return new Object[][]{ {"TestIF1", null}, {"TestIF2", null}, + {"TestIF2A", null}, + {"TestIF2B", null}, {"TestIF3", null}, {"TestIF4", null}, {"TestIF5", null}, {"TestIF6", null}, {"TestIF7", "TestIF7.TestClass7"},
*** 386,396 **** {"TestIF1B", null}, {"TestIF1C", null}, {"TestIF1D", null}, {"TestIF15", null}, {"TestIF16", null}, ! {"TestIF17", null},}; } @DataProvider static Object[][] testCasesAll() { List<Object[]> result = Lists.newArrayList(); --- 429,444 ---- {"TestIF1B", null}, {"TestIF1C", null}, {"TestIF1D", null}, {"TestIF15", null}, {"TestIF16", null}, ! {"TestIF17", null}, ! {"TestIF18", null}, ! {"TestIF19", null}, ! {"TestIF20", null}, ! {"TestIF21", null}, ! }; } @DataProvider static Object[][] testCasesAll() { List<Object[]> result = Lists.newArrayList();