You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by dk...@apache.org on 2015/05/12 04:47:44 UTC
[15/17] incubator-tinkerpop git commit: stoked! much implementation
for GremlinProcessRunner
stoked! much implementation for GremlinProcessRunner
Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/ae5022e0
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/ae5022e0
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/ae5022e0
Branch: refs/heads/master
Commit: ae5022e08c90e7d5095367f6f0df446686c85e95
Parents: 3c6eb61
Author: Daniel Kuppitz <da...@hotmail.com>
Authored: Tue May 12 04:12:23 2015 +0200
Committer: Daniel Kuppitz <da...@hotmail.com>
Committed: Tue May 12 04:12:23 2015 +0200
----------------------------------------------------------------------
.../gremlin/process/computer/VertexProgram.java | 3 -
.../traversal/util/TraversalScriptHelper.java | 5 +-
.../gremlin/process/GremlinProcessRunner.java | 71 +++++++++-----------
3 files changed, 34 insertions(+), 45 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/ae5022e0/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/VertexProgram.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/VertexProgram.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/VertexProgram.java
index 86a05fc..4fd9e82 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/VertexProgram.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/VertexProgram.java
@@ -20,7 +20,6 @@
package org.apache.tinkerpop.gremlin.process.computer;
import org.apache.commons.configuration.Configuration;
-import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ComputerVerificationException;
import org.apache.tinkerpop.gremlin.structure.Graph;
import org.apache.tinkerpop.gremlin.structure.Vertex;
@@ -217,8 +216,6 @@ public interface VertexProgram<M> extends Cloneable {
final V vertexProgram = constructor.newInstance();
vertexProgram.loadState(graph, configuration);
return vertexProgram;
- } catch (final ComputerVerificationException e) {
- throw e;
} catch (final Exception e) {
throw new IllegalStateException(e.getMessage(), e);
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/ae5022e0/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalScriptHelper.java
----------------------------------------------------------------------
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalScriptHelper.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalScriptHelper.java
index cd3355b..ac49650 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalScriptHelper.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/TraversalScriptHelper.java
@@ -23,7 +23,6 @@ import org.apache.tinkerpop.gremlin.process.computer.traversal.TraversalVertexPr
import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
import org.apache.tinkerpop.gremlin.process.traversal.TraversalSource;
import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
-import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ComputerVerificationException;
import org.apache.tinkerpop.gremlin.structure.Graph;
/**
@@ -49,10 +48,8 @@ public final class TraversalScriptHelper {
} else {
return new TraversalScriptFunction<S, E>(builder, scriptEngineName, traversalScript, bindings).apply(graph);
}
- } catch (final ComputerVerificationException e) {
- throw e;
} catch (final Exception e) {
- throw new IllegalArgumentException(e.getMessage());
+ throw new IllegalArgumentException(e.getMessage(), e);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/ae5022e0/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/GremlinProcessRunner.java
----------------------------------------------------------------------
diff --git a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/GremlinProcessRunner.java b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/GremlinProcessRunner.java
index 1d10114..6c3f9ea 100644
--- a/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/GremlinProcessRunner.java
+++ b/gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/GremlinProcessRunner.java
@@ -18,12 +18,14 @@
*/
package org.apache.tinkerpop.gremlin.process;
-import org.apache.tinkerpop.gremlin.AbstractGremlinTest;
import org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ComputerVerificationException;
+import org.junit.internal.AssumptionViolatedException;
+import org.junit.internal.runners.model.EachTestNotifier;
+import org.junit.runner.Description;
+import org.junit.runner.notification.RunNotifier;
import org.junit.runners.BlockJUnit4ClassRunner;
import org.junit.runners.model.FrameworkMethod;
import org.junit.runners.model.InitializationError;
-import org.junit.runners.model.Statement;
/**
* @author Daniel Kuppitz (http://gremlin.guru)
@@ -35,45 +37,38 @@ public class GremlinProcessRunner extends BlockJUnit4ClassRunner {
}
@Override
- protected Statement possiblyExpectingExceptions(final FrameworkMethod method, final Object test, final Statement next) {
- org.junit.Test annotation = method.getAnnotation(org.junit.Test.class);
- return new ExpectComputerVerificationException(next, (AbstractGremlinTest) test,
- annotation != null ? annotation.expected() : org.junit.Test.None.class);
- }
-
- class ExpectComputerVerificationException extends Statement {
-
- private Statement next;
- private AbstractGremlinTest test;
- private final Class<? extends Throwable> expected;
-
- public ExpectComputerVerificationException(final Statement next, final AbstractGremlinTest test,
- final Class<? extends Throwable> expected) {
- this.next = next;
- this.test = test;
- this.expected = expected;
- }
-
- @Override
- public void evaluate() throws Throwable {
- boolean complete = false;
+ public void runChild(final FrameworkMethod method, final RunNotifier notifier) {
+ final Description description = describeChild(method);
+ if (this.isIgnored(method)) {
+ notifier.fireTestIgnored(description);
+ } else {
+ EachTestNotifier eachNotifier = new EachTestNotifier(notifier, description);
+ eachNotifier.fireTestStarted();
+ boolean ignored = false;
try {
- next.evaluate();
- complete = true;
- } catch (ComputerVerificationException e) {
- if (!test.isComputerTest()) throw e;
- final boolean muted = Boolean.parseBoolean(System.getProperty("muteTestLogs", "false"));
- if (!muted) System.out.println(String.format(
- "The following traversal is not valid for computer execution: %s",
- e.getTraversal()));
+ this.methodBlock(method).evaluate();
+ } catch (AssumptionViolatedException ave) {
+ eachNotifier.addFailedAssumption(ave);
} catch (Throwable e) {
- if (!expected.isAssignableFrom(e.getClass())) {
- throw e;
- }
- }
- if (complete && !expected.equals(org.junit.Test.None.class)) {
- throw new AssertionError("Expected exception: " + expected.getName());
+ if (isComputerVerificationException(e)) {
+ eachNotifier.fireTestIgnored();
+ ignored = true;
+ } else
+ eachNotifier.addFailure(e);
+ } finally {
+ if (!ignored)
+ eachNotifier.fireTestFinished();
}
}
}
+
+ private static boolean isComputerVerificationException(final Throwable e) {
+ Throwable ex = e;
+ while (ex != null) {
+ if (ex instanceof ComputerVerificationException)
+ return true;
+ ex = ex.getCause();
+ }
+ return false;
+ }
}