[ 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)