detached d16e8bc

test: surface DrainRegistryInFlight failures immediately via result channel

commit
d16e8bc2e81ab1e5c27a7ac5b575074ca64ec334
author
brice · · 2026-03-01 14:01 UTC
parent
a00b616
signature
unsigned
1 file · +7 -10
M internal/usecase/proxy/service_test.go +7 -10
@@ -539,14 +539,9 @@ func TestDrainRegistryInFlight(t *testing.T) {
539539
540540 svc.registryInFlight.Add(2)
541541
542- done := make(chan struct{})
542+ result := make(chan bool, 1)
543543 go func() {
544- drained := svc.DrainRegistryInFlight(50 * time.Millisecond)
545- if !drained {
546- // Signal failure via done channel by leaving it open — test will time out
547- return
548- }
549- close(done)
544+ result <- svc.DrainRegistryInFlight(50 * time.Millisecond)
550545 }()
551546
552547 time.Sleep(5 * time.Millisecond)
@@ -554,10 +549,12 @@ func TestDrainRegistryInFlight(t *testing.T) {
554549 svc.registryInFlight.Add(-1)
555550
556551 select {
557- case <-done:
558- // good — drained cleanly
552+ case drained := <-result:
553+ if !drained {
554+ t.Fatalf("DrainRegistryInFlight returned false; expected true after all requests completed")
555+ }
559556 case <-time.After(500 * time.Millisecond):
560- t.Fatal("DrainRegistryInFlight did not return true after requests completed")
557+ t.Fatal("DrainRegistryInFlight did not return within timeout")
561558 }
562559 }
563560
@@ -539,14 +539,9 @@ func TestDrainRegistryInFlight(t *testing.T) {
539 539
540 svc.registryInFlight.Add(2)540 svc.registryInFlight.Add(2)
541 541
542- done := make(chan struct{})542+ result := make(chan bool, 1)
543 go func() {543 go func() {
544- drained := svc.DrainRegistryInFlight(50 * time.Millisecond)544+ result <- svc.DrainRegistryInFlight(50 * time.Millisecond)
545- if !drained {
546- // Signal failure via done channel by leaving it open — test will time out
547- return
548- }
549- close(done)
550 }()545 }()
551 546
552 time.Sleep(5 * time.Millisecond)547 time.Sleep(5 * time.Millisecond)
@@ -554,10 +549,12 @@ func TestDrainRegistryInFlight(t *testing.T) {
554 svc.registryInFlight.Add(-1)549 svc.registryInFlight.Add(-1)
555 550
556 select {551 select {
557- case <-done:552+ case drained := <-result:
558- // good — drained cleanly553+ if !drained {
554+ t.Fatalf("DrainRegistryInFlight returned false; expected true after all requests completed")
555+ }
559 case <-time.After(500 * time.Millisecond):556 case <-time.After(500 * time.Millisecond):
560- t.Fatal("DrainRegistryInFlight did not return true after requests completed")557+ t.Fatal("DrainRegistryInFlight did not return within timeout")
561 }558 }
562 }559 }
563 560

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 7

Tags 106

↑↓ moveenter openesc close