Skip to content

Commit a70318d

Browse files
authored
RUST-1205 Cherrypick fixes into 3.0.0 (#1124)
1 parent ae9d492 commit a70318d

15 files changed

+72
-181
lines changed

.evergreen/aws-ecs-test/src/main.rs

+6-3
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
1-
use mongodb::{bson::Document, Client};
1+
use mongodb::{
2+
bson::{doc, Document},
3+
Client,
4+
};
25

36
#[tokio::main]
47
async fn main() {
58
let uri = std::env::var("MONGODB_URI").expect("no URI given!");
69
let client = Client::with_uri_str(&uri).await.unwrap();
7-
10+
811
client
912
.database("aws")
1013
.collection::<Document>("somecoll")
11-
.find_one(None, None)
14+
.find_one(doc! {})
1215
.await
1316
.unwrap();
1417
}

.evergreen/aws-lambda-test/mongodb/src/main.rs

+31-15
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
use std::sync::Arc;
22

33
use lambda_runtime::{run, service_fn, Error, LambdaEvent};
4-
use mongodb::{bson::doc, event::{cmap::CmapEvent, command::CommandEvent, sdam::SdamEvent, EventHandler}, options::ClientOptions, Client};
4+
use mongodb::{
5+
bson::doc,
6+
event::{cmap::CmapEvent, command::CommandEvent, sdam::SdamEvent, EventHandler},
7+
options::ClientOptions,
8+
Client,
9+
};
510
use serde::{Deserialize, Serialize};
611
use tokio::sync::OnceCell;
712

@@ -40,7 +45,8 @@ impl Stats {
4045
}
4146
SdamEvent::ServerHeartbeatFailed(ev) => {
4247
assert!(!ev.awaited);
43-
self.failed_heartbeat_durations_millis.push(ev.duration.as_millis());
48+
self.failed_heartbeat_durations_millis
49+
.push(ev.duration.as_millis());
4450
}
4551
_ => (),
4652
}
@@ -49,10 +55,12 @@ impl Stats {
4955
fn handle_command(&mut self, event: &CommandEvent) {
5056
match event {
5157
CommandEvent::Succeeded(ev) => {
52-
self.command_succeeded_durations_millis.push(ev.duration.as_millis());
58+
self.command_succeeded_durations_millis
59+
.push(ev.duration.as_millis());
5360
}
5461
CommandEvent::Failed(ev) => {
55-
self.command_failed_durations_millis.push(ev.duration.as_millis());
62+
self.command_failed_durations_millis
63+
.push(ev.duration.as_millis());
5664
}
5765
_ => (),
5866
}
@@ -62,7 +70,8 @@ impl Stats {
6270
match event {
6371
CmapEvent::ConnectionCreated(_) => {
6472
self.connections_open += 1;
65-
self.max_connections_open = std::cmp::max(self.connections_open, self.max_connections_open);
73+
self.max_connections_open =
74+
std::cmp::max(self.connections_open, self.max_connections_open);
6675
}
6776
CmapEvent::ConnectionClosed(_) => {
6877
self.connections_open -= 1;
@@ -76,23 +85,31 @@ impl State {
7685
async fn new() -> Self {
7786
let uri = std::env::var("MONGODB_URI")
7887
.expect("MONGODB_URI must be set to the URI of the MongoDB deployment");
79-
let mut options = ClientOptions::parse(uri).await.expect("Failed to parse URI");
88+
let mut options = ClientOptions::parse(uri)
89+
.await
90+
.expect("Failed to parse URI");
8091
let stats = Arc::new(std::sync::Mutex::new(Stats::new()));
8192
{
8293
let stats = Arc::clone(&stats);
83-
options.sdam_event_handler = Some(EventHandler::callback(move |ev| stats.lock().unwrap().handle_sdam(&ev)));
94+
options.sdam_event_handler = Some(EventHandler::callback(move |ev| {
95+
stats.lock().unwrap().handle_sdam(&ev)
96+
}));
8497
}
8598
{
8699
let stats = Arc::clone(&stats);
87-
options.command_event_handler = Some(EventHandler::callback(move |ev| stats.lock().unwrap().handle_command(&ev)));
100+
options.command_event_handler = Some(EventHandler::callback(move |ev| {
101+
stats.lock().unwrap().handle_command(&ev)
102+
}));
88103
}
89104
{
90105
let stats = Arc::clone(&stats);
91-
options.cmap_event_handler = Some(EventHandler::callback(move |ev| stats.lock().unwrap().handle_cmap(&ev)));
106+
options.cmap_event_handler = Some(EventHandler::callback(move |ev| {
107+
stats.lock().unwrap().handle_cmap(&ev)
108+
}));
92109
}
93110

94111
let client = Client::with_options(options).expect("Failed to create MongoDB Client");
95-
112+
96113
Self { client, stats }
97114
}
98115
}
@@ -104,14 +121,13 @@ async fn get_state() -> &'static State {
104121
}
105122

106123
#[derive(Deserialize)]
107-
struct Request {
108-
}
124+
struct Request {}
109125

110126
async fn function_handler(_event: LambdaEvent<Request>) -> Result<Stats, Error> {
111127
let state = get_state().await;
112128
let coll = state.client.database("faas_test").collection("faas_test");
113-
let id = coll.insert_one(doc! { }, None).await?.inserted_id;
114-
coll.delete_one(doc! { "id": id }, None).await?;
129+
let id = coll.insert_one(doc! {}).await?.inserted_id;
130+
coll.delete_one(doc! { "id": id }).await?;
115131

116132
let stats = {
117133
let mut guard = state.stats.lock().unwrap();
@@ -125,4 +141,4 @@ async fn function_handler(_event: LambdaEvent<Request>) -> Result<Stats, Error>
125141
#[tokio::main]
126142
async fn main() -> Result<(), Error> {
127143
run(service_fn(function_handler)).await
128-
}
144+
}

.evergreen/azure-kms-test/src/main.rs

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
use mongodb::{
22
bson::doc,
3-
Client, client_encryption::{ClientEncryption, MasterKey}, mongocrypt::ctx::KmsProvider, Namespace,
3+
client_encryption::{ClientEncryption, MasterKey},
44
error::Result,
5+
mongocrypt::ctx::KmsProvider,
6+
Client,
7+
Namespace,
58
};
69

710
use std::env;
@@ -19,11 +22,10 @@ async fn main() -> Result<()> {
1922
.expect("KEY_VAULT_ENDPOINT environment variable should be set");
2023

2124
c.create_data_key(MasterKey::Azure {
22-
key_vault_endpoint: key_vault_endpoint,
23-
key_name: key_name,
25+
key_vault_endpoint,
26+
key_name,
2427
key_version: None,
2528
})
26-
.run()
2729
.await?;
2830

2931
println!("Azure KMS integration test passed!");

.evergreen/config.yml

-1
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,6 @@ buildvariants:
197197

198198
- name: sync-api
199199
display_name: "Sync API"
200-
patchable: false
201200
run_on:
202201
- rhel87-small
203202
expansions:

.evergreen/install-dependencies.sh

+1-19
Original file line numberDiff line numberDiff line change
@@ -30,31 +30,13 @@ for arg; do
3030
elif [ $arg == "junit-dependencies" ]; then
3131
source ${CARGO_HOME}/env
3232

33-
# install npm/node
34-
./.evergreen/install-node.sh
35-
3633
source ./.evergreen/env.sh
3734

3835
# Install junit-compatible test runner
3936
cargo install cargo-nextest --locked
4037

4138
# Install tool for merging different junit reports into a single one
42-
set +o errexit
43-
set -o pipefail
44-
45-
npm install -g junit-report-merger --cache $(mktemp -d) 2>&1 | tee npm-install-output
46-
RESULT=$?
47-
MATCH=$(grep -o '/\S*-debug.log' npm-install-output)
48-
if [[ $MATCH != "" ]]; then
49-
echo ===== BEGIN NPM LOG =====
50-
cat $MATCH
51-
echo ===== END NPM LOG =====
52-
fi
53-
54-
set -o errexit
55-
if [ $RESULT -ne 0 ]; then
56-
exit $RESULT
57-
fi
39+
cargo install merge-junit
5840
elif [ $arg == "libmongocrypt" ]; then
5941
mkdir ${PROJECT_DIRECTORY}/libmongocrypt
6042
cd ${PROJECT_DIRECTORY}/libmongocrypt

.evergreen/install-node.sh

-109
This file was deleted.

.evergreen/run-aws-tests.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,6 @@ cargo_test spec::auth spec.xml
2424
cargo_test uri_options uri_options.xml
2525
cargo_test connection_string connection_string.xml
2626

27-
junit-report-merger results.xml auth_aws.xml lambda_handler.xml spec.xml uri_options.xml connection_string.xml
27+
merge-junit -o results.xml auth_aws.xml lambda_handler.xml spec.xml uri_options.xml connection_string.xml
2828

2929
exit $CARGO_RESULT

.evergreen/run-connection-string-tests.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ cargo_test spec::auth spec.xml
1515
cargo_test uri_options uri_options.xml
1616
cargo_test connection_string connection_string.xml
1717

18-
junit-report-merger results.xml spec.xml uri_options.xml connection_string.xml
18+
merge-junit -o results.xml spec.xml uri_options.xml connection_string.xml
1919

2020
exit ${CARGO_RESULT}

.evergreen/run-csfle-kmip-servers.sh

-11
This file was deleted.

.evergreen/run-csfle-mock-azure-imds.sh

-7
This file was deleted.

.evergreen/run-csfle-tests.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,6 @@ unset AWS_ACCESS_KEY_ID
3434
unset AWS_SECRET_ACCESS_KEY
3535
cargo_test test::csfle::on_demand_aws_failure failure.xml
3636

37-
junit-report-merger results.xml prose.xml spec.xml failure.xml
37+
merge-junit -o results.xml prose.xml spec.xml failure.xml
3838

3939
exit ${CARGO_RESULT}

.evergreen/run-serverless-tests.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ cargo_test test::cursor cursor.xml
2121
cargo_test test::spec::collection_management coll.xml
2222
cargo_test test::spec::command_monitoring_unified monitoring.xml
2323

24-
junit-report-merger results.xml crud.xml retryable_reads.xml retryable_writes.xml versioned_api.xml sessions.xml transactions.xml load_balancers.xml cursor.xml coll.xml monitoring.xml
24+
merge-junit -o results.xml crud.xml retryable_reads.xml retryable_writes.xml versioned_api.xml sessions.xml transactions.xml load_balancers.xml cursor.xml coll.xml monitoring.xml
2525

2626
exit $CARGO_RESULT

0 commit comments

Comments
 (0)