@@ -240,6 +240,58 @@ func TestServer(t *testing.T) {
240
240
t .Fatalf ("expected postgres URL to start with\" postgres://\" , got %q" ,got )
241
241
}
242
242
})
243
+ t .Run ("SpammyLogs" ,func (t * testing.T ) {
244
+ // The purpose of this check is that we don't show a ton of logs
245
+ // when the server starts.
246
+ t .Parallel ()
247
+ inv ,cfg := clitest .New (t ,
248
+ "server" ,
249
+ "--in-memory" ,
250
+ "--http-address" ,":0" ,
251
+ "--access-url" ,"http://localhost:3000/" ,
252
+ "--cache-dir" ,t .TempDir (),
253
+ )
254
+
255
+ bufferStdout := bytes .NewBuffer (nil )
256
+ bufferStderr := bytes .NewBuffer (nil )
257
+ inv .Stdout = io .MultiWriter (os .Stdout ,bufferStdout )
258
+ inv .Stderr = io .MultiWriter (os .Stderr ,bufferStderr )
259
+ clitest .Start (t ,inv )
260
+
261
+ // Wait for startup
262
+ _ = waitAccessURL (t ,cfg )
263
+
264
+ // Wait a bit for more logs to be printed.
265
+ time .Sleep (testutil .WaitShort )
266
+
267
+ // Lines containing these strings are printed because we're
268
+ // running the server with a test config. They wouldn't be
269
+ // normally shown to the user, so we'll ignore them.
270
+ ignoreLines := []string {
271
+ "isn't externally reachable" ,
272
+ "install.sh will be unavailable" ,
273
+ "telemetry disabled, unable to notify of security issues" ,
274
+ }
275
+
276
+ countLines := func (fullOutput string ,terminalWidth int )int {
277
+ lines := strings .Split (fullOutput ,"\n " )
278
+ count := 0
279
+ lineLoop:
280
+ for _ ,line := range lines {
281
+ for _ ,ignoreLine := range ignoreLines {
282
+ if strings .Contains (line ,ignoreLine ) {
283
+ continue lineLoop
284
+ }
285
+ }
286
+ count += (len (line )+ terminalWidth - 1 )/ terminalWidth
287
+ }
288
+ return count
289
+ }
290
+
291
+ terminalWidth := 80
292
+ numLines := countLines (bufferStdout .String (),terminalWidth )+ countLines (bufferStderr .String (),terminalWidth )
293
+ require .Less (t ,numLines ,20 )
294
+ })
243
295
244
296
// Validate that a warning is printed that it may not be externally
245
297
// reachable.