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) { | |||
| 539 | 539 | ||
| 540 | 540 | svc.registryInFlight.Add(2) | |
| 541 | 541 | ||
| 542 | - | done := make(chan struct{}) | |
| 542 | + | result := make(chan bool, 1) | |
| 543 | 543 | 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) | |
| 550 | 545 | }() | |
| 551 | 546 | ||
| 552 | 547 | time.Sleep(5 * time.Millisecond) | |
| @@ -554,10 +549,12 @@ func TestDrainRegistryInFlight(t *testing.T) { | |||
| 554 | 549 | svc.registryInFlight.Add(-1) | |
| 555 | 550 | ||
| 556 | 551 | 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 | + | } | |
| 559 | 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 | ||
| @@ -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 cleanly | 553 | + | 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 | ||||