rt/vm8/src/test/java/org/apidesign/bck2brwsr/vm8/InvokeDynamicTest.java
branchjdk8
changeset 1656 589affbf39a2
parent 1654 da24a2411ee7
child 1667 335691ea9714
     1.1 --- a/rt/vm8/src/test/java/org/apidesign/bck2brwsr/vm8/InvokeDynamicTest.java	Sun Aug 10 07:12:30 2014 +0200
     1.2 +++ b/rt/vm8/src/test/java/org/apidesign/bck2brwsr/vm8/InvokeDynamicTest.java	Sun Aug 10 08:07:11 2014 +0200
     1.3 @@ -58,7 +58,7 @@
     1.4      @Test public void simpleDynamicInJS() throws Exception {
     1.5          code.assertExec(
     1.6              "Invoke dynamic can return a value", InvokeDynamic.class,
     1.7 -            "dynamic__Ljava_lang_String_2",
     1.8 +            "dynamicSay__Ljava_lang_String_2",
     1.9              "Hello from Dynamic!"
    1.10          );
    1.11      }
    1.12 @@ -102,21 +102,27 @@
    1.13                  0);
    1.14          is.close();
    1.15          invokeDynamicBytes = writer.toByteArray();
    1.16 +        final boolean[] loaded = { false };
    1.17          ClassLoader l = new ClassLoader() {
    1.18              @Override
    1.19              public Class<?> loadClass(String name) throws ClassNotFoundException {
    1.20                  if (name.equals(InvokeDynamic.class.getName())) {
    1.21 +                    loaded[0] = true;
    1.22                      return defineClass(name, invokeDynamicBytes, 0, invokeDynamicBytes.length);
    1.23                  }
    1.24                  return super.loadClass(name);
    1.25              }
    1.26          };
    1.27          invokeDynamicClass = l.loadClass(InvokeDynamic.class.getName());
    1.28 -        
    1.29 +        assertTrue(loaded[0], "InvokeDynamic class should be loaded!");
    1.30 +
    1.31 +        final EmulResWithInvDyn emul = new EmulResWithInvDyn();
    1.32          code = TestVM.compileClass(
    1.33 -            null, null, new EmulationResourcesWithException(),
    1.34 +            null, null, emul,
    1.35              InvokeDynamic.class.getName().replace('.', '/')
    1.36          );
    1.37 +        
    1.38 +        assertTrue(emul.loaded, "InvokeDynamic class should be processed!");
    1.39      }
    1.40      
    1.41      
    1.42 @@ -147,10 +153,13 @@
    1.43          }
    1.44      }
    1.45      
    1.46 -    private static class EmulationResourcesWithException implements Bck2Brwsr.Resources {
    1.47 +    private static class EmulResWithInvDyn implements Bck2Brwsr.Resources {
    1.48 +        boolean loaded;
    1.49 +        
    1.50          @Override
    1.51          public InputStream get(String name) throws IOException {
    1.52 -            if ("org/apidesign/vm4brwsr/InvokeDynamic.class".equals(name)) {
    1.53 +            if ("org/apidesign/bck2brwsr/vm8/InvokeDynamic.class".equals(name)) {
    1.54 +                loaded = true;
    1.55                  return new ByteArrayInputStream(invokeDynamicBytes);
    1.56              }
    1.57              if ("java/net/URI.class".equals(name)) {