summaryrefslogtreecommitdiff
path: root/buildscripts/resmokeconfig/suites/change_streams_multitenant_passthrough.yml
blob: f838d68afd5575cc3a1f70c5ac4f805892f6773f (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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
test_kind: js_test

selector:
  roots:
  - jstests/change_streams/**/*.js
  exclude_files:
  ##
  # TODO SERVER-68341: Implement enable/disable command for mongoQ in the serverless.
  - jstests/change_streams/projection_fakes_internal_event.js

  ##
  # TODO SERVER-70760: This test creates its own sharded cluster and uses transaction. The support
  #                    for transaction on multi-tenancy is not fully available. Unblock this test
  #                    after the support is available.
  - jstests/change_streams/oplog_rewrite/change_stream_basic_match_pushdown_rewrite.js

  ##
  # These tests run in sharded clusters. The'$tenant' cannot be injected to the sharded cluster
  # currently, as such these tests cannot work in true multitenant environment.
  # TODO SERVER-68341: Remove these JS tests from exclusion list.
  - jstests/change_streams/show_resharding_system_events.js
  - jstests/change_streams/refine_collection_shard_key_event.js
  - jstests/change_streams/projection_fakes_internal_event.js
  - jstests/change_streams/change_streams_lookup_preimage_with_chunk_migration.js
  - jstests/change_streams/migrate_last_chunk_from_shard_event.js
  - jstests/change_streams/shard_collection_event.js
  - jstests/change_streams/create_event_from_chunk_migration.js
  - jstests/change_streams/oplog_rewrite/change_stream_match_pushdown_documentKey_rewrite.js
  - jstests/change_streams/oplog_rewrite/change_stream_match_pushdown_fullDocumentBeforeChange_rewrite.js
  - jstests/change_streams/oplog_rewrite/change_stream_match_pushdown_fullDocument_rewrite.js
  - jstests/change_streams/oplog_rewrite/change_stream_match_pushdown_operation_type_rewrite.js
  - jstests/change_streams/oplog_rewrite/change_stream_match_pushdown_to_rewrite.js
  - jstests/change_streams/oplog_rewrite/change_stream_match_pushdown_updateDescription_rewrite.js
  - jstests/change_streams/oplog_rewrite/match_pushdown_namespace_rewrite_with_expanded_events.js
  - jstests/change_streams/oplog_rewrite/change_stream_basic_match_pushdown_rewrite.js
  - jstests/change_streams/oplog_rewrite/change_stream_match_pushdown_namespace_rewrite.js
  - jstests/change_streams/reshard_collection_event.js

  ##
  # These tests issue 'applyOps' command to which '$tenant' cannot be injected.
  - jstests/change_streams/apply_ops.js
  - jstests/change_streams/lookup_pit_pre_and_post_image_in_transaction.js

  ##
  # This test uses 'system' database and '$tenant' cannot be injected in 'system.$cmd' namespace.
  - jstests/change_streams/global_index.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
      - ValidateCollections
  config:
    shell_options:
      global_vars:
        TestData:
          defaultReadConcernLevel: null
          enableMajorityReadConcern: ''
          tenant: "636d957b2646ddfaf9b5e13f"
      # Enable causal consistency for change streams suites using 1 node replica sets. See
      # change_streams.yml for detailed explanation.
      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');
        load('jstests/libs/override_methods/inject_dollar_tenant.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: CheckReplDBHash
  - class: ValidateCollections
  - class: CleanEveryN
    n: 20
  - class: EnableChangeStream
    tenant_id: "636d957b2646ddfaf9b5e13f"
  fixture:
    class: ReplicaSetFixture
    replset_name: "ChangeStreamMultitenantReplSet"
    mongod_options:
      bind_ip_all: ''
      serverless: true
      noscripting: ''
      set_parameters:
        enableTestCommands: 1
        featureFlagServerlessChangeStreams: true
        featureFlagRequireTenantID: true
        multitenancySupport: true
    num_nodes: 2