Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
5cb8c3e
Add rapid to the matrix of database versions to test
jamis Feb 17, 2026
d91e130
hard code the rapid version
jamis Feb 17, 2026
12f6093
we need the newer drivers-evergreen-tools, after all
jamis Feb 17, 2026
f15de3b
make sure waitress is installed (for ocsp mocking)
jamis Feb 17, 2026
eb6611f
disable mongocryptd specs per SERVER-118428
jamis Feb 19, 2026
b7cdfa5
some 6.0 specs are broken by changes to mock kms server
jamis Feb 19, 2026
de398e6
have to approach this with a narrower filter
jamis Feb 19, 2026
acf07e0
ugh, got the logic flipped
jamis Feb 19, 2026
2f3b154
rapid really does mean the latest minor release (even pre-releases)
jamis Feb 20, 2026
fb56a03
skip failing spec (caused by RUBY-3781)
jamis Feb 23, 2026
ff8dfe3
account for change of behavior in 8.3
jamis Mar 4, 2026
2425f8a
disable FLE & CSOT tests for rapid
jamis Mar 10, 2026
e363115
Merge branch 'master' into 3775-build-variant-for-rapid-release
jamis Mar 11, 2026
d6f30d5
drop_one with invalid index no longer fails under 8.3.0-alpha3
jamis Mar 12, 2026
43c2660
Merge branch 'master' into 3775-build-variant-for-rapid-release
jamis Mar 16, 2026
0fe26a4
try to account for crypt shared location
jamis Mar 17, 2026
b3b014b
Merge branch 'master' into 3775-build-variant-for-rapid-release
jamis Mar 24, 2026
9d741d7
remove unnecessary environment shenanigans
jamis Mar 24, 2026
20812ca
Fix more fle specs
comandeo-mongo Mar 25, 2026
dd0b875
Fix even more fle specs
comandeo-mongo Mar 25, 2026
b524faa
Fix as many fle specs as possible
comandeo-mongo Mar 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 17 additions & 11 deletions .evergreen/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -777,6 +777,10 @@ axes:
- id: "mongodb-version"
display_name: MongoDB Version
values:
- id: "rapid"
display_name: "Rapid"
variables:
MONGODB_VERSION: "rapid"
- id: "8.0"
display_name: "8.0"
variables:
Expand Down Expand Up @@ -1233,7 +1237,7 @@ buildvariants:
- matrix_name: "single-lb"
matrix_spec:
ruby: "ruby-4.0"
mongodb-version: "8.0"
mongodb-version: ["8.0", "rapid"]
topology: load-balanced
single-mongos: single-mongos
os: ubuntu2204
Expand All @@ -1257,7 +1261,7 @@ buildvariants:
- matrix_name: "single-mongos"
matrix_spec:
ruby: "ruby-4.0"
mongodb-version: "8.0"
mongodb-version: ["8.0", "rapid"]
topology: "sharded-cluster"
single-mongos: single-mongos
os: ubuntu2204
Expand Down Expand Up @@ -1292,7 +1296,7 @@ buildvariants:
matrix_spec:
retry-reads: no-retry-reads
ruby: "ruby-4.0"
mongodb-version: "8.0"
mongodb-version: ["8.0", "rapid"]
topology: ["standalone", "replica-set", "sharded-cluster"]
os: ubuntu2204
display_name: "${mongodb-version} ${topology} ${retry-reads} ${ruby}"
Expand All @@ -1304,7 +1308,7 @@ buildvariants:
matrix_spec:
retry-writes: no-retry-writes
ruby: "ruby-4.0"
mongodb-version: "8.0"
mongodb-version: ["8.0", "rapid"]
topology: [replica-set, sharded-cluster]
os: ubuntu2204
display_name: "${mongodb-version} ${topology} ${retry-writes} ${ruby}"
Expand Down Expand Up @@ -1394,7 +1398,7 @@ buildvariants:
matrix_spec:
auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ]
ruby: "ruby-4.0"
mongodb-version: "8.0"
mongodb-version: ["8.0", "rapid"]
topology: "replica-set"
compressor: 'zlib'
os: ubuntu2204
Expand All @@ -1407,7 +1411,7 @@ buildvariants:
matrix_spec:
auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ]
ruby: "ruby-4.0"
mongodb-version: "8.0"
mongodb-version: ["8.0", "rapid"]
topology: "replica-set"
compressor: 'snappy'
os: ubuntu2204
Expand All @@ -1424,7 +1428,7 @@ buildvariants:
matrix_spec:
auth-and-ssl: [ "auth-and-ssl", "noauth-and-nossl" ]
ruby: "ruby-4.0"
mongodb-version: "8.0"
mongodb-version: ["8.0", "rapid"]
topology: "replica-set"
compressor: 'zstd'
os: ubuntu2204
Expand All @@ -1436,7 +1440,7 @@ buildvariants:
- matrix_name: activesupport-"ruby-4.0"
matrix_spec:
ruby: "ruby-4.0"
mongodb-version: "8.0"
mongodb-version: ["8.0", "rapid"]
topology: replica-set
as: as
os: ubuntu2204
Expand All @@ -1448,7 +1452,7 @@ buildvariants:
- matrix_name: bson-"ruby-4.0"
matrix_spec:
ruby: "ruby-4.0"
mongodb-version: "8.0"
mongodb-version: ["8.0", "rapid"]
topology: replica-set
bson: "*"
os: ubuntu2204
Expand Down Expand Up @@ -1523,7 +1527,7 @@ buildvariants:
tasks:
- name: "test-mlaunch"

- matrix_name: "fle above 4.4"
- matrix_name: "fle"
matrix_spec:
auth-and-ssl: "noauth-and-nossl"
ruby: ["ruby-4.0", "ruby-3.4", "ruby-3.3", "ruby-3.2", "ruby-3.1"]
Expand Down Expand Up @@ -1572,6 +1576,8 @@ buildvariants:
# tasks:
# - name: "test-fle"

# Runs specs against the latest server. This is not automatically run on PR's
# because we don't want to block PR's when the latest DB breaks something.
- name: 'latest-server'
activate: false
display_name: 'Latest MongoDB Server'
Expand All @@ -1593,7 +1599,7 @@ buildvariants:
auth-and-ssl: [ aws-regular, aws-assume-role, aws-web-identity ]
ruby: "ruby-4.0"
topology: standalone
mongodb-version: "8.0"
mongodb-version: ["8.0", "rapid"]
os: ubuntu2204
display_name: "AWS ${auth-and-ssl} ${mongodb-version} ${ruby}"
tags: ["pr"]
Expand Down
4 changes: 4 additions & 0 deletions .evergreen/config/axes.yml.erb
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ axes:
- id: "mongodb-version"
display_name: MongoDB Version
values:
- id: "rapid"
display_name: "Rapid"
variables:
MONGODB_VERSION: "rapid"
- id: "8.0"
display_name: "8.0"
variables:
Expand Down
21 changes: 13 additions & 8 deletions .evergreen/config/standard.yml.erb
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,10 @@
jrubies

# The latest stable version of MongoDB
latest_stable_mdb = "8.0".inspect # so it gets quoted as a string
latest_stable_mdb_raw = "8.0"
latest_stable_mdb = latest_stable_mdb_raw.inspect # so it gets quoted as a string

stable_and_rapid = [ latest_stable_mdb_raw, "rapid" ]

recent_mdb = %w( 8.0 7.0 )
%>
Expand Down Expand Up @@ -112,7 +115,7 @@ buildvariants:
- matrix_name: "single-lb"
matrix_spec:
ruby: <%= latest_ruby %>
mongodb-version: <%= latest_stable_mdb %>
mongodb-version: <%= stable_and_rapid %>
topology: load-balanced
single-mongos: single-mongos
os: ubuntu2204
Expand All @@ -136,7 +139,7 @@ buildvariants:
- matrix_name: "single-mongos"
matrix_spec:
ruby: <%= latest_ruby %>
mongodb-version: <%= latest_stable_mdb %>
mongodb-version: <%= stable_and_rapid %>
topology: "sharded-cluster"
single-mongos: single-mongos
os: ubuntu2204
Expand Down Expand Up @@ -171,7 +174,7 @@ buildvariants:
matrix_spec:
retry-reads: no-retry-reads
ruby: <%= latest_ruby %>
mongodb-version: <%= latest_stable_mdb %>
mongodb-version: <%= stable_and_rapid %>
topology: <%= topologies %>
os: ubuntu2204
display_name: "${mongodb-version} ${topology} ${retry-reads} ${ruby}"
Expand All @@ -183,7 +186,7 @@ buildvariants:
matrix_spec:
retry-writes: no-retry-writes
ruby: <%= latest_ruby %>
mongodb-version: <%= latest_stable_mdb %>
mongodb-version: <%= stable_and_rapid %>
topology: [replica-set, sharded-cluster]
os: ubuntu2204
display_name: "${mongodb-version} ${topology} ${retry-writes} ${ruby}"
Expand Down Expand Up @@ -270,7 +273,7 @@ buildvariants:
- name: "run-main-test-suite"

<% [
[latest_ruby, latest_stable_mdb, 'ubuntu2204'],
[latest_ruby, stable_and_rapid, 'ubuntu2204'],
[supported_mri_ruby_2, '"6.0"', 'ubuntu2004']
].each do |rubies, mdb, distro|
%>
Expand Down Expand Up @@ -342,7 +345,7 @@ buildvariants:
- name: "test-mlaunch"
<% end %>

Comment thread
jamis marked this conversation as resolved.
- matrix_name: "fle above 4.4"
- matrix_name: "fle"
matrix_spec:
auth-and-ssl: "noauth-and-nossl"
ruby: <%= supported_mri_rubies_3_ubuntu %>
Expand Down Expand Up @@ -391,6 +394,8 @@ buildvariants:
# tasks:
# - name: "test-fle"

# Runs specs against the latest server. This is not automatically run on PR's
# because we don't want to block PR's when the latest DB breaks something.
- name: 'latest-server'
activate: false
display_name: 'Latest MongoDB Server'
Expand All @@ -412,7 +417,7 @@ buildvariants:
auth-and-ssl: [ aws-regular, aws-assume-role, aws-web-identity ]
ruby: <%= latest_ruby %>
topology: standalone
mongodb-version: <%= latest_stable_mdb %>
mongodb-version: <%= stable_and_rapid %>
os: ubuntu2204
display_name: "AWS ${auth-and-ssl} ${mongodb-version} ${ruby}"
tags: ["pr"]
Expand Down
2 changes: 1 addition & 1 deletion .evergreen/run-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ prepare_server

if test "$DOCKER_PRELOAD" != 1; then
install_mlaunch_venv
pip3 install waitress
fi

# Make sure cmake is installed (in case we need to install the libmongocrypt
Expand Down Expand Up @@ -345,7 +346,6 @@ if test "$COMPRESSOR" = zstd; then
add_uri_option compressors=zstd
fi


echo "Running tests"
set +e
if test -n "$TEST_CMD"; then
Expand Down
2 changes: 1 addition & 1 deletion .mod/drivers-evergreen-tools
Original file line number Diff line number Diff line change
Expand Up @@ -322,9 +322,8 @@
}
)
rescue Mongo::Error::KmsError => exc
exc.message.should =~ /Error when connecting to KMS provider|Empty KMS response/
exc.message.should =~ /libmongocrypt error code/
exc.message.should_not =~ /CryptError/
expect(exc.message).to include('libmongocrypt error code')
expect(exc.message).not_to include('CryptError')
else
fail 'Expected to raise KmsError'
end
Expand Down
2 changes: 1 addition & 1 deletion spec/mongo/crypt/auto_decryption_context_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
include_context 'define shared FLE helpers'

let(:credentials) { Mongo::Crypt::KMS::Credentials.new(kms_providers) }
let(:mongocrypt) { Mongo::Crypt::Handle.new(credentials, logger: logger) }
let(:mongocrypt) { Mongo::Crypt::Handle.new(credentials, {}, extra_options.merge(logger: logger)) }
let(:context) { described_class.new(mongocrypt, io, command) }

let(:logger) { nil }
Expand Down
2 changes: 1 addition & 1 deletion spec/mongo/crypt/auto_encryption_context_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
include_context 'define shared FLE helpers'

let(:credentials) { Mongo::Crypt::KMS::Credentials.new(kms_providers) }
let(:mongocrypt) { Mongo::Crypt::Handle.new(credentials, logger: logger) }
let(:mongocrypt) { Mongo::Crypt::Handle.new(credentials, {}, extra_options.merge(logger: logger)) }
let(:context) { described_class.new(mongocrypt, io, db_name, command) }

let(:logger) { nil }
Expand Down
2 changes: 1 addition & 1 deletion spec/mongo/crypt/data_key_context_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
end

let(:mongocrypt) do
Mongo::Crypt::Handle.new(credentials, kms_tls_options)
Mongo::Crypt::Handle.new(credentials, kms_tls_options, extra_options)
end

let(:io) { double("Mongo::Crypt::EncryptionIO") }
Expand Down
2 changes: 1 addition & 1 deletion spec/mongo/crypt/explicit_decryption_context_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
include_context 'define shared FLE helpers'

let(:credentials) { Mongo::Crypt::KMS::Credentials.new(kms_providers) }
let(:mongocrypt) { Mongo::Crypt::Handle.new(credentials, logger: logger) }
let(:mongocrypt) { Mongo::Crypt::Handle.new(credentials, {}, extra_options.merge(logger: logger)) }
let(:context) { described_class.new(mongocrypt, io, value) }
let(:logger) { nil }
let(:io) { double("Mongo::ClientEncryption::IO") }
Expand Down
2 changes: 1 addition & 1 deletion spec/mongo/crypt/explicit_encryption_context_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
include_context 'define shared FLE helpers'

let(:credentials) { Mongo::Crypt::KMS::Credentials.new(kms_providers) }
let(:mongocrypt) { Mongo::Crypt::Handle.new(credentials, logger: logger) }
let(:mongocrypt) { Mongo::Crypt::Handle.new(credentials, {}, extra_options.merge(logger: logger)) }
let(:context) { described_class.new(mongocrypt, io, value, options) }

let(:logger) { nil }
Expand Down
12 changes: 5 additions & 7 deletions spec/mongo/crypt/handle_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
end

let(:crypt_shared_lib_path) do
nil
SpecConfig.instance.crypt_shared_lib_path
end

let(:crypt_shared_lib_required) do
Expand Down Expand Up @@ -163,9 +163,8 @@
context 'if bypass_query_analysis is true' do
min_server_version '6.0.0'

let(:bypass_query_analysis) do
true
end
let(:bypass_query_analysis) { true }
let(:crypt_shared_lib_path) { nil }

it 'does not load the crypt shared lib' do
expect(Mongo::Crypt::Binding).not_to receive(:setopt_append_crypt_shared_lib_search_path)
Expand All @@ -177,9 +176,8 @@
context 'if explicit_encryption_only is true' do
min_server_version '6.0.0'

let(:explicit_encryption_only) do
true
end
let(:explicit_encryption_only) { true }
let(:crypt_shared_lib_path) { nil }

it 'does not load the crypt shared lib' do
expect(Mongo::Crypt::Binding).not_to receive(:setopt_append_crypt_shared_lib_search_path)
Expand Down
5 changes: 3 additions & 2 deletions spec/mongo/cursor_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -569,6 +569,7 @@

context 'when the result set is iterated fully and the cursor id is non-zero' do
min_server_fcv '5.0'
max_server_fcv '8.2' # 8.3 will exhaust the cursor with the last getMore

let(:documents) do
(1..5).map{ |i| { field: "test#{i}" }}
Expand All @@ -592,8 +593,8 @@
end

it 'schedules a kill cursors command' do
get_more_commands = subscriber.started_events.select { |e| e.command_name == 'killCursors' }
expect(get_more_commands.length).to be 1
commands = subscriber.started_events.select { |e| e.command_name == 'killCursors' }
expect(commands.length).to be 1
end
end
end
Expand Down
5 changes: 2 additions & 3 deletions spec/mongo/index/view_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -59,12 +59,11 @@
view_with_session.drop_one('another_-1')
end

let(:failed_operation) do
view_with_session.drop_one('_another_-1')
let(:session) do
client.start_session
end

it_behaves_like 'an operation using a session'
it_behaves_like 'a failed operation using a session'
end

context 'when the index exists' do
Expand Down
Loading