Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit966c888

Browse files
authored
fix: test: no parallel when starting Prometheus endpoint (#13981)
* fix: test: no parallel when starting Prometheus endpoint* fix
1 parent5a4dbcf commit966c888

File tree

1 file changed

+73
-74
lines changed

1 file changed

+73
-74
lines changed

‎enterprise/cli/provisionerdaemons_test.go

Lines changed: 73 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -299,88 +299,87 @@ func TestProvisionerDaemon_SessionToken(t *testing.T) {
299299
assert.Equal(t,buildinfo.Version(),daemons[0].Version)
300300
assert.Equal(t,proto.CurrentVersion.String(),daemons[0].APIVersion)
301301
})
302+
}
302303

303-
t.Run("PrometheusEnabled",func(t*testing.T) {
304-
t.Parallel()
305-
306-
prometheusPort:=testutil.RandomPortNoListen(t)
304+
//nolint:paralleltest,tparallel // Prometheus endpoint tends to fail with `bind: address already in use`.
305+
funcTestProvisionerDaemon_PrometheusEnabled(t*testing.T) {
306+
prometheusPort:=testutil.RandomPortNoListen(t)
307307

308-
// Configure CLI client
309-
client,admin:=coderdenttest.New(t,&coderdenttest.Options{
310-
ProvisionerDaemonPSK:"provisionersftw",
311-
LicenseOptions:&coderdenttest.LicenseOptions{
312-
Features: license.Features{
313-
codersdk.FeatureExternalProvisionerDaemons:1,
314-
},
308+
// Configure CLI client
309+
client,admin:=coderdenttest.New(t,&coderdenttest.Options{
310+
ProvisionerDaemonPSK:"provisionersftw",
311+
LicenseOptions:&coderdenttest.LicenseOptions{
312+
Features: license.Features{
313+
codersdk.FeatureExternalProvisionerDaemons:1,
315314
},
316-
})
317-
anotherClient,_:=coderdtest.CreateAnotherUser(t,client,admin.OrganizationID,rbac.RoleTemplateAdmin())
318-
inv,conf:=newCLI(t,"provisionerd","start","--name","daemon-with-prometheus","--prometheus-enable","--prometheus-address",fmt.Sprintf("127.0.0.1:%d",prometheusPort))
319-
clitest.SetupConfig(t,anotherClient,conf)
320-
pty:=ptytest.New(t).Attach(inv)
321-
ctx,cancel:=context.WithTimeout(inv.Context(),testutil.WaitLong)
322-
defercancel()
315+
},
316+
})
317+
anotherClient,_:=coderdtest.CreateAnotherUser(t,client,admin.OrganizationID,rbac.RoleTemplateAdmin())
318+
inv,conf:=newCLI(t,"provisionerd","start","--name","daemon-with-prometheus","--prometheus-enable","--prometheus-address",fmt.Sprintf("127.0.0.1:%d",prometheusPort))
319+
clitest.SetupConfig(t,anotherClient,conf)
320+
pty:=ptytest.New(t).Attach(inv)
321+
ctx,cancel:=context.WithTimeout(inv.Context(),testutil.WaitLong)
322+
defercancel()
323323

324-
// Start "provisionerd" command
325-
clitest.Start(t,inv)
326-
pty.ExpectMatchContext(ctx,"starting provisioner daemon")
324+
// Start "provisionerd" command
325+
clitest.Start(t,inv)
326+
pty.ExpectMatchContext(ctx,"starting provisioner daemon")
327327

328-
vardaemons []codersdk.ProvisionerDaemon
329-
varerrerror
330-
require.Eventually(t,func()bool {
331-
daemons,err=client.ProvisionerDaemons(ctx)
332-
iferr!=nil {
333-
returnfalse
334-
}
335-
returnlen(daemons)==1
336-
},testutil.WaitLong,testutil.IntervalSlow)
337-
require.Equal(t,"daemon-with-prometheus",daemons[0].Name)
328+
vardaemons []codersdk.ProvisionerDaemon
329+
varerrerror
330+
require.Eventually(t,func()bool {
331+
daemons,err=client.ProvisionerDaemons(ctx)
332+
iferr!=nil {
333+
returnfalse
334+
}
335+
returnlen(daemons)==1
336+
},testutil.WaitLong,testutil.IntervalSlow)
337+
require.Equal(t,"daemon-with-prometheus",daemons[0].Name)
338338

339-
// Fetch metrics from Prometheus endpoint
340-
varreq*http.Request
341-
varres*http.Response
342-
require.Eventually(t,func()bool {
343-
req,err=http.NewRequestWithContext(ctx,"GET",fmt.Sprintf("http://127.0.0.1:%d",prometheusPort),nil)
344-
iferr!=nil {
345-
t.Logf("unable to create new HTTP request: %s",err.Error())
346-
returnfalse
347-
}
339+
// Fetch metrics from Prometheus endpoint
340+
varreq*http.Request
341+
varres*http.Response
342+
require.Eventually(t,func()bool {
343+
req,err=http.NewRequestWithContext(ctx,"GET",fmt.Sprintf("http://127.0.0.1:%d",prometheusPort),nil)
344+
iferr!=nil {
345+
t.Logf("unable to create new HTTP request: %s",err.Error())
346+
returnfalse
347+
}
348348

349-
// nolint:bodyclose
350-
res,err=http.DefaultClient.Do(req)
351-
iferr!=nil {
352-
t.Logf("unable to call Prometheus endpoint: %s",err.Error())
353-
returnfalse
354-
}
355-
returntrue
356-
},testutil.WaitShort,testutil.IntervalMedium)
357-
deferres.Body.Close()
349+
// nolint:bodyclose
350+
res,err=http.DefaultClient.Do(req)
351+
iferr!=nil {
352+
t.Logf("unable to call Prometheus endpoint: %s",err.Error())
353+
returnfalse
354+
}
355+
returntrue
356+
},testutil.WaitShort,testutil.IntervalMedium)
357+
deferres.Body.Close()
358358

359-
// Scan for metric patterns
360-
scanner:=bufio.NewScanner(res.Body)
361-
hasOneDaemon:=false
362-
hasGoStats:=false
363-
hasPromHTTP:=false
364-
forscanner.Scan() {
365-
ifstrings.HasPrefix(scanner.Text(),"coderd_provisionerd_num_daemons 1") {
366-
hasOneDaemon=true
367-
continue
368-
}
369-
ifstrings.HasPrefix(scanner.Text(),"go_goroutines") {
370-
hasGoStats=true
371-
continue
372-
}
373-
ifstrings.HasPrefix(scanner.Text(),"promhttp_metric_handler_requests_total") {
374-
hasPromHTTP=true
375-
continue
376-
}
377-
t.Logf("scanned %s",scanner.Text())
359+
// Scan for metric patterns
360+
scanner:=bufio.NewScanner(res.Body)
361+
hasOneDaemon:=false
362+
hasGoStats:=false
363+
hasPromHTTP:=false
364+
forscanner.Scan() {
365+
ifstrings.HasPrefix(scanner.Text(),"coderd_provisionerd_num_daemons 1") {
366+
hasOneDaemon=true
367+
continue
368+
}
369+
ifstrings.HasPrefix(scanner.Text(),"go_goroutines") {
370+
hasGoStats=true
371+
continue
378372
}
379-
require.NoError(t,scanner.Err())
373+
ifstrings.HasPrefix(scanner.Text(),"promhttp_metric_handler_requests_total") {
374+
hasPromHTTP=true
375+
continue
376+
}
377+
t.Logf("scanned %s",scanner.Text())
378+
}
379+
require.NoError(t,scanner.Err())
380380

381-
// Verify patterns
382-
require.True(t,hasOneDaemon,"should be one daemon running")
383-
require.True(t,hasGoStats,"Go stats are missing")
384-
require.True(t,hasPromHTTP,"Prometheus HTTP metrics are missing")
385-
})
381+
// Verify patterns
382+
require.True(t,hasOneDaemon,"should be one daemon running")
383+
require.True(t,hasGoStats,"Go stats are missing")
384+
require.True(t,hasPromHTTP,"Prometheus HTTP metrics are missing")
386385
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp