jdk/test/java/lang/reflect/Constructor/GenericStringTest.java
changeset 39825 6441823cea46
parent 39731 7a4bc90065bd
--- a/jdk/test/java/lang/reflect/Constructor/GenericStringTest.java	Tue Jul 26 10:53:20 2016 -0700
+++ b/jdk/test/java/lang/reflect/Constructor/GenericStringTest.java	Tue Jul 26 12:56:26 2016 -0700
@@ -23,7 +23,7 @@
 
 /*
  * @test
- * @bug 5033583 6316717 6470106 8161500
+ * @bug 5033583 6316717 6470106 8161500 8162539
  * @summary Check toGenericString() and toString() methods
  * @author Joseph D. Darcy
  */
@@ -41,20 +41,11 @@
                 ExpectedGenericString egs = ctor.getAnnotation(ExpectedGenericString.class);
                 String actual = ctor.toGenericString();
                 System.out.println(actual);
-                if (! egs.value().equals(actual)) {
-                    failures++;
-                    System.err.printf("ERROR: Expected generic string ''%s''; got ''%s''.\n",
-                                      egs.value(), actual);
-                }
+                failures += checkForFailure(egs.value(), actual);
 
                 if (ctor.isAnnotationPresent(ExpectedString.class)) {
-                    ExpectedString es = ctor.getAnnotation(ExpectedString.class);
-                    String result = ctor.toString();
-                    if (! es.value().equals(result)) {
-                        failures++;
-                        System.err.printf("ERROR: Expected ''%s''; got ''%s''.\n",
-                                          es.value(), result);
-                    }
+                    failures += checkForFailure(ctor.getAnnotation(ExpectedString.class).value(),
+                                                ctor.toString());
                 }
             }
 
@@ -63,6 +54,15 @@
             throw new RuntimeException();
         }
     }
+
+    private static int checkForFailure(String expected, String actual) {
+        if (!expected.equals(actual)) {
+            System.err.printf("ERROR: Expected ''%s'';%ngot             ''%s''.\n",
+                              expected, actual);
+            return 1;
+        } else
+            return 0;
+    }
 }
 
 class TestClass1 {
@@ -76,13 +76,23 @@
 
     @ExpectedGenericString(
    "private TestClass1(java.lang.Object) throws java.lang.RuntimeException")
+    @ExpectedString(
+   "private TestClass1(java.lang.Object) throws java.lang.RuntimeException")
     private TestClass1(Object o) throws RuntimeException {}
 
     @ExpectedGenericString(
    "protected <S,T> TestClass1(S,T) throws java.lang.Exception")
+    @ExpectedString(
+   "protected TestClass1(java.lang.Object,java.lang.Object) throws java.lang.Exception")
     protected <S, T> TestClass1(S s, T t) throws Exception{}
 
     @ExpectedGenericString(
+   "<E> TestClass1() throws E")
+    @ExpectedString(
+   "TestClass1() throws java.lang.Exception")
+    <E extends Exception> TestClass1() throws E {}
+
+    @ExpectedGenericString(
    "TestClass1(java.lang.Object...)")
     @ExpectedString(
    "TestClass1(java.lang.Object[])")