changeset 21434:dc379fc31520

LIRTest: support for zero parameters and subclasses of LIRTestSpecification.
author Josef Eisl <josef.eisl@jku.at>
date Wed, 20 May 2015 16:27:26 +0200
parents a6c7b3a7e63a
children feca840a7d81
files graal/com.oracle.graal.lir.jtt/src/com/oracle/graal/lir/jtt/LIRTest.java
diffstat 1 files changed, 8 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.lir.jtt/src/com/oracle/graal/lir/jtt/LIRTest.java	Wed May 20 15:25:28 2015 +0200
+++ b/graal/com.oracle.graal.lir.jtt/src/com/oracle/graal/lir/jtt/LIRTest.java	Wed May 20 16:27:26 2015 +0200
@@ -51,6 +51,10 @@
     public abstract static class LIRTestSpecification {
         private Value result;
 
+        public void generate(LIRGeneratorTool gen) {
+            defaultHandler(gen);
+        }
+
         public void generate(LIRGeneratorTool gen, Value arg0) {
             defaultHandler(gen, arg0);
         }
@@ -76,7 +80,9 @@
         }
 
         void generate(LIRGeneratorTool gen, Value[] values) {
-            if (values.length == 1) {
+            if (values.length == 0) {
+                generate(gen);
+            } else if (values.length == 1) {
                 generate(gen, values[0]);
             } else if (values.length == 2) {
                 generate(gen, values[0], values[1]);
@@ -244,7 +250,7 @@
                 assert Modifier.isStatic(m.getModifiers());
                 Class<?>[] p = m.getParameterTypes();
                 assert p.length > 0;
-                assert p[0].equals(LIRTestSpecification.class);
+                assert LIRTestSpecification.class.isAssignableFrom(p[0]);
 
                 if (m.getReturnType().equals(void.class)) {
                     invocationPlugins.register(fixedLIRNodePlugin, c, m.getName(), p);