Repository: tinkerpop Updated Branches: refs/heads/master 4f7b563f2 -> 1de84f874
TINKERPOP-1385 Bound profile test assertions to TinkerGraph Assertions were too stringent for graph providers who had complex strategies. Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/d27fc7d2 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/d27fc7d2 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/d27fc7d2 Branch: refs/heads/master Commit: d27fc7d2465af97aa583cb6c072391273286d322 Parents: 402678b Author: Stephen Mallette <sp...@genoprime.com> Authored: Sun Jul 9 09:54:21 2017 -0400 Committer: Stephen Mallette <sp...@genoprime.com> Committed: Sun Jul 9 09:54:21 2017 -0400 ---------------------------------------------------------------------- CHANGELOG.asciidoc | 1 + .../process/traversal/step/map/ProfileTest.java | 38 ++++++++++++++------ 2 files changed, 29 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d27fc7d2/CHANGELOG.asciidoc ---------------------------------------------------------------------- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 96e79ab..05e20bb 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -28,6 +28,7 @@ TinkerPop 3.2.6 (Release Date: NOT OFFICIALLY RELEASED YET) This release also includes changes from <<release-3-1-8, 3.1.8>>. +* `ProfileTest` is now less stringent about assertions which will reduce burdens on providers. * `ReferenceFactory` and `DetachedFactory` now detach elements in collections accordingly. * Deprecated the `useMapperFromGraph` configuration option for Gremlin Server serializers. * `JavaTranslator` is now smart about handling `BulkSet` and `Tree`. http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/d27fc7d2/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ProfileTest.java ---------------------------------------------------------------------- diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ProfileTest.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ProfileTest.java index 1af6ba3..7ac3059 100644 --- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ProfileTest.java +++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/ProfileTest.java @@ -53,11 +53,14 @@ import java.util.concurrent.TimeUnit; import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.GRATEFUL; import static org.apache.tinkerpop.gremlin.LoadGraphWith.GraphData.MODERN; import static org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.__.both; +import static org.hamcrest.core.IsEqual.equalTo; +import static org.hamcrest.core.IsInstanceOf.instanceOf; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import static org.junit.Assume.assumeThat; /** * @author Bob Briody (http://bobbriody.com) @@ -105,12 +108,15 @@ public abstract class ProfileTest extends AbstractGremlinProcessTest { final Traversal<Vertex, Vertex> traversal = get_g_V_out_out_profileXmetricsX(); printTraversalForm(traversal); traversal.iterate(); - validate_g_V_out_out_profile_modern(traversal, traversal.asAdmin().getSideEffects().<TraversalMetrics>get(METRICS_KEY)); + validate_g_V_out_out_profile_modern(traversal, traversal.asAdmin().getSideEffects().get(METRICS_KEY)); } private void validate_g_V_out_out_profile_modern(final Traversal traversal, final TraversalMetrics traversalMetrics) { traversalMetrics.toString(); // ensure no exceptions are thrown + assumeThat("The following assertions apply to TinkerGraph only as provider strategies can alter the steps to not comply with expectations", + graph.getClass().getSimpleName(), equalTo("TinkerGraph")); + Metrics metrics = traversalMetrics.getMetrics(0); assertEquals(6, metrics.getCount(TraversalMetrics.TRAVERSER_COUNT_ID).longValue()); assertEquals(6, metrics.getCount(TraversalMetrics.ELEMENT_COUNT_ID).longValue()); @@ -149,13 +155,16 @@ public abstract class ProfileTest extends AbstractGremlinProcessTest { final Traversal<Vertex, Vertex> traversal = get_g_V_out_out_profileXmetricsX(); printTraversalForm(traversal); traversal.iterate(); - final TraversalMetrics traversalMetrics = traversal.asAdmin().getSideEffects().<TraversalMetrics>get(METRICS_KEY); + final TraversalMetrics traversalMetrics = traversal.asAdmin().getSideEffects().get(METRICS_KEY); validate_g_V_out_out_profile_grateful(traversalMetrics); } - private void validate_g_V_out_out_profile_grateful(TraversalMetrics traversalMetrics) { + private void validate_g_V_out_out_profile_grateful(final TraversalMetrics traversalMetrics) { traversalMetrics.toString(); // ensure no exceptions are thrown + assumeThat("The following assertions apply to TinkerGraph only as provider strategies can alter the steps to not comply with expectations", + graph.getClass().getSimpleName(), equalTo("TinkerGraph")); + Metrics metrics = traversalMetrics.getMetrics(0); assertEquals(808, metrics.getCount(TraversalMetrics.TRAVERSER_COUNT_ID).longValue()); assertEquals(808, metrics.getCount(TraversalMetrics.ELEMENT_COUNT_ID).longValue()); @@ -202,13 +211,16 @@ public abstract class ProfileTest extends AbstractGremlinProcessTest { printTraversalForm(traversal); traversal.iterate(); assertEquals("There should be 7 steps in this traversal (counting injected profile steps).", 7, traversal.asAdmin().getSteps().size()); - TraversalMetrics traversalMetrics = traversal.asAdmin().getSideEffects().<TraversalMetrics>get(METRICS_KEY); + TraversalMetrics traversalMetrics = traversal.asAdmin().getSideEffects().get(METRICS_KEY); validate_g_V_sideEffectXThread_sleepX10XX_sideEffectXThread_sleepX5XX_profile(traversalMetrics); } - private void validate_g_V_sideEffectXThread_sleepX10XX_sideEffectXThread_sleepX5XX_profile(TraversalMetrics traversalMetrics) { + private void validate_g_V_sideEffectXThread_sleepX10XX_sideEffectXThread_sleepX5XX_profile(final TraversalMetrics traversalMetrics) { traversalMetrics.toString(); // ensure no exceptions are thrown + assumeThat("The following assertions apply to TinkerGraph only as provider strategies can alter the steps to not comply with expectations", + graph.getClass().getSimpleName(), equalTo("TinkerGraph")); + // Grab the second (sideEffect{sleep}) step and check the times. Metrics metrics = traversalMetrics.getMetrics(1); // 6 elements w/ a 10ms sleep each = 60ms with 10ms for other computation. @@ -247,15 +259,18 @@ public abstract class ProfileTest extends AbstractGremlinProcessTest { final Traversal<Vertex, Vertex> traversal = get_g_V_repeatXbothX_timesX3X_profileXmetricsX(); printTraversalForm(traversal); traversal.iterate(); - final TraversalMetrics traversalMetrics = traversal.asAdmin().getSideEffects().<TraversalMetrics>get(METRICS_KEY); + final TraversalMetrics traversalMetrics = traversal.asAdmin().getSideEffects().get(METRICS_KEY); validate_g_V_repeat_both_modern_profile(traversalMetrics, traversal.asAdmin().getStrategies().toList().contains(RepeatUnrollStrategy.instance()) && !traversal.asAdmin().getStrategies().toList().contains(ComputerVerificationStrategy.instance())); } - private void validate_g_V_repeat_both_modern_profile(TraversalMetrics traversalMetrics, boolean withRepeatUnrollStrategy) { + private void validate_g_V_repeat_both_modern_profile(final TraversalMetrics traversalMetrics, final boolean withRepeatUnrollStrategy) { traversalMetrics.toString(); // ensure no exceptions are thrown + assumeThat("The following assertions apply to TinkerGraph only as provider strategies can alter the steps to not comply with expectations", + graph.getClass().getSimpleName(), equalTo("TinkerGraph")); + Metrics metrics = traversalMetrics.getMetrics(0); assertEquals(6, metrics.getCount(TraversalMetrics.TRAVERSER_COUNT_ID).longValue()); assertEquals(6, metrics.getCount(TraversalMetrics.ELEMENT_COUNT_ID).longValue()); @@ -286,9 +301,12 @@ public abstract class ProfileTest extends AbstractGremlinProcessTest { ///////////// - private void validate_g_V_whereXinXcreatedX_count_isX1XX_name_profile(Traversal traversal, TraversalMetrics traversalMetrics) { + private void validate_g_V_whereXinXcreatedX_count_isX1XX_name_profile(final Traversal traversal, final TraversalMetrics traversalMetrics) { traversalMetrics.toString(); // ensure no exceptions are thrown + assumeThat("The following assertions apply to TinkerGraph only as provider strategies can alter the steps to not comply with expectations", + graph.getClass().getSimpleName(), equalTo("TinkerGraph")); + assertEquals("There should be 3 top-level metrics.", 3, traversalMetrics.getMetrics().size()); Metrics metrics = traversalMetrics.getMetrics(0); @@ -321,7 +339,7 @@ public abstract class ProfileTest extends AbstractGremlinProcessTest { final Traversal<Vertex, String> traversal = get_g_V_whereXinXcreatedX_count_isX1XX_name_profileXmetricsX(); printTraversalForm(traversal); traversal.iterate(); - final TraversalMetrics traversalMetrics = traversal.asAdmin().getSideEffects().<TraversalMetrics>get(METRICS_KEY); + final TraversalMetrics traversalMetrics = traversal.asAdmin().getSideEffects().get(METRICS_KEY); validate_g_V_whereXinXcreatedX_count_isX1XX_name_profile(traversal, traversalMetrics); } @@ -377,7 +395,7 @@ public abstract class ProfileTest extends AbstractGremlinProcessTest { assertTrue(mockStep.callbackCalled); if (!onGraphComputer(t.asAdmin())) { - final TraversalMetrics traversalMetrics = t.asAdmin().getSideEffects().<TraversalMetrics>get(METRICS_KEY); + final TraversalMetrics traversalMetrics = t.asAdmin().getSideEffects().get(METRICS_KEY); assertEquals(100, traversalMetrics.getMetrics(3).getCount("bogusCount").longValue()); } }