From 05c3b530935f0ca2f213fd41a8bfb0c786edf760 Mon Sep 17 00:00:00 2001 From: stepan <stepan.sindelar@oracle.com> Date: Wed, 30 Aug 2017 16:57:23 +0200 Subject: [PATCH] Update interop tests --- .../r/test/engine/interop/AbstractMRTest.java | 7 +++++++ .../r/test/engine/interop/RInteropScalarMRTest.java | 7 ++++++- .../truffle/r/test/engine/interop/VectorMRTest.java | 12 ++++++++++++ 3 files changed, 25 insertions(+), 1 deletion(-) 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 45008be104..3454f3d7ba 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 @@ -91,6 +91,10 @@ public abstract class AbstractMRTest { return false; } + protected boolean testToNative(TruffleObject obj) { + return true; + } + protected int getSize(@SuppressWarnings("unused") TruffleObject obj) { throw new UnsupportedOperationException("override if hasSize returns true"); } @@ -123,6 +127,9 @@ public abstract class AbstractMRTest { @Test public void testNativePointer() throws Exception { for (TruffleObject obj : createTruffleObjects()) { + if (!testToNative(obj)) { + continue; + } try { assertTrue(obj.getClass().getSimpleName(), ForeignAccess.sendToNative(Message.TO_NATIVE.createNode(), obj) == obj); } catch (UnsupportedMessageException unsupportedMessageException) { 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 fbbcd375cc..7f4d397cc3 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 @@ -26,13 +26,13 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; +import org.junit.Assert; import org.junit.Test; import com.oracle.truffle.api.interop.ForeignAccess; import com.oracle.truffle.api.interop.Message; import com.oracle.truffle.api.interop.TruffleObject; import com.oracle.truffle.r.runtime.data.RInteropScalar; -import org.junit.Assert; public class RInteropScalarMRTest extends AbstractMRTest { @@ -67,6 +67,11 @@ public class RInteropScalarMRTest extends AbstractMRTest { 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/VectorMRTest.java b/com.oracle.truffle.r.test/src/com/oracle/truffle/r/test/engine/interop/VectorMRTest.java index 5020e8fb4b..bf7b492695 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 @@ -37,6 +37,8 @@ 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.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; @@ -101,6 +103,11 @@ public class VectorMRTest extends AbstractMRTest { return create("as.numeric()"); } + @Override + protected boolean testToNative(TruffleObject obj) { + return obj instanceof RObject; + } + @Override protected boolean isBoxed(TruffleObject obj) { return ((RAbstractVector) obj).getLength() == 1; @@ -122,6 +129,11 @@ public class VectorMRTest extends AbstractMRTest { 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); -- GitLab