diff --git a/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/ClientSideEncryptionTestRunner.cs b/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/ClientSideEncryptionTestRunner.cs index 0fcb11068d0..eab4d65192b 100644 --- a/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/ClientSideEncryptionTestRunner.cs +++ b/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/ClientSideEncryptionTestRunner.cs @@ -266,7 +266,20 @@ private AutoEncryptionOptions ConfigureAutoEncryptionOptions(BsonDocument autoEn case "bypassQueryAnalysis": autoEncryptionOptions = autoEncryptionOptions.With(bypassQueryAnalysis: option.Value.ToBoolean()); break; - + case "extraOptions": + foreach (var extraOption in option.Value.AsBsonDocument.Elements) + { + switch (extraOption.Name) + { + case "mongocryptdBypassSpawn": + extraOptions.Add(extraOption.Name, extraOption.Value.ToBoolean()); + break; + default: + throw new Exception($"Unexpected extra option {extraOption.Name}."); + } + } + autoEncryptionOptions = autoEncryptionOptions.With(extraOptions: extraOptions); + break; default: throw new Exception($"Unexpected auto encryption option {option.Name}."); } @@ -330,11 +343,6 @@ private void ReplaceTypeAssertionWithActual(BsonArray actual, BsonArray expected public class TestCaseFactory : JsonDrivenTestCaseFactory { #region static - private static readonly string[] __ignoredTestNames = - { - // https://jira.mongodb.org/browse/SPEC-1403 - "maxWireVersion.json:operation fails with maxWireVersion < 8" - }; private static readonly string[] __versionedApiIgnoredTestNames = { // https://jira.mongodb.org/browse/SERVER-58293 @@ -348,7 +356,7 @@ public class TestCaseFactory : JsonDrivenTestCaseFactory // protected methods protected override IEnumerable CreateTestCases(BsonDocument document) { - var testCases = base.CreateTestCases(document).Where(test => !__ignoredTestNames.Any(ignoredName => test.Name.EndsWith(ignoredName))); + var testCases = base.CreateTestCases(document); if (CoreTestConfiguration.RequireApiVersion) { testCases = testCases.Where(test => !__versionedApiIgnoredTestNames.Any(ignoredName => test.Name.EndsWith(ignoredName))); diff --git a/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/EncryptionTestHelper.cs b/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/EncryptionTestHelper.cs index ab5729be447..2362443a24d 100644 --- a/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/EncryptionTestHelper.cs +++ b/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/EncryptionTestHelper.cs @@ -106,6 +106,12 @@ string GetEnvironmentVariableOrDefaultOrThrowIfNothing(string variableName, stri public static void ConfigureDefaultExtraOptions(Dictionary extraOptions) { + if (CoreTestConfiguration.MaxWireVersion < WireVersion.Server42) + { + // CSFLE is supported starting from server 4.2 + return; + } + Ensure.IsNotNull(extraOptions, nameof(extraOptions)); if (!extraOptions.TryGetValue("mongocryptdSpawnPath", out object value)) diff --git a/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/tests/legacy/maxWireVersion.json b/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/tests/legacy/maxWireVersion.json index c1088a0ecf4..f04f58dffde 100644 --- a/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/tests/legacy/maxWireVersion.json +++ b/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/tests/legacy/maxWireVersion.json @@ -1,7 +1,7 @@ { "runOn": [ { - "maxServerVersion": "4.0" + "maxServerVersion": "4.0.99" } ], "database_name": "default", diff --git a/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/tests/legacy/maxWireVersion.yml b/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/tests/legacy/maxWireVersion.yml index 8df590d809a..91700012686 100644 --- a/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/tests/legacy/maxWireVersion.yml +++ b/tests/MongoDB.Driver.Tests/Specifications/client-side-encryption/tests/legacy/maxWireVersion.yml @@ -1,5 +1,5 @@ runOn: - - maxServerVersion: "4.0" + - maxServerVersion: "4.0.99" database_name: &database_name "default" collection_name: &collection_name "default" @@ -19,4 +19,4 @@ tests: arguments: document: { encrypted_string: "string0" } result: - errorContains: "Auto-encryption requires a minimum MongoDB version of 4.2" \ No newline at end of file + errorContains: "Auto-encryption requires a minimum MongoDB version of 4.2"