diff options
author | Ian Rogers <irogers@google.com> | 2012-02-17 14:48:16 -0800 |
---|---|---|
committer | Ian Rogers <irogers@google.com> | 2012-02-17 14:56:26 -0800 |
commit | 1441f6f3ea53ce07d119b32eadaf322f71e07676 (patch) | |
tree | 90f3c146943282d01dad3acbb1b49fab8ede1895 /test/042-new-instance | |
parent | 55b16ceff1068cce61c86f2c9ca011a97c869bd4 (diff) | |
download | art-1441f6f3ea53ce07d119b32eadaf322f71e07676.tar.gz art-1441f6f3ea53ce07d119b32eadaf322f71e07676.tar.bz2 art-1441f6f3ea53ce07d119b32eadaf322f71e07676.zip |
Test Class.forName and serialization on inner classes
Change-Id: Ib8e5e5df02818ca05d46d866f60a59c07a843d51
Diffstat (limited to 'test/042-new-instance')
-rw-r--r-- | test/042-new-instance/expected.txt | 2 | ||||
-rw-r--r-- | test/042-new-instance/src/Main.java | 28 |
2 files changed, 30 insertions, 0 deletions
diff --git a/test/042-new-instance/expected.txt b/test/042-new-instance/expected.txt index bb1b80c122..7d843d1b3f 100644 --- a/test/042-new-instance/expected.txt +++ b/test/042-new-instance/expected.txt @@ -4,6 +4,8 @@ LocalClass3 succeeded Got expected InstantationError Cons LocalClass failed as expected Cons LocalClass2 succeeded +Cons InnerClass succeeded +Cons StaticInnerClass succeeded Cons got expected PackageAccess complaint Cons got expected InstantationException Cons got expected PackageAccess2 complaint diff --git a/test/042-new-instance/src/Main.java b/test/042-new-instance/src/Main.java index e43c5a5680..b0a5fd4f66 100644 --- a/test/042-new-instance/src/Main.java +++ b/test/042-new-instance/src/Main.java @@ -92,6 +92,28 @@ public class Main { ex.printStackTrace(); } + // should succeed + try { + Class c = Class.forName("Main$InnerClass"); + Constructor cons = c.getDeclaredConstructor(new Class<?>[]{Main.class}); + Object obj = cons.newInstance(new Main()); + System.out.println("Cons InnerClass succeeded"); + } catch (Exception ex) { + System.err.println("Cons InnerClass failed"); + ex.printStackTrace(); + } + + // should succeed + try { + Class c = Class.forName("Main$StaticInnerClass"); + Constructor cons = c.getDeclaredConstructor((Class[]) null); + Object obj = cons.newInstance(); + System.out.println("Cons StaticInnerClass succeeded"); + } catch (Exception ex) { + System.err.println("Cons StaticInnerClass failed"); + ex.printStackTrace(); + } + // should fail try { Class c = Class.forName("otherpackage.PackageAccess"); @@ -135,6 +157,12 @@ public class Main { } } + + class InnerClass { + } + + static class StaticInnerClass { + } } class LocalClass { |