80 lines
2.7 KiB
YAML
80 lines
2.7 KiB
YAML
runOn:
|
|
-
|
|
minServerVersion: "4.0"
|
|
topology: ["single", "replicaset"]
|
|
-
|
|
minServerVersion: "4.1.7"
|
|
topology: ["sharded", "load-balanced"]
|
|
|
|
database_name: &database_name "retryable-reads-tests"
|
|
bucket_name: "fs"
|
|
|
|
data:
|
|
fs.files:
|
|
-
|
|
_id: { $oid : "000000000000000000000001" }
|
|
length: 1
|
|
chunkSize: 4
|
|
uploadDate: { $date : "1970-01-01T00:00:00.000Z" }
|
|
filename: abc
|
|
metadata: {}
|
|
fs.chunks:
|
|
- { _id: { $oid: "000000000000000000000002" }, files_id: { $oid: "000000000000000000000001" }, n: 0, data: { $binary: { base64: "EQ==", subType: "00" } } }
|
|
|
|
tests:
|
|
-
|
|
description: "DownloadByName succeeds on first attempt"
|
|
operations:
|
|
- &retryable_operation
|
|
name: download_by_name
|
|
object: gridfsbucket
|
|
arguments: { filename: "abc" }
|
|
expectations:
|
|
- &retryable_command_started_event
|
|
command_started_event:
|
|
command:
|
|
find: fs.files
|
|
filter: { filename : "abc" }
|
|
database_name: *database_name
|
|
- &find_chunks_command_started_event
|
|
command_started_event:
|
|
command:
|
|
find: fs.chunks
|
|
filter: { files_id: {$oid : "000000000000000000000001"} }
|
|
sort: { n: 1 }
|
|
database_name: *database_name
|
|
-
|
|
description: "DownloadByName succeeds on second attempt"
|
|
failPoint: &failCommand_failPoint
|
|
configureFailPoint: failCommand
|
|
mode: { times: 1 }
|
|
data:
|
|
failCommands: [find]
|
|
closeConnection: true
|
|
operations: [*retryable_operation]
|
|
expectations:
|
|
- *retryable_command_started_event
|
|
- *retryable_command_started_event
|
|
- *find_chunks_command_started_event
|
|
-
|
|
description: "DownloadByName fails on first attempt"
|
|
clientOptions:
|
|
retryReads: false
|
|
failPoint: *failCommand_failPoint
|
|
operations:
|
|
- &retryable_operation_fails
|
|
<<: *retryable_operation
|
|
error: true
|
|
expectations:
|
|
- *retryable_command_started_event
|
|
-
|
|
description: "DownloadByName fails on second attempt"
|
|
failPoint:
|
|
<<: *failCommand_failPoint
|
|
mode: { times: 2 }
|
|
operations: [*retryable_operation_fails]
|
|
expectations:
|
|
- *retryable_command_started_event
|
|
- *retryable_command_started_event
|
|
|