Skip to content

Commit b062e59

Browse files
committed
Disable tests of legacy wire protocol on 5.1+ servers
In 5.1+, the legacy wire protocol is no longer supported. This includes * OP_QUERY * OP_INSERT * OP_UPDATE * OP_DELETE * OP_KILL_CURSORS Although none of these wire protocol messsage will be used in 5.1+ under normal usage, there are integration tests in driver-core that test them directly, and those have been disabled or modified so that they will work. JAVA-4228
1 parent ba6aef8 commit b062e59

7 files changed

+46
-16
lines changed

driver-core/src/test/functional/com/mongodb/internal/connection/GetMoreProtocolCommandEventSpecification.groovy

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,16 @@ import org.bson.BsonInt64
3333
import org.bson.BsonString
3434
import org.bson.Document
3535
import org.bson.codecs.BsonDocumentCodec
36+
import spock.lang.IgnoreIf
3637
import spock.lang.Shared
3738

3839
import static com.mongodb.ClusterFixture.getPrimary
3940
import static com.mongodb.ClusterFixture.getSslSettings
41+
import static com.mongodb.ClusterFixture.serverVersionGreaterThan
4042
import static com.mongodb.connection.ConnectionFixture.getCredentialListWithCache
4143
import static com.mongodb.internal.connection.ProtocolTestHelper.execute
4244

43-
45+
@IgnoreIf({ serverVersionGreaterThan('5.0') })
4446
class GetMoreProtocolCommandEventSpecification extends OperationFunctionalSpecification {
4547
@Shared
4648
InternalStreamConnection connection

driver-core/src/test/functional/com/mongodb/internal/connection/KillCursorProtocolCommandEventSpecification.groovy

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,16 @@ import org.bson.BsonInt64
3030
import org.bson.BsonString
3131
import org.bson.Document
3232
import org.bson.codecs.BsonDocumentCodec
33+
import spock.lang.IgnoreIf
3334
import spock.lang.Shared
3435

3536
import static com.mongodb.ClusterFixture.getPrimary
3637
import static com.mongodb.ClusterFixture.getSslSettings
38+
import static com.mongodb.ClusterFixture.serverVersionGreaterThan
3739
import static com.mongodb.connection.ConnectionFixture.getCredentialListWithCache
3840
import static com.mongodb.internal.connection.ProtocolTestHelper.execute
3941

40-
42+
@IgnoreIf({ serverVersionGreaterThan('5.0') })
4143
class KillCursorProtocolCommandEventSpecification extends OperationFunctionalSpecification {
4244
@Shared
4345
InternalStreamConnection connection;

driver-core/src/test/functional/com/mongodb/internal/connection/QueryProtocolCommandEventSpecification.groovy

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,12 @@ import spock.lang.Shared
4242
import static com.mongodb.ClusterFixture.getPrimary
4343
import static com.mongodb.ClusterFixture.getSslSettings
4444
import static com.mongodb.ClusterFixture.isNotAtLeastJava7
45+
import static com.mongodb.ClusterFixture.serverVersionGreaterThan
4546
import static com.mongodb.connection.ConnectionFixture.getCredentialListWithCache
4647
import static com.mongodb.internal.connection.ProtocolTestHelper.execute
4748
import static org.bson.BsonDocument.parse
4849

49-
@IgnoreIf({ isNotAtLeastJava7() || getSslSettings().isEnabled() })
50+
@IgnoreIf({ isNotAtLeastJava7() || getSslSettings().isEnabled() || serverVersionGreaterThan('5.0') })
5051
class QueryProtocolCommandEventSpecification extends OperationFunctionalSpecification {
5152
@Shared
5253
InternalStreamConnection nettyConnection

driver-core/src/test/functional/com/mongodb/internal/connection/WriteProtocolCommandEventSpecification.groovy

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,16 +33,18 @@ import org.bson.BsonDocument
3333
import org.bson.BsonInt32
3434
import org.bson.BsonString
3535
import org.bson.codecs.BsonDocumentCodec
36+
import spock.lang.IgnoreIf
3637
import spock.lang.Shared
3738

3839
import static com.mongodb.ClusterFixture.getPrimary
3940
import static com.mongodb.ClusterFixture.getSslSettings
41+
import static com.mongodb.ClusterFixture.serverVersionGreaterThan
4042
import static com.mongodb.bulk.WriteRequest.Type.REPLACE
4143
import static com.mongodb.bulk.WriteRequest.Type.UPDATE
4244
import static com.mongodb.connection.ConnectionFixture.getCredentialListWithCache
4345
import static com.mongodb.internal.connection.ProtocolTestHelper.execute
4446

45-
47+
@IgnoreIf({ serverVersionGreaterThan('5.0') })
4648
class WriteProtocolCommandEventSpecification extends OperationFunctionalSpecification {
4749
@Shared
4850
InternalStreamConnection connection

driver-core/src/test/functional/com/mongodb/internal/connection/WriteProtocolSpecification.groovy

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,16 @@ import org.bson.BsonDocument
2727
import org.bson.BsonInt32
2828
import org.bson.BsonString
2929
import org.bson.codecs.BsonDocumentCodec
30+
import spock.lang.IgnoreIf
3031
import spock.lang.Shared
3132

3233
import static com.mongodb.ClusterFixture.getPrimary
3334
import static com.mongodb.ClusterFixture.getSslSettings
35+
import static com.mongodb.ClusterFixture.serverVersionGreaterThan
3436
import static com.mongodb.connection.ConnectionFixture.getCredentialListWithCache
3537
import static com.mongodb.internal.connection.ProtocolTestHelper.execute
3638

37-
39+
@IgnoreIf({ serverVersionGreaterThan('5.0') })
3840
class WriteProtocolSpecification extends OperationFunctionalSpecification {
3941
@Shared
4042
InternalStreamConnection connection;

driver-core/src/test/functional/com/mongodb/operation/AsyncQueryBatchCursorFunctionalSpecification.groovy

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,23 @@ import com.mongodb.ReadPreference
2525
import com.mongodb.ServerCursor
2626
import com.mongodb.WriteConcern
2727
import com.mongodb.async.FutureResultCallback
28-
import com.mongodb.async.SingleResultCallback
2928
import com.mongodb.binding.AsyncConnectionSource
3029
import com.mongodb.binding.AsyncReadBinding
3130
import com.mongodb.client.model.CreateCollectionOptions
3231
import com.mongodb.connection.AsyncConnection
3332
import com.mongodb.connection.Connection
3433
import com.mongodb.connection.QueryResult
34+
import com.mongodb.internal.connection.NoOpSessionContext
35+
import com.mongodb.internal.validator.NoOpFieldNameValidator
36+
import org.bson.BsonArray
3537
import org.bson.BsonBoolean
3638
import org.bson.BsonDocument
3739
import org.bson.BsonInt32
40+
import org.bson.BsonInt64
3841
import org.bson.BsonString
3942
import org.bson.BsonTimestamp
4043
import org.bson.Document
44+
import org.bson.codecs.BsonDocumentCodec
4145
import org.bson.codecs.DocumentCodec
4246
import org.junit.experimental.categories.Category
4347
import spock.lang.IgnoreIf
@@ -58,6 +62,7 @@ import static com.mongodb.internal.connection.ServerHelper.waitForRelease
5862
import static com.mongodb.internal.operation.ServerVersionHelper.serverIsAtLeastVersionThreeDotTwo
5963
import static com.mongodb.operation.OperationHelper.cursorDocumentToQueryResult
6064
import static java.util.Arrays.asList
65+
import static java.util.Collections.singletonList
6166
import static java.util.concurrent.TimeUnit.SECONDS
6267
import static org.junit.Assert.assertEquals
6368
import static org.junit.Assert.fail
@@ -341,16 +346,17 @@ class AsyncQueryBatchCursorFunctionalSpecification extends OperationFunctionalSp
341346
when:
342347
cursor = new AsyncQueryBatchCursor<Document>(firstBatch, 0, 2, 0, new DocumentCodec(), connectionSource, connection)
343348

344-
def latch = new CountDownLatch(1)
345349
def connection = getConnection(connectionSource)
346350
def serverCursor = cursor.cursor.get()
347-
connection.killCursorAsync(getNamespace(), asList(serverCursor.id), new SingleResultCallback<Void>() {
348-
@Override
349-
void onResult(final Void result, final Throwable t) {
350-
latch.countDown()
351-
}
352-
})
353-
latch.await()
351+
if (serverVersionLessThan(3, 6)) {
352+
connection.killCursor(getNamespace(), asList(cursor.getServerCursor().id))
353+
} else {
354+
connection.command(getNamespace().databaseName,
355+
new BsonDocument('killCursors', new BsonString(namespace.getCollectionName()))
356+
.append('cursors', new BsonArray(singletonList(new BsonInt64(serverCursor.getId())))),
357+
new NoOpFieldNameValidator(), ReadPreference.primary(),
358+
new BsonDocumentCodec(), new NoOpSessionContext())
359+
}
354360
connection.release()
355361
nextBatch()
356362

driver-core/src/test/functional/com/mongodb/operation/QueryBatchCursorFunctionalSpecification.groovy

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,17 @@ import com.mongodb.binding.ConnectionSource
2727
import com.mongodb.client.model.CreateCollectionOptions
2828
import com.mongodb.connection.Connection
2929
import com.mongodb.connection.QueryResult
30+
import com.mongodb.internal.connection.NoOpSessionContext
31+
import com.mongodb.internal.validator.NoOpFieldNameValidator
32+
import org.bson.BsonArray
3033
import org.bson.BsonBoolean
3134
import org.bson.BsonDocument
3235
import org.bson.BsonInt32
36+
import org.bson.BsonInt64
3337
import org.bson.BsonString
3438
import org.bson.BsonTimestamp
3539
import org.bson.Document
40+
import org.bson.codecs.BsonDocumentCodec
3641
import org.bson.codecs.DocumentCodec
3742
import org.junit.experimental.categories.Category
3843
import spock.lang.IgnoreIf
@@ -45,9 +50,11 @@ import static com.mongodb.ClusterFixture.getBinding
4550
import static com.mongodb.ClusterFixture.isDiscoverableReplicaSet
4651
import static com.mongodb.ClusterFixture.isSharded
4752
import static com.mongodb.ClusterFixture.serverVersionAtLeast
48-
import static com.mongodb.operation.OperationHelper.cursorDocumentToQueryResult
53+
import static com.mongodb.ClusterFixture.serverVersionLessThan
4954
import static com.mongodb.internal.operation.ServerVersionHelper.serverIsAtLeastVersionThreeDotTwo
55+
import static com.mongodb.operation.OperationHelper.cursorDocumentToQueryResult
5056
import static java.util.Arrays.asList
57+
import static java.util.Collections.singletonList
5158
import static org.junit.Assert.assertEquals
5259
import static org.junit.Assert.fail
5360

@@ -520,7 +527,15 @@ class QueryBatchCursorFunctionalSpecification extends OperationFunctionalSpecifi
520527
cursor = new QueryBatchCursor<Document>(firstBatch, 0, 2, new DocumentCodec(), connectionSource)
521528

522529
def connection = connectionSource.getConnection()
523-
connection.killCursor(getNamespace(), asList(cursor.getServerCursor().id))
530+
if (serverVersionLessThan(3, 6)) {
531+
connection.killCursor(getNamespace(), asList(cursor.getServerCursor().id))
532+
} else {
533+
connection.command(getNamespace().databaseName,
534+
new BsonDocument('killCursors', new BsonString(namespace.getCollectionName()))
535+
.append('cursors', new BsonArray(singletonList(new BsonInt64(cursor.getServerCursor().id)))),
536+
new NoOpFieldNameValidator(), ReadPreference.primary(),
537+
new BsonDocumentCodec(), new NoOpSessionContext())
538+
}
524539
connection.release()
525540
cursor.next()
526541

0 commit comments

Comments
 (0)