1runOn:
2    -
3        minServerVersion: "4.0"
4        topology: ["single", "replicaset"]
5    -
6        minServerVersion: "4.1.7"
7        topology: ["sharded"]
8
9database_name: &database_name "retryable-reads-tests"
10collection_name: &collection_name "coll"
11
12data: []
13
14tests:
15    -
16        description: "ListIndexNames succeeds on first attempt"
17        operations:
18            - &retryable_operation
19                name: listIndexNames
20                object: collection
21        expectations:
22            -  &retryable_command_started_event
23                command_started_event:
24                    command:
25                        listIndexNames: *collection_name
26                    database_name: *database_name
27    -
28        description: "ListIndexNames succeeds on second attempt"
29        failPoint: &failCommand_failPoint
30            configureFailPoint: failCommand
31            mode: { times: 1 }
32            data:
33                failCommands:
34                        - listIndexes
35                closeConnection: true
36        operations: [*retryable_operation]
37        expectations:
38             - *retryable_command_started_event
39             - *retryable_command_started_event
40    -
41        description: "ListIndexNames fails on first attempt"
42        clientOptions:
43            retryReads: false
44        failPoint: *failCommand_failPoint
45        operations:
46            - &retryable_operation_fails
47                <<: *retryable_operation
48                error: true
49        expectations:
50             - *retryable_command_started_event
51    -
52        description: "ListIndexNames fails on second attempt"
53        failPoint:
54            <<: *failCommand_failPoint
55            mode: { times: 2 }
56        operations: [*retryable_operation_fails]
57        expectations:
58             - *retryable_command_started_event
59             - *retryable_command_started_event
60
61