updated dependencies and go #1

Manually merged
Mikescher merged 4 commits from feature/upgrade-go into master 2026-04-26 14:31:58 +02:00
2 changed files with 22 additions and 2 deletions
Showing only changes of commit 73e867f75a - Show all commits
+11 -1
View File
@@ -90,15 +90,17 @@ func TestBroadcast_SubscribeByIter(t *testing.T) {
// Channel to communicate when message is received // Channel to communicate when message is received
done := make(chan bool) done := make(chan bool)
goroutineDone := make(chan struct{})
received := false received := false
// Start a goroutine to use the iterator // Start a goroutine to use the iterator
go func() { go func() {
defer close(goroutineDone)
for msg := range iterSeq { for msg := range iterSeq {
if msg == "hello" { if msg == "hello" {
received = true received = true
done <- true done <- true
return // Stop iteration return // Stop iteration — triggers Unsubscribe via yield returning false
} }
} }
}() }()
@@ -119,6 +121,14 @@ func TestBroadcast_SubscribeByIter(t *testing.T) {
t.Fatal("Timed out waiting for message") t.Fatal("Timed out waiting for message")
} }
// Wait for the goroutine to fully exit so Unsubscribe (triggered by the
// iterator cleanup when yield returns false) has completed.
select {
case <-goroutineDone:
case <-time.After(time.Second):
t.Fatal("Timed out waiting for goroutine to finish")
}
subCount := bb.SubscriberCount() subCount := bb.SubscriberCount()
if subCount != 0 { if subCount != 0 {
t.Fatalf("Expected 0 receivers, got %d", subCount) t.Fatalf("Expected 0 receivers, got %d", subCount)
+11 -1
View File
@@ -129,15 +129,17 @@ func TestPubSub_SubscribeByIter(t *testing.T) {
// Channel to communicate when message is received // Channel to communicate when message is received
done := make(chan bool) done := make(chan bool)
goroutineDone := make(chan struct{})
received := false received := false
// Start a goroutine to use the iterator // Start a goroutine to use the iterator
go func() { go func() {
defer close(goroutineDone)
for msg := range iterSeq { for msg := range iterSeq {
if msg == "hello" { if msg == "hello" {
received = true received = true
done <- true done <- true
return // Stop iteration return // Stop iteration — triggers Unsubscribe via yield returning false
} }
} }
}() }()
@@ -158,6 +160,14 @@ func TestPubSub_SubscribeByIter(t *testing.T) {
t.Fatal("Timed out waiting for message") t.Fatal("Timed out waiting for message")
} }
// Wait for the goroutine to fully exit so Unsubscribe (triggered by the
// iterator cleanup when yield returns false) has completed.
select {
case <-goroutineDone:
case <-time.After(time.Second):
t.Fatal("Timed out waiting for goroutine to finish")
}
subCount := ps.SubscriberCount("test-ns") subCount := ps.SubscriberCount("test-ns")
if subCount != 0 { if subCount != 0 {
t.Fatalf("Expected 0 receivers, got %d", subCount) t.Fatalf("Expected 0 receivers, got %d", subCount)