Mercurial > hg > truffle
diff graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/TestHelper.java @ 16967:c5db657d93c1
Truffle-DSL: added test for source sections in @CreateCast methods.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Wed, 27 Aug 2014 11:35:59 +0200 |
parents | 5148aab962af |
children | 62c43fcf5be2 |
line wrap: on
line diff
--- a/graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/TestHelper.java Wed Aug 27 09:14:19 2014 +0200 +++ b/graal/com.oracle.truffle.api.dsl.test/src/com/oracle/truffle/api/dsl/test/TestHelper.java Wed Aug 27 11:35:59 2014 +0200 @@ -24,7 +24,6 @@ import static org.junit.Assert.*; -import java.lang.reflect.*; import java.util.*; import com.oracle.truffle.api.*; @@ -47,41 +46,32 @@ return nodes; } - static <E extends ValueNode> E createNode(NodeFactory<E> factory, Object... constants) { + static <E extends ValueNode> E createNode(NodeFactory<E> factory, boolean prefixConstants, Object... constants) { ArgumentNode[] argumentNodes = arguments(factory.getExecutionSignature().size()); List<Object> argumentList = new ArrayList<>(); + if (prefixConstants) { + argumentList.addAll(Arrays.asList(constants)); + } if (ChildrenNode.class.isAssignableFrom(factory.getNodeClass())) { argumentList.add(argumentNodes); } else { argumentList.addAll(Arrays.asList(argumentNodes)); } - argumentList.addAll(Arrays.asList(constants)); + if (!prefixConstants) { + argumentList.addAll(Arrays.asList(constants)); + } return factory.createNode(argumentList.toArray(new Object[argumentList.size()])); } - static <E extends ValueNode> E createGenericNode(NodeFactory<E> factory, Object... constants) { - Method createGenericMethod; - try { - createGenericMethod = factory.getClass().getMethod("createGeneric", factory.getNodeClass()); - } catch (NoSuchMethodException e) { - throw new RuntimeException(e); - } - try { - return factory.getNodeClass().cast(createGenericMethod.invoke(null, createNode(factory, constants))); - } catch (IllegalAccessException | InvocationTargetException e) { - throw new RuntimeException(e); - } - } - static <E extends ValueNode> TestRootNode<E> createRoot(NodeFactory<E> factory, Object... constants) { - TestRootNode<E> rootNode = new TestRootNode<>(createNode(factory, constants)); + TestRootNode<E> rootNode = new TestRootNode<>(createNode(factory, false, constants)); rootNode.adoptChildren(); return rootNode; } - static <E extends ValueNode> TestRootNode<E> createGenericRoot(NodeFactory<E> factory, Object... constants) { - TestRootNode<E> rootNode = new TestRootNode<>(createGenericNode(factory, constants)); + static <E extends ValueNode> TestRootNode<E> createRootPrefix(NodeFactory<E> factory, boolean prefixConstants, Object... constants) { + TestRootNode<E> rootNode = new TestRootNode<>(createNode(factory, prefixConstants, constants)); rootNode.adoptChildren(); return rootNode; }