From 55278cca32c6c55dff1fe1e0ba3a785a7279189f Mon Sep 17 00:00:00 2001 From: Tomas Stupka <tomas.stupka@oracle.com> Date: Mon, 20 Nov 2017 16:01:04 +0100 Subject: [PATCH] - handle HAS_KEYS and IS_INSTANTIABLE in RAbstractVectorFactory - simplify MR tests --- .../interop/RAbstractVectorAccessFactory.java | 20 +++ .../r/test/engine/interop/AbstractMRTest.java | 161 ++++++++++-------- .../engine/interop/ActiveBindingMRTest.java | 10 -- .../r/test/engine/interop/ListMRTest.java | 12 +- .../interop/RArgsValuesAndNamesMRTest.java | 13 +- .../r/test/engine/interop/RComplexMRTest.java | 15 -- .../r/test/engine/interop/RDoubleMRTest.java | 10 -- .../engine/interop/REnvironmentMRTest.java | 12 +- .../test/engine/interop/RFunctionMRTest.java | 5 - .../r/test/engine/interop/RIntegerMRTest.java | 10 -- .../engine/interop/RInteropScalarMRTest.java | 10 -- .../test/engine/interop/RLanguageMRTest.java | 5 - .../r/test/engine/interop/RRawMRTest.java | 15 -- .../test/engine/interop/RS4ObjectMRTest.java | 2 +- .../r/test/engine/interop/VectorMRTest.java | 16 -- mx.fastr/suite.py | 2 +- 16 files changed, 133 insertions(+), 185 deletions(-) diff --git a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RAbstractVectorAccessFactory.java b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RAbstractVectorAccessFactory.java index 0ac20c8270..c3824b5e0f 100644 --- a/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RAbstractVectorAccessFactory.java +++ b/com.oracle.truffle.r.engine/src/com/oracle/truffle/r/engine/interop/RAbstractVectorAccessFactory.java @@ -245,6 +245,16 @@ public final class RAbstractVectorAccessFactory implements Factory26 { }); } + @Override + public CallTarget accessIsInstantiable() { + return Truffle.getRuntime().createCallTarget(new InteropRootNode() { + @Override + public Object execute(VirtualFrame frame) { + return false; + } + }); + } + @Override public CallTarget accessIsBoxed() { return Truffle.getRuntime().createCallTarget(new InteropRootNode() { @@ -266,6 +276,16 @@ public final class RAbstractVectorAccessFactory implements Factory26 { }); } + @Override + public CallTarget accessHasKeys() { + return Truffle.getRuntime().createCallTarget(new InteropRootNode() { + @Override + public Object execute(VirtualFrame frame) { + return false; + } + }); + } + @Override public CallTarget accessGetSize() { return Truffle.getRuntime().createCallTarget(new InteropRootNode() { diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/AbstractMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/AbstractMRTest.java index 724ba31190..d3060412fb 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/AbstractMRTest.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/AbstractMRTest.java @@ -22,7 +22,7 @@ */ package com.oracle.truffle.r.test.engine.interop; -import static org.junit.Assert.assertEquals; +import com.oracle.truffle.api.interop.ArityException; import static org.junit.Assert.assertTrue; import java.util.HashSet; @@ -37,10 +37,14 @@ import com.oracle.truffle.api.interop.ForeignAccess; import com.oracle.truffle.api.interop.InteropException; import com.oracle.truffle.api.interop.Message; import com.oracle.truffle.api.interop.TruffleObject; +import com.oracle.truffle.api.interop.UnknownIdentifierException; import com.oracle.truffle.api.interop.UnsupportedMessageException; +import com.oracle.truffle.api.interop.UnsupportedTypeException; import com.oracle.truffle.api.vm.PolyglotEngine; import com.oracle.truffle.r.ffi.impl.interop.NativePointer; import com.oracle.truffle.r.runtime.data.RNull; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; public abstract class AbstractMRTest { @@ -69,40 +73,29 @@ public abstract class AbstractMRTest { */ protected abstract TruffleObject createEmptyTruffleObject() throws Exception; - protected String[] getKeys() { - return null; + /** + * + * @param obj + * @return array of keys or <code>null</code> if KEYS message not supported + */ + protected String[] getKeys(TruffleObject obj) { + throw new UnsupportedOperationException("override if HAS_KEYS returns true"); } protected boolean isNull(@SuppressWarnings("unused") TruffleObject obj) { return false; } - protected boolean isExecutable(@SuppressWarnings("unused") TruffleObject obj) { - return false; - } - - protected boolean isPointer(@SuppressWarnings("unused") TruffleObject obj) { - return true; - } - - protected boolean isBoxed(@SuppressWarnings("unused") TruffleObject obj) { - return false; - } - - protected boolean hasSize(@SuppressWarnings("unused") TruffleObject obj) { - return false; - } - protected boolean testToNative(@SuppressWarnings("unused") TruffleObject obj) { return true; } protected int getSize(@SuppressWarnings("unused") TruffleObject obj) { - throw new UnsupportedOperationException("override if hasSize returns true"); + throw new UnsupportedOperationException("override if HAS_SIZE returns true"); } protected Object getUnboxed(@SuppressWarnings("unused") TruffleObject obj) { - throw new UnsupportedOperationException("override if isBoxed returns true"); + throw new UnsupportedOperationException("override if IS_BOXED returns true"); } @Test @@ -113,16 +106,44 @@ public abstract class AbstractMRTest { } @Test - public void testIsExecutable() throws Exception { + public void testExecutable() throws Exception { for (TruffleObject obj : createTruffleObjects()) { - assertEquals(isExecutable(obj), ForeignAccess.sendIsExecutable(Message.IS_EXECUTABLE.createNode(), obj)); + try { + // TODO if the need appears, also provide for args for execute + ForeignAccess.sendExecute(Message.createExecute(0).createNode(), obj); + assertEquals(obj.getClass().getSimpleName() + " " + obj + " IS_EXECUTABLE", true, ForeignAccess.sendIsExecutable(Message.IS_EXECUTABLE.createNode(), obj)); + } catch (UnsupportedTypeException | ArityException e) { + throw e; + } catch (UnsupportedMessageException e) { + assertEquals(obj.getClass().getSimpleName() + " " + obj + " IS_EXECUTABLE", false, ForeignAccess.sendIsExecutable(Message.IS_EXECUTABLE.createNode(), obj)); + } } } @Test - public void testIsPointer() throws Exception { + public void testInstantiable() throws Exception { for (TruffleObject obj : createTruffleObjects()) { - assertEquals(obj.getClass().getSimpleName(), isPointer(obj), ForeignAccess.sendIsPointer(Message.IS_POINTER.createNode(), obj)); + try { + // TODO if the need appears, also provide for args for new + ForeignAccess.sendNew(Message.createNew(0).createNode(), obj); + assertEquals(obj.getClass().getSimpleName() + " " + obj + " IS_INSTANTIABLE", true, ForeignAccess.sendIsInstantiable(Message.IS_INSTANTIABLE.createNode(), obj)); + } catch (UnsupportedTypeException | ArityException e) { + throw e; + } catch (UnsupportedMessageException e) { + assertEquals(obj.getClass().getSimpleName() + " " + obj + " IS_INSTANTIABLE", false, ForeignAccess.sendIsInstantiable(Message.IS_INSTANTIABLE.createNode(), obj)); + } + } + } + + @Test + public void testAsNativePointer() throws Exception { + for (TruffleObject obj : createTruffleObjects()) { + try { + assertNotNull(obj.getClass().getSimpleName(), ForeignAccess.sendToNative(Message.AS_POINTER.createNode(), obj)); + assertEquals(obj.getClass().getSimpleName() + " " + obj + " IS_POINTER", true, ForeignAccess.sendIsPointer(Message.IS_POINTER.createNode(), obj)); + } catch (UnsupportedMessageException e) { + assertEquals(obj.getClass().getSimpleName() + " " + obj + " IS_POINTER", false, ForeignAccess.sendIsPointer(Message.IS_POINTER.createNode(), obj)); + } } } @@ -138,7 +159,7 @@ public abstract class AbstractMRTest { } else { assertTrue(obj.getClass().getSimpleName(), ForeignAccess.sendToNative(Message.TO_NATIVE.createNode(), obj) == obj); } - } catch (UnsupportedMessageException unsupportedMessageException) { + } catch (UnsupportedMessageException e) { } } } @@ -146,38 +167,62 @@ public abstract class AbstractMRTest { @Test public void testSize() throws Exception { for (TruffleObject obj : createTruffleObjects()) { - boolean hasSize = ForeignAccess.sendHasSize(Message.HAS_SIZE.createNode(), obj); - assertEquals("" + obj.getClass().getSimpleName() + " " + obj + " hasSize", hasSize(obj), hasSize); - if (hasSize) { - assertEquals(getSize(obj), ForeignAccess.sendGetSize(Message.GET_SIZE.createNode(), obj)); - } else { - assertInteropException(() -> ForeignAccess.sendGetSize(Message.GET_SIZE.createNode(), obj), UnsupportedMessageException.class); - } + testSize(obj); + } + TruffleObject empty = createEmptyTruffleObject(); + if (empty != null) { + testSize(empty); + } + } + + private void testSize(TruffleObject obj) { + try { + Object size = ForeignAccess.sendGetSize(Message.GET_SIZE.createNode(), obj); + assertEquals(getSize(obj), size); + assertEquals(obj.getClass().getSimpleName() + " " + obj + " HAS_SIZE", true, ForeignAccess.sendHasSize(Message.HAS_SIZE.createNode(), obj)); + } catch (UnsupportedMessageException e) { + assertEquals(obj.getClass().getSimpleName() + " " + obj + " HAS_SIZE", false, ForeignAccess.sendHasSize(Message.HAS_SIZE.createNode(), obj)); } } @Test public void testBoxed() throws Exception { for (TruffleObject obj : createTruffleObjects()) { - boolean isBoxed = ForeignAccess.sendIsBoxed(Message.IS_BOXED.createNode(), obj); - assertEquals("" + obj.getClass().getSimpleName() + " " + obj + " isBoxed", isBoxed(obj), isBoxed); - if (isBoxed) { - assertEquals(getUnboxed(obj), ForeignAccess.sendUnbox(Message.UNBOX.createNode(), obj)); - } else { - assertInteropException(() -> ForeignAccess.sendUnbox(Message.UNBOX.createNode(), obj), UnsupportedMessageException.class); - } + testUnboxed(obj); + } + TruffleObject empty = createEmptyTruffleObject(); + if (empty != null) { + testUnboxed(empty); + } + } + + private void testUnboxed(TruffleObject obj) { + try { + Object unboxed = ForeignAccess.sendUnbox(Message.UNBOX.createNode(), obj); + assertEquals(getUnboxed(obj), unboxed); + assertEquals(obj.getClass().getSimpleName() + " " + obj + " IS_BOXED", true, ForeignAccess.sendIsBoxed(Message.IS_BOXED.createNode(), obj)); + } catch (UnsupportedMessageException e) { + assertEquals(obj.getClass().getSimpleName() + " " + obj + " IS_BOXED", false, ForeignAccess.sendIsBoxed(Message.IS_BOXED.createNode(), obj)); } } @Test public void testKeys() throws Exception { - String[] keys = getKeys(); - if (keys == null) { - return; - } for (TruffleObject obj : createTruffleObjects()) { + testKeys(obj); + } + TruffleObject empty = createEmptyTruffleObject(); + if (empty != null) { + testKeys(empty); + } + } + + private void testKeys(TruffleObject obj) throws UnknownIdentifierException, UnsupportedMessageException { + try { TruffleObject keysObj = ForeignAccess.sendKeys(Message.KEYS.createNode(), obj); + int size = (int) ForeignAccess.sendGetSize(Message.GET_SIZE.createNode(), keysObj); + String[] keys = getKeys(obj); assertEquals(keys.length, size); Set<Object> set = new HashSet<>(); @@ -187,31 +232,9 @@ public abstract class AbstractMRTest { for (String key : keys) { assertTrue(set.contains(key)); } - } - } - - @Test - public void testEmpty() throws Exception { - - TruffleObject obj = createEmptyTruffleObject(); - if (obj != null) { - if (hasSize(obj)) { - int size = (int) ForeignAccess.sendGetSize(Message.GET_SIZE.createNode(), obj); - assertEquals(0, size); - } - - TruffleObject keys = null; - try { - keys = ForeignAccess.sendKeys(Message.KEYS.createNode(), obj); - } catch (UnsupportedMessageException ex) { - } - if (keys != null) { - boolean keysHasSize = ForeignAccess.sendHasSize(Message.HAS_SIZE.createNode(), keys); - if (keysHasSize) { - int keysSize = (int) ForeignAccess.sendGetSize(Message.GET_SIZE.createNode(), keys); - assertEquals(0, keysSize); - } - } + assertEquals(obj.getClass().getSimpleName() + " " + obj + " HAS_KEYS", true, ForeignAccess.sendHasKeys(Message.HAS_KEYS.createNode(), obj)); + } catch (UnsupportedMessageException e) { + assertEquals(obj.getClass().getSimpleName() + " " + obj + " HAS_KEYS", false, ForeignAccess.sendHasKeys(Message.HAS_KEYS.createNode(), obj)); } } diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/ActiveBindingMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/ActiveBindingMRTest.java index 6810c10e26..67876824be 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/ActiveBindingMRTest.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/ActiveBindingMRTest.java @@ -38,21 +38,11 @@ public class ActiveBindingMRTest extends AbstractMRTest { super.testIsNull(); // force inherited tests from AbstractMRTest } - @Override - protected boolean isBoxed(TruffleObject obj) { - return true; - } - @Override protected Object getUnboxed(TruffleObject obj) { return ((ActiveBinding) obj).readValue(); } - @Override - protected boolean isPointer(TruffleObject obj) { - return false; - } - @Override protected TruffleObject[] createTruffleObjects() throws Exception { Source src = Source.newBuilder("f=function() {}").mimeType("text/x-r").name("test.R").build(); diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/ListMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/ListMRTest.java index 2105850c64..4830226aa9 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/ListMRTest.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/ListMRTest.java @@ -159,8 +159,11 @@ public class ListMRTest extends AbstractMRTest { } @Override - protected String[] getKeys() { - return new String[]{"i", "d", "b", "fn", "n", ""}; + protected String[] getKeys(TruffleObject obj) { + if (((RAbstractContainer) obj).getLength() > 0) { + return new String[]{"i", "d", "b", "fn", "n", ""}; + } + return new String[]{}; } @Override @@ -174,11 +177,6 @@ public class ListMRTest extends AbstractMRTest { return create("list", ""); } - @Override - protected boolean hasSize(TruffleObject arg0) { - return true; - } - @Override protected int getSize(TruffleObject obj) { return obj instanceof RList ? ((RList) obj).getLength() : ((RPairList) obj).getLength(); diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RArgsValuesAndNamesMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RArgsValuesAndNamesMRTest.java index 25e3ce0587..7c81adcfaf 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RArgsValuesAndNamesMRTest.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RArgsValuesAndNamesMRTest.java @@ -140,8 +140,12 @@ public class RArgsValuesAndNamesMRTest extends AbstractMRTest { } @Override - protected String[] getKeys() { - return names; + protected String[] getKeys(TruffleObject obj) { + if (obj == RArgsValuesAndNames.EMPTY) { + return new String[]{}; + } else { + return names; + } } @Override @@ -149,11 +153,6 @@ public class RArgsValuesAndNamesMRTest extends AbstractMRTest { return RArgsValuesAndNames.EMPTY; } - @Override - protected boolean hasSize(TruffleObject obj) { - return true; - } - @Override protected int getSize(TruffleObject obj) { return ((RArgsValuesAndNames) obj).getLength(); diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RComplexMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RComplexMRTest.java index cc6f61e510..6b7b133f8a 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RComplexMRTest.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RComplexMRTest.java @@ -39,21 +39,6 @@ public class RComplexMRTest extends AbstractMRTest { super.testIsNull(); // force inherited tests from AbstractMRTest } - @Override - protected boolean isBoxed(TruffleObject obj) { - return false; - } - - @Override - protected boolean isPointer(TruffleObject obj) { - return false; - } - - @Override - protected boolean hasSize(TruffleObject obj) { - return false; - } - @Override protected TruffleObject createEmptyTruffleObject() throws Exception { return null; diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RDoubleMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RDoubleMRTest.java index d60ba87271..9972f65126 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RDoubleMRTest.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RDoubleMRTest.java @@ -39,16 +39,6 @@ public class RDoubleMRTest extends AbstractMRTest { return new TruffleObject[]{RDouble.valueOf(1.1)}; } - @Override - protected boolean isBoxed(TruffleObject obj) { - return true; - } - - @Override - protected boolean isPointer(TruffleObject obj) { - return false; - } - @Override protected Object getUnboxed(TruffleObject obj) { return ((RDouble) obj).getValue(); diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/REnvironmentMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/REnvironmentMRTest.java index 60ef430454..f84dd63dec 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/REnvironmentMRTest.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/REnvironmentMRTest.java @@ -36,6 +36,7 @@ import com.oracle.truffle.api.interop.UnknownIdentifierException; import com.oracle.truffle.api.interop.UnsupportedMessageException; import com.oracle.truffle.api.interop.java.JavaInterop; import com.oracle.truffle.api.source.Source; +import com.oracle.truffle.r.runtime.data.RDataFactory; import com.oracle.truffle.r.runtime.env.REnvironment; public class REnvironmentMRTest extends AbstractMRTest { @@ -138,13 +139,16 @@ public class REnvironmentMRTest extends AbstractMRTest { } @Override - protected String[] getKeys() { - return new String[]{"s", "i", "d", "b", "fn", "n", "l"}; + protected String[] getKeys(TruffleObject obj) { + if (((REnvironment) obj).getName().equals("R_EmptyEnv")) { + return new String[]{}; + } else { + return new String[]{"s", "i", "d", "b", "fn", "n", "l"}; + } } @Override protected TruffleObject createEmptyTruffleObject() throws Exception { - Source src = Source.newBuilder("new.env()").mimeType("text/x-r").name("test.R").build(); - return engine.eval(src).as(REnvironment.class); + return REnvironment.emptyEnv(); } } diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RFunctionMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RFunctionMRTest.java index 1397ae9de2..86b260ec4b 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RFunctionMRTest.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RFunctionMRTest.java @@ -78,11 +78,6 @@ public class RFunctionMRTest extends AbstractMRTest { return result.as(RFunction.class); } - @Override - protected boolean isExecutable(TruffleObject obj) { - return true; - } - @Override protected TruffleObject createEmptyTruffleObject() throws Exception { return null; diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RIntegerMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RIntegerMRTest.java index 01127d68fd..f4792987d0 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RIntegerMRTest.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RIntegerMRTest.java @@ -39,21 +39,11 @@ public class RIntegerMRTest extends AbstractMRTest { return new TruffleObject[]{RInteger.valueOf(123)}; } - @Override - protected boolean isBoxed(TruffleObject obj) { - return true; - } - @Override protected Object getUnboxed(TruffleObject obj) { return ((RInteger) obj).getValue(); } - @Override - protected boolean isPointer(TruffleObject obj) { - return false; - } - @Override protected TruffleObject createEmptyTruffleObject() throws Exception { return null; diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RInteropScalarMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RInteropScalarMRTest.java index 7f4d397cc3..745c81dee1 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RInteropScalarMRTest.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RInteropScalarMRTest.java @@ -62,16 +62,6 @@ public class RInteropScalarMRTest extends AbstractMRTest { RInteropScalar.RInteropShort.valueOf(Short.MAX_VALUE)}; } - @Override - protected boolean isBoxed(TruffleObject arg0) { - return true; - } - - @Override - protected boolean isPointer(TruffleObject obj) { - return false; - } - @Override protected Object getUnboxed(TruffleObject obj) { RInteropScalar is = (RInteropScalar) obj; diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RLanguageMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RLanguageMRTest.java index df5d8d6aca..592989add2 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RLanguageMRTest.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RLanguageMRTest.java @@ -105,11 +105,6 @@ public class RLanguageMRTest extends AbstractMRTest { return null; } - @Override - protected boolean hasSize(TruffleObject obj) { - return true; - } - @Override protected int getSize(TruffleObject obj) { return ((RLanguage) obj).getLength(); diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RRawMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RRawMRTest.java index 6b1d2691dd..2bb50e4d34 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RRawMRTest.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RRawMRTest.java @@ -39,21 +39,6 @@ public class RRawMRTest extends AbstractMRTest { super.testIsNull(); // force inherited tests from AbstractMRTest } - @Override - protected boolean isBoxed(TruffleObject obj) { - return true; - } - - @Override - protected boolean isPointer(TruffleObject obj) { - return false; - } - - @Override - protected boolean hasSize(TruffleObject obj) { - return false; - } - @Override protected Object getUnboxed(TruffleObject obj) { return ((RRaw) obj).getValue(); diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RS4ObjectMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RS4ObjectMRTest.java index 70b314fae9..858f2687b9 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RS4ObjectMRTest.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/RS4ObjectMRTest.java @@ -125,7 +125,7 @@ public class RS4ObjectMRTest extends AbstractMRTest { } @Override - protected String[] getKeys() { + protected String[] getKeys(TruffleObject obj) { return new String[]{"s", "d", "i", "b", "fn", "class"}; } diff --git a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/VectorMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/VectorMRTest.java index bf7b492695..67c3f0c756 100644 --- a/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/VectorMRTest.java +++ b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/VectorMRTest.java @@ -38,7 +38,6 @@ import com.oracle.truffle.api.interop.java.JavaInterop; import com.oracle.truffle.api.source.Source; import com.oracle.truffle.r.runtime.data.RDataFactory; import com.oracle.truffle.r.runtime.data.RObject; -import com.oracle.truffle.r.runtime.data.RVector; import com.oracle.truffle.r.runtime.data.model.RAbstractIntVector; import com.oracle.truffle.r.runtime.data.model.RAbstractStringVector; import com.oracle.truffle.r.runtime.data.model.RAbstractVector; @@ -108,32 +107,17 @@ public class VectorMRTest extends AbstractMRTest { return obj instanceof RObject; } - @Override - protected boolean isBoxed(TruffleObject obj) { - return ((RAbstractVector) obj).getLength() == 1; - } - @Override protected Object getUnboxed(TruffleObject obj) { assertTrue(((RAbstractVector) obj).getLength() == 1); return ((RAbstractVector) obj).getDataAtAsObject(0); } - @Override - protected boolean hasSize(TruffleObject obj) { - return true; - } - @Override protected int getSize(TruffleObject obj) { return ((RAbstractVector) obj).getLength(); } - @Override - protected boolean isPointer(TruffleObject obj) { - return obj instanceof RVector<?>; - } - private static TruffleObject create(String createTxt) throws Exception { Source src = Source.newBuilder(createTxt).mimeType("text/x-r").name("test.R").build(); return engine.eval(src).as(RAbstractVector.class); diff --git a/mx.fastr/suite.py b/mx.fastr/suite.py index fcbca55fbf..85809ddcf3 100644 --- a/mx.fastr/suite.py +++ b/mx.fastr/suite.py @@ -29,7 +29,7 @@ suite = { { "name" : "truffle", "subdir" : True, - "version" : "d1bb9076f1fa6af71c60be140f980794596a75b4", + "version" : "e3ce4c4abc668fd637e64a467a8d5b999c2fbdae", "urls" : [ {"url" : "https://github.com/graalvm/graal", "kind" : "git"}, {"url" : "https://curio.ssw.jku.at/nexus/content/repositories/snapshots", "kind" : "binary"}, -- GitLab