...
1description: "standalone-logging"
2
3schemaVersion: "1.16"
4
5runOnRequirements:
6 - topologies:
7 - single
8 minServerVersion: "4.4" # awaitable hello
9
10createEntities:
11 - client:
12 id: &setupClient setupClient
13
14tests:
15 - description: "Topology lifecycle"
16 operations:
17 - name: createEntities
18 object: testRunner
19 arguments:
20 entities:
21 - client:
22 id: &client client
23 observeLogMessages:
24 topology: debug
25 observeEvents:
26 - topologyDescriptionChangedEvent
27 # ensure the topology has been fully discovered before closing the client.
28 # expected events are initial server discovery and server connect event.
29 - name: waitForEvent
30 object: testRunner
31 arguments:
32 client: *client
33 event:
34 topologyDescriptionChangedEvent: {}
35 count: 2
36 - name: close
37 object: *client
38 expectLogMessages:
39 - client: *client
40 ignoreMessages:
41 - level: debug
42 component: topology
43 data:
44 message: "Server heartbeat started"
45 - level: debug
46 component: topology
47 data:
48 message: "Server heartbeat succeeded"
49 - level: debug
50 component: topology
51 data:
52 message: "Server heartbeat failed"
53 messages:
54 - level: debug
55 component: topology
56 data:
57 message: "Starting topology monitoring"
58 topologyId: { $$exists: true }
59 - level: debug
60 component: topology
61 data:
62 message: "Topology description changed"
63 topologyId: { $$exists: true }
64 previousDescription: { $$exists: true } # unknown topology
65 newDescription: { $$exists: true } # unknown topology, disconnected server
66 - level: debug
67 component: topology
68 data:
69 message: "Starting server monitoring"
70 topologyId: { $$exists: true }
71 serverHost: { $$type: string }
72 serverPort: { $$type: [int, long] }
73 - level: debug
74 component: topology
75 data:
76 message: "Topology description changed"
77 topologyId: { $$exists: true }
78 previousDescription: { $$exists: true }
79 newDescription: { $$exists: true } # standalone topology
80 - level: debug
81 component: topology
82 data:
83 message: "Stopped server monitoring"
84 topologyId: { $$exists: true }
85 serverHost: { $$type: string }
86 serverPort: { $$type: [int, long] }
87 # TODO(GODRIVER-2967): The following log message has been removed from
88 # the JSON analogue because it assumes that
89 # "TopologyDescriptionChangedEvent" should occur when a topolgoy is
90 # closed. This behavior is not clearly defined anywhere and some
91 # drivers support and some don't.
92 #
93 # Need to sync whenever GODRIVER-2967 is unblocked.
94 - level: debug
95 component: topology
96 data:
97 message: "Topology description changed"
98 topologyId: { $$exists: true }
99 previousDescription: { $$exists: true } # standalone topology
100 newDescription: { $$exists: true } # unknown topology
101 - level: debug
102 component: topology
103 data:
104 message: "Stopped topology monitoring"
105 topologyId: { $$exists: true }
106 - description: Successful heartbeat
107 operations:
108 - name: createEntities
109 object: testRunner
110 arguments:
111 entities:
112 - client:
113 id: &client client
114 observeLogMessages:
115 topology: debug
116 observeEvents:
117 - serverHeartbeatSucceededEvent
118 - name: waitForEvent
119 object: testRunner
120 arguments:
121 client: *client
122 event:
123 serverHeartbeatSucceededEvent: {}
124 count: 1
125 - name: close
126 object: *client
127 expectLogMessages:
128 - client: *client
129 ignoreExtraMessages: true
130 ignoreMessages:
131 - level: debug
132 component: topology
133 data:
134 message: "Topology description changed"
135 - level: debug
136 component: topology
137 data:
138 message: "Stopped topology monitoring"
139 - level: debug
140 component: topology
141 data:
142 message: "Stopped server monitoring"
143 - level: debug
144 component: topology
145 data:
146 message: "Topology description changed"
147 - level: debug
148 component: topology
149 data:
150 message: "Starting server monitoring"
151 - level: debug
152 component: topology
153 data:
154 message: "Starting topology monitoring"
155 - level: debug
156 component: topology
157 data:
158 message: "Server heartbeat failed"
159 messages:
160 - level: debug
161 component: topology
162 data:
163 message: "Server heartbeat started"
164 awaited: { $$exists: true }
165 topologyId: { $$exists: true }
166 serverHost: { $$type: string }
167 serverPort: { $$type: [int, long] }
168 driverConnectionId: { $$exists: true }
169 - level: debug
170 component: topology
171 data:
172 message: "Server heartbeat succeeded"
173 awaited: { $$exists: true }
174 topologyId: { $$exists: true }
175 serverHost: { $$type: string }
176 serverPort: { $$type: [int, long] }
177 driverConnectionId: { $$exists: true }
178 serverConnectionId: { $$exists: true }
179 durationMS: { $$type: [int, long] }
180 reply:
181 $$matchAsDocument:
182 "$$matchAsRoot":
183 ok: 1
184 - description: Failing heartbeat
185 operations:
186 - name: createEntities
187 object: testRunner
188 arguments:
189 entities:
190 - client:
191 id: &client client
192 observeLogMessages:
193 topology: debug
194 observeEvents:
195 - serverHeartbeatFailedEvent
196 uriOptions:
197 appname: failingHeartbeatLoggingTest
198 - name: failPoint
199 object: testRunner
200 arguments:
201 client: *setupClient
202 failPoint:
203 configureFailPoint: failCommand
204 mode: "alwaysOn"
205 data:
206 failCommands:
207 - hello
208 - isMaster
209 appName: failingHeartbeatLoggingTest
210 closeConnection: true
211 - name: waitForEvent
212 object: testRunner
213 arguments:
214 client: *client
215 event:
216 serverHeartbeatFailedEvent: {}
217 count: 1
218 expectLogMessages:
219 - client: *client
220 ignoreExtraMessages: true
221 ignoreMessages:
222 - level: debug
223 component: topology
224 data:
225 message: "Topology description changed"
226 - level: debug
227 component: topology
228 data:
229 message: "Stopped topology monitoring"
230 - level: debug
231 component: topology
232 data:
233 message: "Stopped server monitoring"
234 - level: debug
235 component: topology
236 data:
237 message: "Topology description changed"
238 - level: debug
239 component: topology
240 data:
241 message: "Starting server monitoring"
242 - level: debug
243 component: topology
244 data:
245 message: "Starting topology monitoring"
246 - level: debug
247 component: topology
248 data:
249 message: "Server heartbeat started"
250 - level: debug
251 component: topology
252 data:
253 message: "Server heartbeat succeeded"
254 messages:
255 - level: debug
256 component: topology
257 data:
258 message: "Server heartbeat failed"
259 awaited: { $$exists: true }
260 topologyId: { $$exists: true }
261 serverHost: { $$type: string }
262 serverPort: { $$type: [int, long] }
263 driverConnectionId: { $$exists: true }
264 durationMS: { $$type: [int, long] }
265 failure: { $$exists: true }
View as plain text