You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by vo...@apache.org on 2015/11/04 09:35:13 UTC

ignite git commit: IGNITE-1282: Added missing unit tests for fast-path PortableField string deserialization when string is written as char array.

Repository: ignite
Updated Branches:
  refs/heads/ignite-1282 6eb314e75 -> d59a5f02a


IGNITE-1282: Added missing unit tests for fast-path PortableField string deserialization when string is written as char array.


Project: http://git-wip-us.apache.org/repos/asf/ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/d59a5f02
Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/d59a5f02
Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/d59a5f02

Branch: refs/heads/ignite-1282
Commit: d59a5f02a74dd1015691d60ecfd61426cf25e319
Parents: 6eb314e
Author: vozerov-gridgain <vo...@gridgain.com>
Authored: Wed Nov 4 11:35:57 2015 +0300
Committer: vozerov-gridgain <vo...@gridgain.com>
Committed: Wed Nov 4 11:35:57 2015 +0300

----------------------------------------------------------------------
 .../PortableFieldsAbstractSelfTest.java         | 83 +++++++++++++++-----
 .../portable/PortableFieldsHeapSelfTest.java    |  2 +-
 .../portable/PortableFieldsOffheapSelfTest.java |  2 +-
 3 files changed, 64 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/d59a5f02/modules/core/src/test/java/org/apache/ignite/internal/portable/PortableFieldsAbstractSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/portable/PortableFieldsAbstractSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/portable/PortableFieldsAbstractSelfTest.java
index 2acc1f5..0d712dc 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/portable/PortableFieldsAbstractSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/portable/PortableFieldsAbstractSelfTest.java
@@ -49,18 +49,21 @@ public abstract class PortableFieldsAbstractSelfTest extends GridCommonAbstractT
     };
 
     /** Marshaller. */
-    protected PortableMarshaller marsh;
+    protected PortableMarshaller dfltMarsh;
 
-    /** Portable context. */
-    protected PortableContext ctx;
-
-    /** {@inheritDoc} */
-    @Override protected void beforeTest() throws Exception {
-        super.beforeTest();
+    /**
+     * Create marshaller.
+     *
+     * @param stringAsBytes Whether to marshal strings as bytes (UTF8).
+     * @return Portable marshaller.
+     * @throws Exception If failed.
+     */
+    protected static PortableMarshaller createMarshaller(boolean stringAsBytes) throws Exception {
+        PortableContext ctx = new PortableContext(META_HND, null);
 
-        ctx = new PortableContext(META_HND, null);
+        PortableMarshaller marsh = new PortableMarshaller();
 
-        marsh = new PortableMarshaller();
+        marsh.setConvertStringToBytes(stringAsBytes);
 
         marsh.setTypeConfigurations(Arrays.asList(
             new PortableTypeConfiguration(TestObject.class.getName()),
@@ -71,6 +74,27 @@ public abstract class PortableFieldsAbstractSelfTest extends GridCommonAbstractT
         marsh.setContext(new MarshallerContextTestImpl(null));
 
         IgniteUtils.invoke(PortableMarshaller.class, marsh, "setPortableContext", ctx);
+
+        return marsh;
+    }
+
+    /**
+     * Get portable context for the current marshaller.
+     *
+     * @param marsh Marshaller.
+     * @return Portable context.
+     */
+    protected static PortableContext portableContext(PortableMarshaller marsh) {
+        GridPortableMarshaller impl = U.field(marsh, "impl");
+
+        return impl.context();
+    }
+
+    /** {@inheritDoc} */
+    @Override protected void beforeTest() throws Exception {
+        super.beforeTest();
+
+        dfltMarsh = createMarshaller(true);
     }
 
     /**
@@ -227,6 +251,18 @@ public abstract class PortableFieldsAbstractSelfTest extends GridCommonAbstractT
     }
 
     /**
+     * Test string field.
+     *
+     * @throws Exception If failed.
+     */
+    public void testStringAsChars() throws Exception {
+        PortableMarshaller marsh = createMarshaller(false);
+
+        checkNormal(marsh, "fString", true);
+        checkNested(marsh, "fString", true);
+    }
+
+    /**
      * Test string array field.
      *
      * @throws Exception If failed.
@@ -342,8 +378,8 @@ public abstract class PortableFieldsAbstractSelfTest extends GridCommonAbstractT
     public void testMissing() throws Exception {
         String fieldName = "fMissing";
 
-        checkNormal(fieldName, false);
-        checkNested(fieldName, false);
+        checkNormal(dfltMarsh, fieldName, false);
+        checkNested(dfltMarsh, fieldName, false);
     }
 
     /**
@@ -353,34 +389,36 @@ public abstract class PortableFieldsAbstractSelfTest extends GridCommonAbstractT
      * @throws Exception If failed.
      */
     public void check(String fieldName) throws Exception {
-        checkNormal(fieldName, true);
-        checkNested(fieldName, true);
+        checkNormal(dfltMarsh, fieldName, true);
+        checkNested(dfltMarsh, fieldName, true);
     }
 
     /**
      * Check field.
      *
+     * @param marsh Marshaller.
      * @param fieldName Field name.
      * @param exists Whether field should exist.
      * @throws Exception If failed.
      */
-    private void checkNormal(String fieldName, boolean exists) throws Exception {
-        TestContext ctx = context(fieldName);
+    private void checkNormal(PortableMarshaller marsh, String fieldName, boolean exists) throws Exception {
+        TestContext testCtx = context(marsh, fieldName);
 
-        check0(fieldName, ctx, exists);
+        check0(fieldName, testCtx, exists);
     }
 
     /**
      * Check nested field.
      *
+     * @param marsh Marshaller.
      * @param fieldName Field name.
      * @param exists Whether field should exist.
      * @throws Exception If failed.
      */
-    private void checkNested(String fieldName, boolean exists) throws Exception {
-        TestContext ctx = nestedContext(fieldName);
+    private void checkNested(PortableMarshaller marsh, String fieldName, boolean exists) throws Exception {
+        TestContext testCtx = nestedContext(marsh, fieldName);
 
-        check0(fieldName, ctx, exists);
+        check0(fieldName, testCtx, exists);
     }
 
     /**
@@ -451,11 +489,12 @@ public abstract class PortableFieldsAbstractSelfTest extends GridCommonAbstractT
     /**
      * Get test context.
      *
+     * @param marsh Portable marshaller.
      * @param fieldName Field name.
      * @return Test context.
      * @throws Exception If failed.
      */
-    private TestContext context(String fieldName) throws Exception {
+    private TestContext context(PortableMarshaller marsh, String fieldName) throws Exception {
         TestObject obj = createObject();
 
         PortableObjectEx portObj = toPortable(marsh, obj);
@@ -468,11 +507,13 @@ public abstract class PortableFieldsAbstractSelfTest extends GridCommonAbstractT
     /**
      * Get test context with nested test object.
      *
+     * @param marsh Portable marshaller.
      * @param fieldName Field name.
      * @return Test context.
      * @throws Exception If failed.
      */
-    private TestContext nestedContext(String fieldName) throws Exception {
+    private TestContext nestedContext(PortableMarshaller marsh, String fieldName)
+        throws Exception {
         TestObject obj = createObject();
         TestOuterObject outObj = new TestOuterObject(obj);
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/d59a5f02/modules/core/src/test/java/org/apache/ignite/internal/portable/PortableFieldsHeapSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/portable/PortableFieldsHeapSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/portable/PortableFieldsHeapSelfTest.java
index f7ccd1d..c7feeab 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/portable/PortableFieldsHeapSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/portable/PortableFieldsHeapSelfTest.java
@@ -27,6 +27,6 @@ public class PortableFieldsHeapSelfTest extends PortableFieldsAbstractSelfTest {
     @Override protected PortableObjectEx toPortable(PortableMarshaller marsh, Object obj) throws Exception {
         byte[] bytes = marsh.marshal(obj);
 
-        return new PortableObjectImpl(ctx, bytes, 0);
+        return new PortableObjectImpl(portableContext(marsh), bytes, 0);
     }
 }

http://git-wip-us.apache.org/repos/asf/ignite/blob/d59a5f02/modules/core/src/test/java/org/apache/ignite/internal/portable/PortableFieldsOffheapSelfTest.java
----------------------------------------------------------------------
diff --git a/modules/core/src/test/java/org/apache/ignite/internal/portable/PortableFieldsOffheapSelfTest.java b/modules/core/src/test/java/org/apache/ignite/internal/portable/PortableFieldsOffheapSelfTest.java
index e421375..44bb8a1 100644
--- a/modules/core/src/test/java/org/apache/ignite/internal/portable/PortableFieldsOffheapSelfTest.java
+++ b/modules/core/src/test/java/org/apache/ignite/internal/portable/PortableFieldsOffheapSelfTest.java
@@ -56,6 +56,6 @@ public class PortableFieldsOffheapSelfTest extends PortableFieldsAbstractSelfTes
 
         UNSAFE.copyMemory(arr, BYTE_ARR_OFF, null, ptr, arr.length);
 
-        return new PortableObjectOffheapImpl(ctx, ptr, 0, arr.length);
+        return new PortableObjectOffheapImpl(portableContext(marsh), ptr, 0, arr.length);
     }
 }