Mercurial > hg > truffle
diff graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/LazyClassLoadingTest.java @ 18761:a665483c3881
Truffle-DSL: new node layout implementation.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Mon, 29 Dec 2014 23:38:54 +0100 |
parents | dd95dff835f9 |
children | 15fe16c45d64 |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/LazyClassLoadingTest.java Mon Dec 29 23:38:50 2014 +0100 +++ b/graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/LazyClassLoadingTest.java Mon Dec 29 23:38:54 2014 +0100 @@ -28,28 +28,45 @@ import com.oracle.truffle.api.dsl.*; import com.oracle.truffle.api.dsl.test.LazyClassLoadingTestFactory.TestNodeFactory; -import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; +import com.oracle.truffle.api.dsl.test.TypeSystemTest.*; public class LazyClassLoadingTest { @Test public void test() { - String testClassName = getClass().getName(); - String factoryClassName = testClassName + "Factory"; - String nodeFactoryClassName = factoryClassName + "$TestNodeFactory"; - - Assert.assertFalse(isLoaded(factoryClassName + "$TestNode")); - Assert.assertFalse(isLoaded(nodeFactoryClassName)); + String factoryName = TestNodeFactory.class.getName(); + String nodeName = factoryName + "$" + TestNode.class.getSimpleName() + "Gen"; + Assert.assertTrue(isLoaded(factoryName)); + Assert.assertFalse(isLoaded(nodeName)); NodeFactory<TestNode> factory = TestNodeFactory.getInstance(); + Assert.assertTrue(isLoaded(factoryName)); + Assert.assertTrue(isLoaded(nodeName)); - Assert.assertTrue(isLoaded(nodeFactoryClassName)); - Assert.assertFalse(isLoaded(nodeFactoryClassName + "$TestBaseNode")); + Assert.assertFalse(isLoaded(nodeName + "$UninitializedNode")); + Assert.assertFalse(isLoaded(nodeName + "$BaseNode")); + Assert.assertFalse(isLoaded(nodeName + "$IntNode")); + Assert.assertFalse(isLoaded(nodeName + "$BooleanNode")); + Assert.assertFalse(isLoaded(nodeName + "$PolymorphicNode")); + + TestRootNode<TestNode> root = TestHelper.createRoot(factory); - TestHelper.createRoot(factory); + Assert.assertTrue(isLoaded(nodeName + "$BaseNode")); + Assert.assertTrue(isLoaded(nodeName + "$UninitializedNode")); + Assert.assertFalse(isLoaded(nodeName + "$IntNode")); + Assert.assertFalse(isLoaded(nodeName + "$BooleanNode")); + Assert.assertFalse(isLoaded(nodeName + "$PolymorphicNode")); + + Assert.assertEquals(42, TestHelper.executeWith(root, 42)); - Assert.assertTrue(isLoaded(nodeFactoryClassName + "$TestBaseNode")); - Assert.assertTrue(isLoaded(nodeFactoryClassName + "$TestUninitializedNode")); - Assert.assertFalse(isLoaded(nodeFactoryClassName + "$TestGenericNode")); + Assert.assertTrue(isLoaded(nodeName + "$IntNode")); + Assert.assertFalse(isLoaded(nodeName + "$BooleanNode")); + Assert.assertFalse(isLoaded(nodeName + "$PolymorphicNode")); + + Assert.assertEquals(true, TestHelper.executeWith(root, true)); + + Assert.assertTrue(isLoaded(nodeName + "$IntNode")); + Assert.assertTrue(isLoaded(nodeName + "$BooleanNode")); + Assert.assertTrue(isLoaded(nodeName + "$PolymorphicNode")); } private boolean isLoaded(String className) { @@ -64,22 +81,18 @@ } } - @SuppressWarnings("unused") - @NodeChildren({@NodeChild("left"), @NodeChild("right")}) + @NodeChild("a") abstract static class TestNode extends ValueNode { - @Specialization(order = 1) - int add(int left, int right) { - return 42; + + @Specialization + int s(int a) { + return a; } - @Specialization(order = 2) - int add(boolean left, boolean right) { - return 21; + @Specialization + boolean s(boolean a) { + return a; } - @Specialization(order = 4) - String add(boolean left, int right) { - return "(boolean,int)"; - } } }