Mercurial > hg > truffle
changeset 18784:3c7d543d758d
Truffle-DSL: minor cleanup to the guard test.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Mon, 05 Jan 2015 20:23:22 +0100 |
parents | 7d67a33e1bbb |
children | 93016f2f3f16 |
files | graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MethodGuardsTest.java |
diffstat | 1 files changed, 32 insertions(+), 28 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MethodGuardsTest.java Mon Jan 05 20:23:22 2015 +0100 +++ b/graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/MethodGuardsTest.java Mon Jan 05 20:23:22 2015 +0100 @@ -28,17 +28,21 @@ import org.junit.*; import com.oracle.truffle.api.dsl.*; -import com.oracle.truffle.api.dsl.test.BinaryNodeTest.*; -import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GlobalFlagGuardFactory; +import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.Guard1Factory; +import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.Guard2Factory; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardWithBaseClassFactory; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardWithBoxedPrimitiveFactory; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.GuardWithObjectFactory; -import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.InvocationGuardFactory; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.TestAbstractGuard1Factory; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.TestGuardResolve1Factory; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.TestGuardResolve2Factory; import com.oracle.truffle.api.dsl.test.MethodGuardsTestFactory.TestGuardResolve3Factory; -import com.oracle.truffle.api.dsl.test.TypeSystemTest.*; +import com.oracle.truffle.api.dsl.test.TypeSystemTest.Abstract; +import com.oracle.truffle.api.dsl.test.TypeSystemTest.BExtendsAbstract; +import com.oracle.truffle.api.dsl.test.TypeSystemTest.CExtendsAbstract; +import com.oracle.truffle.api.dsl.test.TypeSystemTest.Interface; +import com.oracle.truffle.api.dsl.test.TypeSystemTest.TestRootNode; +import com.oracle.truffle.api.dsl.test.TypeSystemTest.ValueNode; @SuppressWarnings("unused") public class MethodGuardsTest { @@ -46,56 +50,56 @@ private static final Object NULL = new Object(); @Test - public void testGuardInvocations() { - TestRootNode<InvocationGuard> root = createRoot(InvocationGuardFactory.getInstance()); + public void testInvocations() { + TestRootNode<Guard1> root = createRoot(Guard1Factory.getInstance()); - assertEquals(Integer.MAX_VALUE, executeWith(root, Integer.MAX_VALUE - 1, 1)); - assertEquals(1, InvocationGuard.specializedInvocations); - assertEquals(0, InvocationGuard.genericInvocations); + assertEquals(Integer.MAX_VALUE, executeWith(root, Integer.MAX_VALUE - 1)); + assertEquals(1, Guard1.specializedInvocations); + assertEquals(0, Guard1.genericInvocations); - assertEquals(42, executeWith(root, Integer.MAX_VALUE, 1)); - assertEquals(1, InvocationGuard.specializedInvocations); - assertEquals(1, InvocationGuard.genericInvocations); + assertEquals(42, executeWith(root, Integer.MAX_VALUE)); + assertEquals(1, Guard1.specializedInvocations); + assertEquals(1, Guard1.genericInvocations); } - @NodeChildren({@NodeChild("value0"), @NodeChild("value1")}) - public abstract static class InvocationGuard extends ValueNode { + @NodeChild + static class Guard1 extends ValueNode { static int specializedInvocations = 0; static int genericInvocations = 0; - boolean guard(int value0, int value1) { + boolean g(int value0) { return value0 != Integer.MAX_VALUE; } - @Specialization(guards = "guard") - int doSpecialized(int value0, int value1) { + @Specialization(guards = "g") + int f1(int value0) { specializedInvocations++; - return value0 + value1; + return value0 + 1; } @Fallback - int doGeneric(Object value0, Object value1) { + int f2(Object value0) { genericInvocations++; - return 42; // the generic answer to all questions + return 42; } } @Test - public void testGuardGlobal() { - TestRootNode<GlobalFlagGuard> root = createRoot(GlobalFlagGuardFactory.getInstance()); + public void testGuardSideEffect() { + TestRootNode<Guard2> root = createRoot(Guard2Factory.getInstance()); assertEquals(42, executeWith(root, NULL)); - GlobalFlagGuard.globalFlag = true; + Guard2.globalFlag = true; assertEquals(41, executeWith(root, NULL)); - GlobalFlagGuard.globalFlag = false; + Guard2.globalFlag = false; assertEquals(42, executeWith(root, NULL)); } - @NodeChild("expression") - public abstract static class GlobalFlagGuard extends ValueNode { + @NodeChild + static class Guard2 extends ValueNode { static boolean globalFlag = false; @@ -104,12 +108,12 @@ } @Specialization(guards = "globalFlagGuard") - int doSpecialized(Object value0) { + int f1(Object value0) { return 41; } @Fallback - int doGeneric(Object value0) { + int f2(Object value0) { return 42; // the generic answer to all questions } }