[
https://issues.apache.org/jira/browse/TINKERPOP-3136?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17946212#comment-17946212
]
ASF GitHub Bot commented on TINKERPOP-3136:
-------------------------------------------
Cole-Greer commented on code in PR #3097:
URL: https://github.com/apache/tinkerpop/pull/3097#discussion_r2052944431
##########
gremlin-test/src/main/java/org/apache/tinkerpop/gremlin/process/ProcessLimitedStandardSuite.java:
##########
@@ -18,105 +18,20 @@
*/
package org.apache.tinkerpop.gremlin.process;
-import org.apache.tinkerpop.gremlin.AbstractGremlinSuite;
-import org.apache.tinkerpop.gremlin.process.traversal.CoreTraversalTest;
-import org.apache.tinkerpop.gremlin.process.traversal.TraversalEngine;
-import
org.apache.tinkerpop.gremlin.process.traversal.TraversalInterruptionTest;
-import org.apache.tinkerpop.gremlin.process.traversal.step.ComplexTest;
-import org.apache.tinkerpop.gremlin.process.traversal.step.OrderabilityTest;
-import
org.apache.tinkerpop.gremlin.process.traversal.step.TernaryBooleanLogicsTest;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.MatchTest;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.MergeEdgeTest;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.MergeVertexTest;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.ProfileTest;
-import org.apache.tinkerpop.gremlin.process.traversal.step.map.WriteTest;
-import
org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.ExplainTest;
-import
org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SideEffectTest;
-import
org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.SubgraphTest;
-import org.apache.tinkerpop.gremlin.process.traversal.step.sideEffect.TreeTest;
-import
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.ElementIdStrategyProcessTest;
-import
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.EventStrategyProcessTest;
-import
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.PartitionStrategyProcessTest;
-import
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SeedStrategyProcessTest;
-import
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.SubgraphStrategyProcessTest;
-import
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.TranslationStrategyProcessTest;
-import
org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.EarlyLimitStrategyProcessTest;
-import
org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.IncidentToAdjacentStrategyProcessTest;
-import
org.apache.tinkerpop.gremlin.process.traversal.strategy.verification.ReadOnlyStrategyProcessTest;
import org.junit.runners.model.InitializationError;
import org.junit.runners.model.RunnerBuilder;
/**
- * The {@code ProcessLimitedComputerSuite} is a set of tests that providers
may implement in addition to the standard Gherkin
- * feature tests. The {@link ProcessStandardSuite} contains all the tests in
Gherkin and is therefore duplicative of
- * that test set but also includes a number of tests that have not been (or
cannot be) converted to Gherkin for various
- * reasons.
- *
* @author Stephen Mallette (http://stephen.genoprime.com)
+ * @deprecated As of release 3.8.0, replaced by {@link
ProcessEmbeddedStandardSuite}.
*/
-public class ProcessLimitedStandardSuite extends AbstractGremlinSuite {
-
- /**
- * This list of tests in the suite that will be executed as part of this
suite.
- */
- private static final Class<?>[] allTests = new Class<?>[]{
-
- MergeVertexTest.Traversals.class,
- MergeEdgeTest.Traversals.class,
-
- MatchTest.CountMatchTraversals.class,
- MatchTest.GreedyMatchTraversals.class,
- ProfileTest.Traversals.class,
- WriteTest.Traversals.class,
- ExplainTest.Traversals.class,
- SideEffectTest.Traversals.class,
- SubgraphTest.Traversals.class,
- TreeTest.Traversals.class,
-
- // compliance
- ComplexTest.Traversals.class,
- CoreTraversalTest.class,
- TraversalInterruptionTest.class,
-
- // creations
- TranslationStrategyProcessTest.class,
-
- // decorations
- ElementIdStrategyProcessTest.class,
- EventStrategyProcessTest.class,
- PartitionStrategyProcessTest.class,
-
- // optimizations
- IncidentToAdjacentStrategyProcessTest.class,
- EarlyLimitStrategyProcessTest.class,
-
- // semantics
- TernaryBooleanLogicsTest.class,
- };
-
- /**
- * A list of the minimum set of base tests that Gremlin flavors should
implement to be compliant with Gremlin.
- */
- private static final Class<?>[] testsToEnforce = new Class<?>[]{
- ProfileTest.class,
- SideEffectTest.class,
- SubgraphTest.class,
- TreeTest.class,
- };
-
- /**
- * This constructor is used by JUnit and will run this suite with its
concrete implementations of the
- * {@code testsToEnforce}.
- */
+@Deprecated
+public class ProcessLimitedStandardSuite extends ProcessEmbeddedStandardSuite {
Review Comment:
Do these old "limited" suites have any utility left after stripping out
`allTests` and `testsToEnforce`? I'm wondering if we are better off completely
removing the old suites instead of leaving them stripped bare and deprecated.
> Complete move to Gherkin for implementation testing
> ---------------------------------------------------
>
> Key: TINKERPOP-3136
> URL: https://issues.apache.org/jira/browse/TINKERPOP-3136
> Project: TinkerPop
> Issue Type: Improvement
> Components: test-suite
> Affects Versions: 3.7.3
> Reporter: Stephen Mallette
> Priority: Major
>
> TinkerPop is most of the way to testing Gremlin exclusively with Gherkin. By
> 4.0 that move should be complete with whatever deprecations necessary for
> Java tests along 3.x. Retain the Java test suite for embedded {{Graph}} tests
> that only make sense in that case.
> For 3.x - likely 3.8.x
> * Create {{ProcessEmbeddedSuite}} and deprecate {{ProcessLimitedSuite}} to
> make it clear what aspects of Gremlin are meant for embedded cases and
> Java/Groovy sugar only. Update provider documentation to reflect these
> changes and ensure Gherkin is clear as the primary test suite for Gremlin.
> * Drop {{MergeVertexTest}} and {{MergeEdgeTest}} as remaining tests in there
> seem to be covered by Gherkin already.
> * Drop {{SubgraphTest}} since it should be able to be converted to feature
> tests but will need to add a way to assert a {{Graph}} though. Ignore in
> languages that don't have {{{}Graph{}}}.
> * Drop {{TreeTest}} since it should be able to be converted to feature tests
> but will need to add a way to assert a {{Tree}} though. Ignore in languages
> that don't have {{{}Tree{}}}.
> * Implement Gherkin tests for {{match()}} - do a limited and simple set to
> minimally test the capability since that feature is a bit up in the air for
> 4.x. Retain {{MatchTest}} as it is for the embedded suite for now.
> * For {{{}ComplexTest{}}}:
> ** {{cap('m')}} from {{classicRecommendation}} so that it can be asserted in
> {{{}Recommendation.feature{}}}.
> *** Figure out a way to assert the {{coworkerSummary}} tests in Gherkin. We
> don't currently have a way to assert very complex {{{}Map{}}}. The basic test
> could be run multiple times to try to break up the results to fit with the
> assertion capabilities?
> ** Move {{playlistPths}} to {{Paths.feature}}
> ** Remove {{ComplexTest}} as all relevant tests will have been moved to
> Gherkin.
> * Remove {{PartitionStrategyProcessTest}} - seems to be covered in Gherkin at
> this point.
> * Convert {{TernaryBooleanLogicsTest}} to Gherkin - add it to the
> {{/semantics}} directory.
> * Remove all lambda based tests from Gherkin since they are not supported by
> gremlin-language. Ensure that they all exist in the embedded tests. Perhaps
> put them all in a {{LambdaStepTest}} and combine in other embedded tests
> there so that they are all in once place. Remove all infrastructure for
> processing lambdas in the Gherkin suite. Test lambdas in GLVs independently.
> For 4.x
> * Remove {{ProcessLimitedSuite}} in favor of {{ProcessEmbeddedSuite}}
> * Since {{Tree}} and {{Graph}} will be present in 4.x for all languages,
> ensure that test suites are updated in support of those assertions as these
> tests will have been skipped prior.
> h3. Open questions
> * Make a decision about {{profile()}} and {{explain()}} in terms of how they
> are tested. Leaning toward them remaining an embedded case as they have
> implementation specific output potentially
> * Examine "Given an unsupported test" definitions....can any be supported
> now? what do we do with those that cant?
> Note the linked JIRAs below as well.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)