Skip to content

Commit eac52e8

Browse files
minor: sync transactions spec tests
1 parent f683ecc commit eac52e8

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+40064
-0
lines changed

src/test/spec/json/transactions/README.rst

Lines changed: 647 additions & 0 deletions
Large diffs are not rendered by default.

src/test/spec/json/transactions/abort.json

Lines changed: 621 additions & 0 deletions
Large diffs are not rendered by default.

src/test/spec/json/transactions/abort.yml

Lines changed: 413 additions & 0 deletions
Large diffs are not rendered by default.

src/test/spec/json/transactions/bulk.json

Lines changed: 531 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 268 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,268 @@
1+
runOn:
2+
-
3+
minServerVersion: "4.0"
4+
topology: ["replicaset"]
5+
-
6+
minServerVersion: "4.1.8"
7+
topology: ["sharded"]
8+
9+
database_name: &database_name "transaction-tests"
10+
collection_name: &collection_name "test"
11+
12+
data: []
13+
14+
tests:
15+
- description: bulk
16+
17+
operations:
18+
- name: startTransaction
19+
object: session0
20+
- name: insertOne
21+
object: collection
22+
arguments:
23+
session: session0
24+
document:
25+
_id: 1
26+
result:
27+
insertedId: 1
28+
- name: deleteOne
29+
object: collection
30+
arguments:
31+
session: session0
32+
filter:
33+
_id: 1
34+
result:
35+
deletedCount: 1
36+
- name: bulkWrite
37+
object: collection
38+
arguments:
39+
session: session0
40+
requests:
41+
- name: insertOne
42+
arguments:
43+
document: {_id: 1}
44+
- name: updateOne
45+
arguments:
46+
filter: {_id: 1}
47+
update: {$set: {x: 1}}
48+
- name: updateOne
49+
arguments:
50+
filter: {_id: 2}
51+
update: {$set: {x: 2}}
52+
upsert: true # Produces upsertedIds: {2: 2} in the result.
53+
- name: insertOne
54+
arguments:
55+
document: {_id: 3}
56+
- name: insertOne
57+
arguments:
58+
document: {_id: 4}
59+
- name: insertOne
60+
arguments:
61+
document: {_id: 5}
62+
- name: insertOne
63+
arguments:
64+
document: {_id: 6}
65+
- name: insertOne
66+
arguments:
67+
document: {_id: 7}
68+
# Keep replaces segregated from updates, so that drivers that aren't able to coalesce
69+
# adjacent updates and replaces into a single update command will still pass this test
70+
- name: replaceOne
71+
arguments:
72+
filter: {_id: 1}
73+
replacement: {y: 1}
74+
- name: replaceOne
75+
arguments:
76+
filter: {_id: 2}
77+
replacement: {y: 2}
78+
- name: deleteOne
79+
arguments:
80+
filter: {_id: 3}
81+
- name: deleteOne
82+
arguments:
83+
filter: {_id: 4}
84+
- name: updateMany
85+
arguments:
86+
filter: {_id: {$gte: 2}}
87+
update: {$set: {z: 1}}
88+
# Keep deleteMany segregated from deleteOne, so that drivers that aren't able to coalesce
89+
# adjacent mixed deletes into a single delete command will still pass this test
90+
- name: deleteMany
91+
arguments:
92+
filter: {_id: {$gte: 6}}
93+
result:
94+
deletedCount: 4
95+
insertedCount: 6
96+
insertedIds: {0: 1, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7}
97+
matchedCount: 7
98+
modifiedCount: 7
99+
upsertedCount: 1
100+
upsertedIds: {2: 2}
101+
- name: commitTransaction
102+
object: session0
103+
104+
expectations:
105+
- command_started_event:
106+
command:
107+
insert: *collection_name
108+
documents:
109+
- _id: 1
110+
ordered: true
111+
readConcern:
112+
lsid: session0
113+
txnNumber:
114+
$numberLong: "1"
115+
startTransaction: true
116+
autocommit: false
117+
writeConcern:
118+
command_name: insert
119+
database_name: *database_name
120+
- command_started_event:
121+
command:
122+
delete: *collection_name
123+
deletes:
124+
- q: {_id: 1}
125+
limit: 1
126+
ordered: true
127+
lsid: session0
128+
txnNumber:
129+
$numberLong: "1"
130+
startTransaction:
131+
autocommit: false
132+
writeConcern:
133+
command_name: delete
134+
database_name: *database_name
135+
# Commands in the bulkWrite.
136+
- command_started_event:
137+
command:
138+
insert: *collection_name
139+
documents:
140+
- _id: 1
141+
ordered: true
142+
lsid: session0
143+
txnNumber:
144+
$numberLong: "1"
145+
startTransaction:
146+
autocommit: false
147+
writeConcern:
148+
command_name: insert
149+
database_name: *database_name
150+
- command_started_event:
151+
command:
152+
update: *collection_name
153+
updates:
154+
- q: {_id: 1}
155+
u: {$set: {x: 1}}
156+
- q: {_id: 2}
157+
u: {$set: {x: 2}}
158+
upsert: true
159+
ordered: true
160+
lsid: session0
161+
txnNumber:
162+
$numberLong: "1"
163+
startTransaction:
164+
autocommit: false
165+
writeConcern:
166+
command_name: update
167+
database_name: *database_name
168+
- command_started_event:
169+
command:
170+
insert: *collection_name
171+
documents:
172+
- _id: 3
173+
- _id: 4
174+
- _id: 5
175+
- _id: 6
176+
- _id: 7
177+
ordered: true
178+
lsid: session0
179+
txnNumber:
180+
$numberLong: "1"
181+
startTransaction:
182+
autocommit: false
183+
writeConcern:
184+
command_name: insert
185+
database_name: *database_name
186+
- command_started_event:
187+
command:
188+
update: *collection_name
189+
updates:
190+
- q: {_id: 1}
191+
u: {y: 1}
192+
- q: {_id: 2}
193+
u: {y: 2}
194+
ordered: true
195+
lsid: session0
196+
txnNumber:
197+
$numberLong: "1"
198+
startTransaction:
199+
autocommit: false
200+
writeConcern:
201+
command_name: update
202+
database_name: *database_name
203+
- command_started_event:
204+
command:
205+
delete: *collection_name
206+
deletes:
207+
- q: {_id: 3}
208+
limit: 1
209+
- q: {_id: 4}
210+
limit: 1
211+
ordered: true
212+
lsid: session0
213+
txnNumber:
214+
$numberLong: "1"
215+
startTransaction:
216+
autocommit: false
217+
writeConcern:
218+
command_name: delete
219+
database_name: *database_name
220+
- command_started_event:
221+
command:
222+
update: *collection_name
223+
updates:
224+
- q: {_id: {$gte: 2}}
225+
u: {$set: {z: 1}}
226+
multi: true
227+
ordered: true
228+
lsid: session0
229+
txnNumber:
230+
$numberLong: "1"
231+
startTransaction:
232+
autocommit: false
233+
writeConcern:
234+
command_name: update
235+
database_name: *database_name
236+
- command_started_event:
237+
command:
238+
delete: *collection_name
239+
deletes:
240+
- q: {_id: {$gte: 6}}
241+
limit: 0
242+
ordered: true
243+
lsid: session0
244+
txnNumber:
245+
$numberLong: "1"
246+
startTransaction:
247+
autocommit: false
248+
writeConcern:
249+
command_name: delete
250+
database_name: *database_name
251+
- command_started_event:
252+
command:
253+
commitTransaction: 1
254+
lsid: session0
255+
txnNumber:
256+
$numberLong: "1"
257+
startTransaction:
258+
autocommit: false
259+
writeConcern:
260+
command_name: commitTransaction
261+
database_name: admin
262+
263+
outcome:
264+
collection:
265+
data:
266+
- {_id: 1, y: 1}
267+
- {_id: 2, y: 2, z: 1}
268+
- {_id: 5, z: 1}

0 commit comments

Comments
 (0)