This is an automated email from the ASF dual-hosted git repository. Cole-Greer pushed a commit to branch fixFlakyTests in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit da3612c7eeafdec94927c372f1b28041ad83b876 Author: Cole Greer <[email protected]> AuthorDate: Wed May 20 15:11:14 2026 -0700 Serialize .NET integration tests that share the Gremlin Server graph PropertyDeserializationTests and GraphTraversalTests were running concurrently with @GraphComputerOnly Gherkin scenarios. During OLAP computation, TinkerGraphComputer sets a graphComputerView on the shared TinkerGraph instance. Any concurrent read through TinkerVertex sees compute properties (like haltedTraversers) merged with real properties, causing spurious assertion failures and NPEs. Place all tests that hit the shared server into a single non-parallel xUnit collection (GremlinServerTests) so they never overlap with an active GraphComputer view. --- .../Driver/PropertyDeserializationTests.cs | 5 +++++ .../test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs | 6 +++--- .../Process/Traversal/DriverRemoteConnection/GraphTraversalTests.cs | 1 + 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Driver/PropertyDeserializationTests.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Driver/PropertyDeserializationTests.cs index 01cd0b266c..f7c41bdded 100644 --- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Driver/PropertyDeserializationTests.cs +++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Driver/PropertyDeserializationTests.cs @@ -35,6 +35,11 @@ using Xunit; namespace Gremlin.Net.IntegrationTest.Driver { + /// <summary> + /// Serialized with Gherkin tests to avoid reading vertices through an active GraphComputerView + /// when @GraphComputerOnly scenarios run concurrently, which would expose transient compute properties. + /// </summary> + [Collection("GremlinServerTests")] public class PropertyDeserializationTests { private readonly RemoteConnectionFactory _connectionFactory = new(); diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs index dd8f32fbca..fae10dafd8 100644 --- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs +++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Gherkin/GherkinTestRunner.cs @@ -37,10 +37,10 @@ using Xunit.Abstractions; namespace Gremlin.Net.IntegrationTest.Gherkin { - [CollectionDefinition(nameof(GherkinTestDefinition), DisableParallelization = true)] - public class GherkinTestDefinition { } + [CollectionDefinition(nameof(GremlinServerTests), DisableParallelization = true)] + public class GremlinServerTests { } - [Collection(nameof(GherkinTestDefinition))] + [Collection(nameof(GremlinServerTests))] public class GherkinTestRunner { private static readonly IDictionary<string, IgnoreReason> IgnoredScenarios = diff --git a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/DriverRemoteConnection/GraphTraversalTests.cs b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/DriverRemoteConnection/GraphTraversalTests.cs index 718e0fbe84..489994b4c0 100644 --- a/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/DriverRemoteConnection/GraphTraversalTests.cs +++ b/gremlin-dotnet/test/Gremlin.Net.IntegrationTest/Process/Traversal/DriverRemoteConnection/GraphTraversalTests.cs @@ -34,6 +34,7 @@ using Gremlin.Net.Process.Traversal.Strategy.Decoration; namespace Gremlin.Net.IntegrationTest.Process.Traversal.DriverRemoteConnection { + [Collection("GremlinServerTests")] public class GraphTraversalTests { private readonly RemoteConnectionFactory _connectionFactory = new RemoteConnectionFactory();
