summaryrefslogtreecommitdiff
path: root/buildscripts/resmokeconfig/suites/write_concern_majority_passthrough.yml
blob: 5bfc282d3fe72afb47f4387f4e394ed081c8326a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
test_kind: js_test

selector:
  roots:
  - jstests/core/**/*.js
  exclude_files:
  # Operations within a transaction do not support write concern.
  - jstests/core/txns/**/*.js
  # These tests are not expected to pass with replica-sets:
  - jstests/core/dbadmin.js
  - jstests/core/opcounters_write_cmd.js
  - jstests/core/read_after_optime.js
  - jstests/core/capped_update.js
  # The shellkillop.js test spawns a parallel shell without using startParallelShell() and therefore
  # doesn't inherit the w="majority" write concern when performing its writes.
  - jstests/core/shellkillop.js
  exclude_with_any_tags:
  ##
  # The next three tags correspond to the special errors thrown by the
  # set_read_and_write_concerns.js override when it refuses to replace the readConcern or
  # writeConcern of a particular command. Above each tag are the message(s) that cause the tag to be
  # warranted.
  ##
  # "Cowardly refusing to override read concern of command: ..."
  - assumes_read_concern_unchanged
  # "Cowardly refusing to override write concern of command: ..."
  - assumes_write_concern_unchanged
  ##
  # The next tag corresponds to the special error thrown by the set_read_preference_secondary.js
  # override when it refuses to replace the readPreference of a particular command. Above each tag
  # are the message(s) that cause the tag to be warranted.
  ##
  # "Cowardly refusing to override read preference of command: ..."
  # "Cowardly refusing to run test with overridden read preference when it reads from a
  #  non-replicated collection: ..."
  - assumes_read_preference_unchanged
  # These tests attempt to read from the "system.profile" collection, which may be missing entries
  # if a write was performed on the primary of the replica set instead.
  - requires_profiling

executor:
  archive:
    hooks:
      - CheckReplDBHash
      - CheckReplOplogs
      - ValidateCollections
  config:
    shell_options:
      global_vars:
        TestData:
          defaultReadConcernLevel: local
      eval: >-
        testingReplication = true;
        load('jstests/libs/override_methods/set_read_and_write_concerns.js');
        load('jstests/libs/override_methods/set_read_preference_secondary.js');
        load('jstests/libs/override_methods/causally_consistent_index_builds.js');
      readMode: commands
  hooks:
  # The CheckReplDBHash hook waits until all operations have replicated to and have been applied
  # on the secondaries, so we run the ValidateCollections hook after it to ensure we're
  # validating the entire contents of the collection.
  - class: CheckReplOplogs
  - class: CheckReplDBHash
  - class: ValidateCollections
  - class: CleanEveryN
    n: 20
  fixture:
    class: ReplicaSetFixture
    mongod_options:
      set_parameters:
        enableTestCommands: 1
    # This suite requires w="majority" writes to be applied on all secondaries. By using a 2-node
    # replica set and having secondaries vote, the majority of the replica set is all nodes.
    num_nodes: 2
    use_replica_set_connection_string: true