removed pool errors channels

This commit is contained in:
Jay
2026-05-12 10:59:50 -04:00
parent 56c2539249
commit 89ec7e2ab7
11 changed files with 7 additions and 116 deletions
-2
View File
@@ -125,7 +125,6 @@ func NewOutboundWorkerConfig(opts ...OutboundWorkerOption) (*OutboundWorkerConfi
var ( var (
WithOutboundInboxBufferSize = outbound.WithInboxBufferSize WithOutboundInboxBufferSize = outbound.WithInboxBufferSize
WithOutboundEventsBufferSize = outbound.WithEventsBufferSize WithOutboundEventsBufferSize = outbound.WithEventsBufferSize
WithOutboundErrorsBufferSize = outbound.WithErrorsBufferSize
WithOutboundPoolLoggingEnabled = outbound.WithPoolLoggingEnabled WithOutboundPoolLoggingEnabled = outbound.WithPoolLoggingEnabled
WithOutboundPoolLogLevel = outbound.WithPoolLogLevel WithOutboundPoolLogLevel = outbound.WithPoolLogLevel
WithOutboundConnectionConfig = outbound.WithConnectionConfig WithOutboundConnectionConfig = outbound.WithConnectionConfig
@@ -161,7 +160,6 @@ func NewInboundWorkerConfig(opts ...InboundWorkerOption) (*InboundWorkerConfig,
var ( var (
WithInboundInboxBufferSize = inbound.WithInboxBufferSize WithInboundInboxBufferSize = inbound.WithInboxBufferSize
WithInboundEventsBufferSize = inbound.WithEventsBufferSize WithInboundEventsBufferSize = inbound.WithEventsBufferSize
WithInboundErrorsBufferSize = inbound.WithErrorsBufferSize
WithInboundPoolLoggingEnabled = inbound.WithPoolLoggingEnabled WithInboundPoolLoggingEnabled = inbound.WithPoolLoggingEnabled
WithInboundPoolLogLevel = inbound.WithPoolLogLevel WithInboundPoolLogLevel = inbound.WithPoolLogLevel
WithInboundConnectionConfig = inbound.WithConnectionConfig WithInboundConnectionConfig = inbound.WithConnectionConfig
-12
View File
@@ -20,7 +20,6 @@ type WorkerFactory func(
type PoolConfig struct { type PoolConfig struct {
InboxBufferSize int InboxBufferSize int
EventsBufferSize int EventsBufferSize int
ErrorsBufferSize int
LoggingEnabled bool LoggingEnabled bool
LogLevel *slog.Level LogLevel *slog.Level
ConnectionConfig *transport.ConnectionConfig ConnectionConfig *transport.ConnectionConfig
@@ -45,7 +44,6 @@ func GetDefaultPoolConfig() *PoolConfig {
return &PoolConfig{ return &PoolConfig{
InboxBufferSize: 256, InboxBufferSize: 256,
EventsBufferSize: 10, EventsBufferSize: 10,
ErrorsBufferSize: 10,
LoggingEnabled: true, LoggingEnabled: true,
LogLevel: nil, LogLevel: nil,
ConnectionConfig: nil, ConnectionConfig: nil,
@@ -104,16 +102,6 @@ func WithEventsBufferSize(value int) PoolOption {
} }
} }
func WithErrorsBufferSize(value int) PoolOption {
return func(c *PoolConfig) error {
if err := validateBufferSize(value); err != nil {
return err
}
c.ErrorsBufferSize = value
return nil
}
}
func WithPoolLoggingEnabled(value bool) PoolOption { func WithPoolLoggingEnabled(value bool) PoolOption {
return func(c *PoolConfig) error { return func(c *PoolConfig) error {
c.LoggingEnabled = value c.LoggingEnabled = value
-2
View File
@@ -105,7 +105,6 @@ func TestDefaultPoolConfig(t *testing.T) {
assert.Equal(t, &PoolConfig{ assert.Equal(t, &PoolConfig{
InboxBufferSize: 256, InboxBufferSize: 256,
EventsBufferSize: 10, EventsBufferSize: 10,
ErrorsBufferSize: 10,
LoggingEnabled: true, LoggingEnabled: true,
LogLevel: nil, LogLevel: nil,
ConnectionConfig: nil, ConnectionConfig: nil,
@@ -174,7 +173,6 @@ func TestWithBufferSizes(t *testing.T) {
err := applyPoolOptions(conf, err := applyPoolOptions(conf,
WithInboxBufferSize(100), WithInboxBufferSize(100),
WithEventsBufferSize(20), WithEventsBufferSize(20),
WithErrorsBufferSize(20),
) )
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, 100, conf.InboxBufferSize) assert.Equal(t, 100, conf.InboxBufferSize)
-11
View File
@@ -41,7 +41,6 @@ type PoolEvent struct {
type PoolStats struct { type PoolStats struct {
ChanInbox int ChanInbox int
ChanEvents int ChanEvents int
ChanErrors int
TotalReceived uint64 TotalReceived uint64
TotalSent uint64 TotalSent uint64
@@ -59,7 +58,6 @@ type PeerStats struct {
type PoolPlugin struct { type PoolPlugin struct {
Inbox chan<- types.InboxMessage Inbox chan<- types.InboxMessage
Events chan<- PoolEvent Events chan<- PoolEvent
Errors chan<- error
InboxCounter *atomic.Uint64 InboxCounter *atomic.Uint64
OnExit OnExitFunction OnExit OnExitFunction
Handler slog.Handler Handler slog.Handler
@@ -83,7 +81,6 @@ type Pool struct {
peers map[string]*Peer peers map[string]*Peer
inbox chan types.InboxMessage inbox chan types.InboxMessage
events chan PoolEvent events chan PoolEvent
errors chan error
inboxCounter *atomic.Uint64 inboxCounter *atomic.Uint64
outgoingCount *atomic.Uint64 outgoingCount *atomic.Uint64
@@ -140,7 +137,6 @@ func NewPool(ctx context.Context, id string, config *PoolConfig, handler slog.Ha
peers: make(map[string]*Peer), peers: make(map[string]*Peer),
inbox: make(chan types.InboxMessage, config.InboxBufferSize), inbox: make(chan types.InboxMessage, config.InboxBufferSize),
events: make(chan PoolEvent, config.EventsBufferSize), events: make(chan PoolEvent, config.EventsBufferSize),
errors: make(chan error, config.ErrorsBufferSize),
inboxCounter: &atomic.Uint64{}, inboxCounter: &atomic.Uint64{},
outgoingCount: &atomic.Uint64{}, outgoingCount: &atomic.Uint64{},
config: config, config: config,
@@ -169,10 +165,6 @@ func (p *Pool) Events() <-chan PoolEvent {
return p.events return p.events
} }
func (p *Pool) Errors() <-chan error {
return p.errors
}
func (p *Pool) Stats() PoolStats { func (p *Pool) Stats() PoolStats {
p.mu.RLock() p.mu.RLock()
defer p.mu.RUnlock() defer p.mu.RUnlock()
@@ -190,7 +182,6 @@ func (p *Pool) Stats() PoolStats {
return PoolStats{ return PoolStats{
ChanInbox: len(p.inbox), ChanInbox: len(p.inbox),
ChanEvents: len(p.events), ChanEvents: len(p.events),
ChanErrors: len(p.errors),
TotalReceived: p.inboxCounter.Load(), TotalReceived: p.inboxCounter.Load(),
TotalSent: p.outgoingCount.Load(), TotalSent: p.outgoingCount.Load(),
@@ -245,7 +236,6 @@ func (p *Pool) Close() {
p.wg.Wait() p.wg.Wait()
close(p.inbox) close(p.inbox)
close(p.events) close(p.events)
close(p.errors)
if p.logger != nil { if p.logger != nil {
p.logger.Info("closed") p.logger.Info("closed")
@@ -386,7 +376,6 @@ func (p *Pool) addLocked(id string, socket types.Socket) error {
pool := PoolPlugin{ pool := PoolPlugin{
Inbox: p.inbox, Inbox: p.inbox,
Events: p.events, Events: p.events,
Errors: p.errors,
InboxCounter: p.inboxCounter, InboxCounter: p.inboxCounter,
OnExit: onExit, OnExit: onExit,
Handler: p.handler, Handler: p.handler,
-12
View File
@@ -20,7 +20,6 @@ type WorkerFactory func(
type PoolConfig struct { type PoolConfig struct {
InboxBufferSize int InboxBufferSize int
EventsBufferSize int EventsBufferSize int
ErrorsBufferSize int
LoggingEnabled bool LoggingEnabled bool
LogLevel *slog.Level LogLevel *slog.Level
ConnectionConfig *transport.ConnectionConfig ConnectionConfig *transport.ConnectionConfig
@@ -45,7 +44,6 @@ func GetDefaultPoolConfig() *PoolConfig {
return &PoolConfig{ return &PoolConfig{
InboxBufferSize: 256, InboxBufferSize: 256,
EventsBufferSize: 10, EventsBufferSize: 10,
ErrorsBufferSize: 10,
LoggingEnabled: true, LoggingEnabled: true,
LogLevel: nil, LogLevel: nil,
ConnectionConfig: nil, ConnectionConfig: nil,
@@ -110,16 +108,6 @@ func WithEventsBufferSize(value int) PoolOption {
} }
} }
func WithErrorsBufferSize(value int) PoolOption {
return func(c *PoolConfig) error {
if err := validateBufferSize(value); err != nil {
return err
}
c.ErrorsBufferSize = value
return nil
}
}
func WithPoolLoggingEnabled(value bool) PoolOption { func WithPoolLoggingEnabled(value bool) PoolOption {
return func(c *PoolConfig) error { return func(c *PoolConfig) error {
c.LoggingEnabled = value c.LoggingEnabled = value
-3
View File
@@ -14,7 +14,6 @@ func TestNewPoolConfig(t *testing.T) {
assert.Equal(t, conf, &PoolConfig{ assert.Equal(t, conf, &PoolConfig{
InboxBufferSize: 256, InboxBufferSize: 256,
EventsBufferSize: 10, EventsBufferSize: 10,
ErrorsBufferSize: 10,
LoggingEnabled: true, LoggingEnabled: true,
LogLevel: nil, LogLevel: nil,
ConnectionConfig: nil, ConnectionConfig: nil,
@@ -29,7 +28,6 @@ func TestDefaultPoolConfig(t *testing.T) {
assert.Equal(t, conf, &PoolConfig{ assert.Equal(t, conf, &PoolConfig{
InboxBufferSize: 256, InboxBufferSize: 256,
EventsBufferSize: 10, EventsBufferSize: 10,
ErrorsBufferSize: 10,
LoggingEnabled: true, LoggingEnabled: true,
LogLevel: nil, LogLevel: nil,
ConnectionConfig: nil, ConnectionConfig: nil,
@@ -55,7 +53,6 @@ func TestWithBufferSizes(t *testing.T) {
err := applyPoolOptions(conf, err := applyPoolOptions(conf,
WithInboxBufferSize(100), WithInboxBufferSize(100),
WithEventsBufferSize(20), WithEventsBufferSize(20),
WithErrorsBufferSize(20),
) )
assert.NoError(t, err) assert.NoError(t, err)
assert.Equal(t, 100, conf.InboxBufferSize) assert.Equal(t, 100, conf.InboxBufferSize)
-11
View File
@@ -29,7 +29,6 @@ type PoolEvent struct {
type PoolStats struct { type PoolStats struct {
ChanInbox int ChanInbox int
ChanEvents int ChanEvents int
ChanErrors int
TotalReceived uint64 TotalReceived uint64
TotalSent uint64 TotalSent uint64
@@ -47,7 +46,6 @@ type PoolPlugin struct {
ID string ID string
Inbox chan<- types.InboxMessage Inbox chan<- types.InboxMessage
Events chan<- PoolEvent Events chan<- PoolEvent
Errors chan<- error
InboxCounter *atomic.Uint64 InboxCounter *atomic.Uint64
Dialer types.Dialer Dialer types.Dialer
ConnectionConfig *transport.ConnectionConfig ConnectionConfig *transport.ConnectionConfig
@@ -70,7 +68,6 @@ type Pool struct {
peers map[string]*Peer peers map[string]*Peer
inbox chan types.InboxMessage inbox chan types.InboxMessage
events chan PoolEvent events chan PoolEvent
errors chan error
inboxCounter *atomic.Uint64 inboxCounter *atomic.Uint64
outgoingCount *atomic.Uint64 outgoingCount *atomic.Uint64
@@ -124,7 +121,6 @@ func NewPool(ctx context.Context, id string, config *PoolConfig, handler slog.Ha
peers: make(map[string]*Peer), peers: make(map[string]*Peer),
inbox: make(chan types.InboxMessage, config.InboxBufferSize), inbox: make(chan types.InboxMessage, config.InboxBufferSize),
events: make(chan PoolEvent, config.EventsBufferSize), events: make(chan PoolEvent, config.EventsBufferSize),
errors: make(chan error, config.ErrorsBufferSize),
inboxCounter: &atomic.Uint64{}, inboxCounter: &atomic.Uint64{},
outgoingCount: &atomic.Uint64{}, outgoingCount: &atomic.Uint64{},
dialer: transport.NewDialer(), dialer: transport.NewDialer(),
@@ -153,10 +149,6 @@ func (p *Pool) Events() <-chan PoolEvent {
return p.events return p.events
} }
func (p *Pool) Errors() <-chan error {
return p.errors
}
func (p *Pool) Stats() PoolStats { func (p *Pool) Stats() PoolStats {
p.mu.RLock() p.mu.RLock()
defer p.mu.RUnlock() defer p.mu.RUnlock()
@@ -173,7 +165,6 @@ func (p *Pool) Stats() PoolStats {
return PoolStats{ return PoolStats{
ChanInbox: len(p.inbox), ChanInbox: len(p.inbox),
ChanEvents: len(p.events), ChanEvents: len(p.events),
ChanErrors: len(p.errors),
TotalReceived: p.inboxCounter.Load(), TotalReceived: p.inboxCounter.Load(),
TotalSent: p.outgoingCount.Load(), TotalSent: p.outgoingCount.Load(),
@@ -228,7 +219,6 @@ func (p *Pool) Close() {
p.wg.Wait() p.wg.Wait()
close(p.inbox) close(p.inbox)
close(p.events) close(p.events)
close(p.errors)
if p.logger != nil { if p.logger != nil {
p.logger.Info("closed") p.logger.Info("closed")
@@ -273,7 +263,6 @@ func (p *Pool) Connect(id string) error {
ID: p.id, ID: p.id,
Inbox: p.inbox, Inbox: p.inbox,
Events: p.events, Events: p.events,
Errors: p.errors,
InboxCounter: p.inboxCounter, InboxCounter: p.inboxCounter,
Dialer: p.dialer, Dialer: p.dialer,
ConnectionConfig: p.config.ConnectionConfig, ConnectionConfig: p.config.ConnectionConfig,
-2
View File
@@ -96,8 +96,6 @@ func TestPoolClose(t *testing.T) {
assert.False(t, ok) assert.False(t, ok)
_, ok = <-pool.Events() _, ok = <-pool.Events()
assert.False(t, ok) assert.False(t, ok)
_, ok = <-pool.Errors()
assert.False(t, ok)
}) })
t.Run("connect after close returns error", func(t *testing.T) { t.Run("connect after close returns error", func(t *testing.T) {
-4
View File
@@ -556,10 +556,6 @@ func RunDialer(
if logger != nil { if logger != nil {
logger.Warn("dialer: dial failed") logger.Warn("dialer: dial failed")
} }
select {
case pool.Errors <- err:
case <-ctx.Done():
}
continue continue
} }
+1 -16
View File
@@ -24,7 +24,6 @@ func TestRunDialer(t *testing.T) {
mockSocket := honeybeetest.NewMockSocket() mockSocket := honeybeetest.NewMockSocket()
pool := PoolPlugin{ pool := PoolPlugin{
Errors: make(chan error, 1),
Dialer: &honeybeetest.MockDialer{ Dialer: &honeybeetest.MockDialer{
DialContextFunc: func(context.Context, string, http.Header) (types.Socket, *http.Response, error) { DialContextFunc: func(context.Context, string, http.Header) (types.Socket, *http.Response, error) {
return mockSocket, nil, nil return mockSocket, nil, nil
@@ -61,7 +60,6 @@ func TestRunDialer(t *testing.T) {
started := make(chan struct{}) started := make(chan struct{})
startOnce := sync.Once{} startOnce := sync.Once{}
pool := PoolPlugin{ pool := PoolPlugin{
Errors: make(chan error, 1),
Dialer: &honeybeetest.MockDialer{ Dialer: &honeybeetest.MockDialer{
DialContextFunc: func(context.Context, string, http.Header) (types.Socket, *http.Response, error) { DialContextFunc: func(context.Context, string, http.Header) (types.Socket, *http.Response, error) {
dialCount.Add(1) dialCount.Add(1)
@@ -114,7 +112,6 @@ func TestRunDialer(t *testing.T) {
t.Run("dial failure emits error, succeeds on next signal", func(t *testing.T) { t.Run("dial failure emits error, succeeds on next signal", func(t *testing.T) {
url := "wss://test" url := "wss://test"
errors := make(chan error, 1)
dial := make(chan struct{}, 1) dial := make(chan struct{}, 1)
newConn := make(chan *transport.Connection, 1) newConn := make(chan *transport.Connection, 1)
ctx, cancel := context.WithCancel(context.Background()) ctx, cancel := context.WithCancel(context.Background())
@@ -125,7 +122,6 @@ func TestRunDialer(t *testing.T) {
mockSocket := honeybeetest.NewMockSocket() mockSocket := honeybeetest.NewMockSocket()
connConfig := &transport.ConnectionConfig{Retry: nil} // disable retry connConfig := &transport.ConnectionConfig{Retry: nil} // disable retry
pool := PoolPlugin{ pool := PoolPlugin{
Errors: errors,
Dialer: &honeybeetest.MockDialer{ Dialer: &honeybeetest.MockDialer{
DialContextFunc: func( DialContextFunc: func(
context.Context, string, http.Header, context.Context, string, http.Header,
@@ -143,16 +139,6 @@ func TestRunDialer(t *testing.T) {
go RunDialer(url, ctx, pool, dial, newConn, nil) go RunDialer(url, ctx, pool, dial, newConn, nil)
dial <- struct{}{} dial <- struct{}{}
honeybeetest.Eventually(t, func() bool {
select {
case err := <-errors:
return err != nil
default:
return false
}
}, "expected error")
dial <- struct{}{} dial <- struct{}{}
honeybeetest.Eventually(t, func() bool { honeybeetest.Eventually(t, func() bool {
@@ -171,7 +157,7 @@ func TestRunDialer(t *testing.T) {
newConn := make(chan *transport.Connection, 1) newConn := make(chan *transport.Connection, 1)
ctx, cancel := context.WithCancel(context.Background()) ctx, cancel := context.WithCancel(context.Background())
pool := PoolPlugin{Errors: make(chan error, 1)} pool := PoolPlugin{}
done := make(chan struct{}) done := make(chan struct{})
go func() { go func() {
@@ -198,7 +184,6 @@ func TestRunDialer(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background()) ctx, cancel := context.WithCancel(context.Background())
pool := PoolPlugin{ pool := PoolPlugin{
Errors: make(chan error, 1),
ConnectionConfig: &transport.ConnectionConfig{Retry: nil}, ConnectionConfig: &transport.ConnectionConfig{Retry: nil},
Dialer: &honeybeetest.MockDialer{ Dialer: &honeybeetest.MockDialer{
DialContextFunc: func(ctx context.Context, _ string, _ http.Header) (types.Socket, *http.Response, error) { DialContextFunc: func(ctx context.Context, _ string, _ http.Header) (types.Socket, *http.Response, error) {
+6 -41
View File
@@ -2,9 +2,7 @@ package outbound
import ( import (
"context" "context"
"fmt"
"git.wisehodl.dev/jay/go-honeybee/honeybeetest" "git.wisehodl.dev/jay/go-honeybee/honeybeetest"
"git.wisehodl.dev/jay/go-honeybee/transport"
"git.wisehodl.dev/jay/go-honeybee/types" "git.wisehodl.dev/jay/go-honeybee/types"
"github.com/gorilla/websocket" "github.com/gorilla/websocket"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
@@ -18,17 +16,14 @@ import (
func makeWorkerContext(t *testing.T) ( func makeWorkerContext(t *testing.T) (
inbox chan types.InboxMessage, inbox chan types.InboxMessage,
events chan PoolEvent, events chan PoolEvent,
errors chan error,
pool PoolPlugin, pool PoolPlugin,
) { ) {
t.Helper() t.Helper()
inbox = make(chan types.InboxMessage, 256) inbox = make(chan types.InboxMessage, 256)
events = make(chan PoolEvent, 10) events = make(chan PoolEvent, 10)
errors = make(chan error, 10)
pool = PoolPlugin{ pool = PoolPlugin{
Inbox: inbox, Inbox: inbox,
Events: events, Events: events,
Errors: errors,
InboxCounter: &atomic.Uint64{}, InboxCounter: &atomic.Uint64{},
} }
return return
@@ -69,7 +64,7 @@ func TestWorkerStart(t *testing.T) {
defer cancel() defer cancel()
w := makeWorker(t, ctx, cancel) w := makeWorker(t, ctx, cancel)
_, events, _, pool := makeWorkerContext(t) _, events, pool := makeWorkerContext(t)
mockSocket := honeybeetest.NewMockSocket() mockSocket := honeybeetest.NewMockSocket()
pool.Dialer = mockDialer(mockSocket) pool.Dialer = mockDialer(mockSocket)
@@ -95,7 +90,7 @@ func TestWorkerStart(t *testing.T) {
defer cancel() defer cancel()
w := makeWorker(t, ctx, cancel) w := makeWorker(t, ctx, cancel)
_, events, _, pool := makeWorkerContext(t) _, events, pool := makeWorkerContext(t)
_, mockSocket, _, outgoingData := setupTestConnection(t) _, mockSocket, _, outgoingData := setupTestConnection(t)
pool.Dialer = mockDialer(mockSocket) pool.Dialer = mockDialer(mockSocket)
@@ -133,7 +128,7 @@ func TestWorkerStart(t *testing.T) {
defer cancel() defer cancel()
w := makeWorker(t, ctx, cancel) w := makeWorker(t, ctx, cancel)
inbox, events, _, pool := makeWorkerContext(t) inbox, events, pool := makeWorkerContext(t)
incomingData := make(chan honeybeetest.MockIncomingData, 10) incomingData := make(chan honeybeetest.MockIncomingData, 10)
mockSocket := honeybeetest.NewMockSocket() mockSocket := honeybeetest.NewMockSocket()
@@ -188,7 +183,7 @@ func TestWorkerStart(t *testing.T) {
defer cancel() defer cancel()
w := makeWorker(t, ctx, cancel) w := makeWorker(t, ctx, cancel)
_, events, _, pool := makeWorkerContext(t) _, events, pool := makeWorkerContext(t)
_, mockSocket, incomingData, _ := setupTestConnection(t) _, mockSocket, incomingData, _ := setupTestConnection(t)
pool.Dialer = mockDialer(mockSocket) pool.Dialer = mockDialer(mockSocket)
@@ -234,7 +229,7 @@ func TestWorkerStart(t *testing.T) {
defer cancel() defer cancel()
w := makeWorker(t, ctx, cancel) w := makeWorker(t, ctx, cancel)
_, events, _, pool := makeWorkerContext(t) _, events, pool := makeWorkerContext(t)
mockSocket := honeybeetest.NewMockSocket() mockSocket := honeybeetest.NewMockSocket()
pool.Dialer = mockDialer(mockSocket) pool.Dialer = mockDialer(mockSocket)
@@ -282,7 +277,7 @@ func TestWorkerStart(t *testing.T) {
workerCtx, workerCancel := context.WithCancel(parentCtx) workerCtx, workerCancel := context.WithCancel(parentCtx)
w := makeWorker(t, workerCtx, workerCancel) w := makeWorker(t, workerCtx, workerCancel)
_, events, _, pool := makeWorkerContext(t) _, events, pool := makeWorkerContext(t)
mockSocket := honeybeetest.NewMockSocket() mockSocket := honeybeetest.NewMockSocket()
pool.Dialer = mockDialer(mockSocket) pool.Dialer = mockDialer(mockSocket)
@@ -317,34 +312,4 @@ func TestWorkerStart(t *testing.T) {
} }
}, "expected wg to drain after parent cancel") }, "expected wg to drain after parent cancel")
}) })
t.Run("dial failure emits to Errors", func(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
w := makeWorker(t, ctx, cancel)
_, _, errors, pool := makeWorkerContext(t)
pool.ConnectionConfig = &transport.ConnectionConfig{Retry: nil}
pool.Dialer = &honeybeetest.MockDialer{
DialContextFunc: func(context.Context, string, http.Header) (types.Socket, *http.Response, error) {
return nil, nil, fmt.Errorf("dial failed")
},
}
var wg sync.WaitGroup
wg.Add(1)
go func() {
w.Start(pool)
wg.Done()
}()
honeybeetest.Eventually(t, func() bool {
select {
case err := <-errors:
return err != nil
default:
return false
}
}, "expected error on Errors channel")
})
} }