blob: 0e2a8640a95ba0305d52c2c1d82c2277412a8194 (
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
|
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
# Parallel shell is not causally consistent
- jstests/core/benchrun_pipeline_updates.js
- jstests/core/crud_ops_do_not_throw_locktimeout.js
- jstests/core/cursora.js
- jstests/core/find_and_modify_concurrent_update.js
- jstests/core/shellstartparallel.js
- jstests/core/loadserverscripts.js
- jstests/core/fsync.js
# benchRun cannot be overridden to be causally consistent
- jstests/core/bench_test*.js
- jstests/core/benchrun_pipeline_updates.js
# getMore is not causal consistent because afterClusterTime has been specified
# by the preceding find command which establishes the cursor. Therefore,
# getMore cannot be guaranteed to get executed after commands in between find
# and getMore.
- jstests/core/drop3.js
- jstests/core/ord.js
- jstests/core/tailable_cursor_invalidation.js
- jstests/core/tailable_skip_limit.js
- jstests/core/collation.js
exclude_with_any_tags:
##
# 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
- does_not_support_causal_consistency
##
# collStats and dbStats are not causally consistent
- requires_collstats
- requires_dbstats
# 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:
eval: >-
testingReplication = true;
load('jstests/libs/override_methods/set_read_preference_secondary.js');
load('jstests/libs/override_methods/enable_causal_consistency.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
# Allow many initial sync attempts. Initial sync may fail if the sync source does not have
# an oplog yet because it has not conducted its own initial sync yet.
numInitialSyncAttempts: 10000000
linear_chain: true
num_nodes: 5
use_replica_set_connection_string: true
|