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