summaryrefslogtreecommitdiff
path: root/buildscripts/resmokeconfig/suites/change_streams_update_v1_oplog.yml
blob: 6be4f68ba9fb6e39651568e202d6f438da3c8178 (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
test_kind: js_test

selector:
  roots:
  - jstests/change_streams/**/*.js
  exclude_files:
  # Expects oplog entries to be in $v:2 format.
  - jstests/change_streams/expanded_update_description.js
  - jstests/change_streams/pipeline_style_updates_v2_oplog_entries.js
  - jstests/change_streams/show_expanded_events.js

  exclude_with_any_tags:
  ##
  # The next 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 write concern of command: ..."
  - assumes_write_concern_unchanged

executor:
  archive:
    hooks:
      - CheckReplDBHash
      - CheckReplOplogs
      - ValidateCollections
  config:
    shell_options:
      global_vars:
        TestData:
          defaultReadConcernLevel: null
          enableMajorityReadConcern: ''
      # Enable causal consistency for change streams suites. Some tests rely on the assumption that
      # a w:majority write will be visible immediately in a subsequently opened change stream. An
      # operation that majority commits at timestamp T will force the majority snapshot to advance
      # to T, but the oplog visibility point may not have advanced to T yet. Subsequent majority
      # snapshot reads will see this write in the oplog, but speculative majority reads may not,
      # since they read from a local snapshot and are bound to the oplog visibility rules. Using
      # causal consistency forces the visibility point to advance to the timestamp of the last write
      # before doing a new read.
      eval: >-
        var testingReplication = true;
        load('jstests/libs/override_methods/set_read_and_write_concerns.js');
        load('jstests/libs/override_methods/enable_causal_consistency_without_read_pref.js');
  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:
      bind_ip_all: ''
      set_parameters:
        enableTestCommands: 1
        internalQueryEnableLoggingV2OplogEntries: false
    num_nodes: 2