Skip to content

Commit c10cc84

Browse files
committed
RUST-890 Sync tests for serverless skip
1 parent 7caebdf commit c10cc84

File tree

2 files changed

+203
-9
lines changed

2 files changed

+203
-9
lines changed

src/test/spec/json/unified-test-format/examples/poc-crud.json renamed to src/test/spec/json/unified-test-format/valid-pass/poc-crud.json

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"description": "poc-crud",
3-
"schemaVersion": "1.0",
3+
"schemaVersion": "1.4",
44
"createEntities": [
55
{
66
"client": {
@@ -242,12 +242,14 @@
242242
},
243243
"expectError": {
244244
"expectResult": {
245-
"deletedCount": 0,
246-
"insertedCount": 2,
247-
"matchedCount": 0,
248-
"modifiedCount": 0,
249-
"upsertedCount": 0,
250-
"upsertedIds": {}
245+
"$$unsetOrMatches": {
246+
"deletedCount": 0,
247+
"insertedCount": 2,
248+
"matchedCount": 0,
249+
"modifiedCount": 0,
250+
"upsertedCount": 0,
251+
"upsertedIds": {}
252+
}
251253
}
252254
}
253255
}
@@ -321,7 +323,8 @@
321323
"topologies": [
322324
"replicaset",
323325
"sharded-replicaset"
324-
]
326+
],
327+
"serverless": "forbid"
325328
}
326329
],
327330
"operations": [
@@ -406,7 +409,8 @@
406409
"description": "Aggregate with $listLocalSessions",
407410
"runOnRequirements": [
408411
{
409-
"minServerVersion": "3.6.0"
412+
"minServerVersion": "3.6.0",
413+
"serverless": "forbid"
410414
}
411415
],
412416
"operations": [
Lines changed: 190 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,190 @@
1+
description: "poc-crud"
2+
3+
schemaVersion: "1.4"
4+
5+
createEntities:
6+
- client:
7+
id: &client0 client0
8+
observeEvents: [ commandStartedEvent ]
9+
- database:
10+
id: &database0 database0
11+
client: *client0
12+
databaseName: &database0Name crud-tests
13+
- database:
14+
id: &database1 database1
15+
client: *client0
16+
databaseName: &database1Name admin
17+
- collection:
18+
id: &collection0 collection0
19+
database: *database0
20+
collectionName: &collection0Name coll0
21+
- collection:
22+
id: &collection1 collection1
23+
database: *database0
24+
collectionName: &collection1Name coll1
25+
- collection:
26+
id: &collection2 collection2
27+
database: *database0
28+
collectionName: &collection2Name coll2
29+
collectionOptions:
30+
readConcern: { level: majority }
31+
32+
initialData:
33+
- collectionName: *collection0Name
34+
databaseName: *database0Name
35+
documents:
36+
- { _id: 1, x: 11 }
37+
- { _id: 2, x: 22 }
38+
- collectionName: *collection1Name
39+
databaseName: *database0Name
40+
documents:
41+
- { _id: 1, x: 11 }
42+
- collectionName: *collection2Name
43+
databaseName: *database0Name
44+
documents:
45+
- { _id: 1, x: 11 }
46+
- { _id: 2, x: 22 }
47+
- { _id: 3, x: 33 }
48+
- collectionName: &out aggregate_out
49+
databaseName: *database0Name
50+
documents: []
51+
52+
tests:
53+
- description: "BulkWrite with mixed ordered operations"
54+
operations:
55+
- name: bulkWrite
56+
object: *collection0
57+
arguments:
58+
requests:
59+
- insertOne:
60+
document: { _id: 3, x: 33 }
61+
- updateOne:
62+
filter: { _id: 2 }
63+
update: { $inc: { x: 1 } }
64+
- updateMany:
65+
filter: { _id: { $gt: 1 } }
66+
update: { $inc: { x: 1 } }
67+
- insertOne:
68+
document: { _id: 4, x: 44 }
69+
- deleteMany:
70+
filter: { x: { $nin: [ 24, 34 ] } }
71+
- replaceOne:
72+
filter: { _id: 4 }
73+
replacement: { _id: 4, x: 44 }
74+
upsert: true
75+
ordered: true
76+
expectResult:
77+
deletedCount: 2
78+
insertedCount: 2
79+
insertedIds: { $$unsetOrMatches: { 0: 3, 3: 4 } }
80+
matchedCount: 3
81+
modifiedCount: 3
82+
upsertedCount: 1
83+
upsertedIds: { 5: 4 }
84+
outcome:
85+
- collectionName: *collection0Name
86+
databaseName: *database0Name
87+
documents:
88+
- {_id: 2, x: 24 }
89+
- {_id: 3, x: 34 }
90+
- {_id: 4, x: 44 }
91+
92+
- description: "InsertMany continue-on-error behavior with unordered (duplicate key in requests)"
93+
operations:
94+
- name: insertMany
95+
object: *collection1
96+
arguments:
97+
documents:
98+
- { _id: 2, x: 22 }
99+
- { _id: 2, x: 22 }
100+
- { _id: 3, x: 33 }
101+
ordered: false
102+
expectError:
103+
expectResult:
104+
# insertMany throws BulkWriteException, which may optionally include
105+
# an intermediary BulkWriteResult
106+
$$unsetOrMatches:
107+
deletedCount: 0
108+
insertedCount: 2
109+
# Since the map of insertedIds is generated before execution it
110+
# could indicate inserts that did not actually succeed. We omit
111+
# this field rather than expect drivers to provide an accurate
112+
# map filtered by write errors.
113+
matchedCount: 0
114+
modifiedCount: 0
115+
upsertedCount: 0
116+
upsertedIds: { }
117+
outcome:
118+
- collectionName: *collection1Name
119+
databaseName: *database0Name
120+
documents:
121+
- { _id: 1, x: 11 }
122+
- { _id: 2, x: 22 }
123+
- { _id: 3, x: 33 }
124+
125+
- description: "ReplaceOne prohibits atomic modifiers"
126+
operations:
127+
- name: replaceOne
128+
object: *collection1
129+
arguments:
130+
filter: { _id: 1 }
131+
replacement: { $set: { x: 22 }}
132+
expectError:
133+
isClientError: true
134+
expectEvents:
135+
- client: *client0
136+
events: []
137+
outcome:
138+
- collectionName: *collection1Name
139+
databaseName: *database0Name
140+
documents:
141+
- { _id: 1, x: 11 }
142+
143+
- description: "readConcern majority with out stage"
144+
runOnRequirements:
145+
- minServerVersion: "4.1.0"
146+
topologies: [ replicaset, sharded-replicaset ]
147+
serverless: "forbid"
148+
operations:
149+
- name: aggregate
150+
object: *collection2
151+
arguments:
152+
pipeline: &pipeline
153+
- $sort: { x : 1 }
154+
- $match: { _id: { $gt: 1 } }
155+
- $out: *out
156+
expectEvents:
157+
- client: *client0
158+
events:
159+
- commandStartedEvent:
160+
command:
161+
aggregate: *collection2Name
162+
pipeline: *pipeline
163+
readConcern: { level: majority }
164+
# The following two assertions were not in the original test
165+
commandName: aggregate
166+
databaseName: *database0Name
167+
outcome:
168+
- collectionName: *out
169+
databaseName: *database0Name
170+
documents:
171+
- { _id: 2, x: 22 }
172+
- { _id: 3, x: 33 }
173+
174+
- description: "Aggregate with $listLocalSessions"
175+
runOnRequirements:
176+
- minServerVersion: "3.6.0"
177+
# serverless does not support either of the current database-level aggregation stages ($listLocalSessions and
178+
# $currentOp)
179+
serverless: forbid
180+
operations:
181+
- name: aggregate
182+
object: *database1
183+
arguments:
184+
pipeline:
185+
- $listLocalSessions: { }
186+
- $limit: 1
187+
- $addFields: { dummy: "dummy field"}
188+
- $project: { _id: 0, dummy: 1}
189+
expectResult:
190+
- { dummy: "dummy field" }

0 commit comments

Comments
 (0)