68 lines
1.7 KiB
Go
68 lines
1.7 KiB
Go
package simple
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"dappco.re/go/proxy/pool"
|
|
)
|
|
|
|
type reloadableStrategy struct {
|
|
reloads int
|
|
}
|
|
|
|
func (s *reloadableStrategy) Connect() {}
|
|
func (s *reloadableStrategy) Submit(jobID, nonce, result, algo string) int64 { return 0 }
|
|
func (s *reloadableStrategy) Disconnect() {}
|
|
func (s *reloadableStrategy) IsActive() bool { return true }
|
|
func (s *reloadableStrategy) ReloadPools() { s.reloads++ }
|
|
|
|
var _ pool.ReloadableStrategy = (*reloadableStrategy)(nil)
|
|
|
|
func TestSimpleSplitter_ReloadPools_Good(t *testing.T) {
|
|
strategy := &reloadableStrategy{}
|
|
splitter := &SimpleSplitter{
|
|
active: map[int64]*SimpleMapper{
|
|
1: {strategy: strategy},
|
|
},
|
|
idle: map[int64]*SimpleMapper{},
|
|
}
|
|
|
|
splitter.ReloadPools()
|
|
|
|
if strategy.reloads != 1 {
|
|
t.Fatalf("expected active mapper strategy to reload once, got %d", strategy.reloads)
|
|
}
|
|
}
|
|
|
|
func TestSimpleSplitter_ReloadPools_Bad(t *testing.T) {
|
|
splitter := &SimpleSplitter{
|
|
active: map[int64]*SimpleMapper{
|
|
1: {strategy: nil},
|
|
},
|
|
idle: map[int64]*SimpleMapper{},
|
|
}
|
|
|
|
splitter.ReloadPools()
|
|
}
|
|
|
|
func TestSimpleSplitter_ReloadPools_Ugly(t *testing.T) {
|
|
active := &reloadableStrategy{}
|
|
idle := &reloadableStrategy{}
|
|
splitter := &SimpleSplitter{
|
|
active: map[int64]*SimpleMapper{
|
|
1: {strategy: active},
|
|
},
|
|
idle: map[int64]*SimpleMapper{
|
|
2: {strategy: idle},
|
|
},
|
|
}
|
|
|
|
splitter.ReloadPools()
|
|
|
|
if active.reloads != 1 {
|
|
t.Fatalf("expected active mapper reload, got %d", active.reloads)
|
|
}
|
|
if idle.reloads != 1 {
|
|
t.Fatalf("expected idle mapper reload, got %d", idle.reloads)
|
|
}
|
|
}
|