Exemple #1
0
  @Test
  public void testTermination() throws ScriptException {
    logger1.info("Termination Test");
    ScriptEngineManager manager = new ScriptEngineManager();
    JRubyEngine instance = (JRubyEngine) manager.getEngineByName("jruby");
    instance.eval("$x='GVar'");
    StringWriter sw = new StringWriter();
    instance.getContext().setWriter(sw);
    instance.eval("at_exit { puts \"#{$x} in an at_exit block\" }");
    String expResult = "";
    assertEquals(expResult, sw.toString().trim());

    sw = new StringWriter();
    instance.getContext().setWriter(sw);
    instance
        .getContext()
        .setAttribute("org.jruby.embed.termination", true, ScriptContext.ENGINE_SCOPE);
    instance.eval("");
    expResult = "GVar in an at_exit block";
    assertEquals(expResult, sw.toString().trim());
    instance
        .getContext()
        .setAttribute("org.jruby.embed.termination", false, ScriptContext.ENGINE_SCOPE);
    instance = null;
  }