Mercurial > hg > truffle
diff truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/vm/ExceptionDuringParsingTest.java @ 22183:1421041175a7
Adding dispose() and TruffleLanguage.disposeContext to allow user request and languages explicitly free the resources
author | Jaroslav Tulach <jaroslav.tulach@oracle.com> |
---|---|
date | Mon, 21 Sep 2015 14:05:33 +0200 |
parents | dc83cc1f94f2 |
children | 6380c7de0159 |
line wrap: on
line diff
--- a/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/vm/ExceptionDuringParsingTest.java Mon Sep 21 13:11:41 2015 +0200 +++ b/truffle/com.oracle.truffle.api.test/src/com/oracle/truffle/api/test/vm/ExceptionDuringParsingTest.java Mon Sep 21 14:05:33 2015 +0200 @@ -29,6 +29,7 @@ import java.io.IOException; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import org.junit.Test; @@ -41,11 +42,33 @@ TruffleVM.Language language = vm.getLanguages().get(L1); assertNotNull("L1 language is defined", language); + final Source src = Source.fromText("parse=No, no, no!", "Fail on parsing").withMimeType(L1); try { - vm.eval(Source.fromText("parse=No, no, no!", "Fail on parsing").withMimeType(L1)); + vm.eval(src); fail("Exception thrown"); } catch (IOException ex) { assertEquals(ex.getMessage(), "No, no, no!"); } + + vm.dispose(); + + try { + vm.eval(src); + fail("Should throw an exception"); + } catch (IllegalStateException ex) { + assertTrue(ex.getMessage(), ex.getMessage().contains("disposed")); + } + try { + vm.findGlobalSymbol("nothing"); + fail("Should throw an exception"); + } catch (IllegalStateException ex) { + assertTrue(ex.getMessage(), ex.getMessage().contains("disposed")); + } + try { + vm.dispose(); + fail("Should throw an exception"); + } catch (IllegalStateException ex) { + assertTrue(ex.getMessage(), ex.getMessage().contains("disposed")); + } } }