summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2023-06-07 09:21:38 +0300
committerPaul Buetow <paul@buetow.org>2023-06-07 09:21:38 +0300
commit548700540cb17755e14fae42413d28d462c01157 (patch)
tree5fbe4248246af834867f9dd7352a45ec1894020b
parent0419ce65005190c25b5a86559919c2185e6b632f (diff)
refactor
-rw-r--r--internal/quorum/quorum.go5
-rw-r--r--internal/quorum/quorum_test.go30
-rw-r--r--internal/server/tcpserver.go7
-rw-r--r--internal/vote/vote.go7
-rw-r--r--internal/vote/vote_test.go12
5 files changed, 41 insertions, 20 deletions
diff --git a/internal/quorum/quorum.go b/internal/quorum/quorum.go
index 44834f3..fb1d69d 100644
--- a/internal/quorum/quorum.go
+++ b/internal/quorum/quorum.go
@@ -12,9 +12,10 @@ import (
type Quorum struct {
conf config.Config
- votes map[string]vote.Vote
- voteCh chan vote.Vote
prevLiveNodes []string
+
+ voteCh chan vote.Vote
+ votes map[string]vote.Vote
}
type Score struct {
diff --git a/internal/quorum/quorum_test.go b/internal/quorum/quorum_test.go
index e8c02a7..8ae4043 100644
--- a/internal/quorum/quorum_test.go
+++ b/internal/quorum/quorum_test.go
@@ -9,8 +9,10 @@ import (
)
func TestScore(t *testing.T) {
- conf := config.Config{Nodes: []string{"foo:1234", "bar:4321", "baz:3444"}}
- quo := New(conf)
+ var (
+ conf = config.Config{Nodes: []string{"foo:1234", "bar:4321", "baz:3444"}}
+ quo = New(conf)
+ )
vote1 := vote.New(conf, "foo foo bar\n")
vote1.ExpiresAt = time.Now().Add(1 * time.Hour)
@@ -55,8 +57,10 @@ func TestTieScore(t *testing.T) {
t.Run("First tie score test", func(t *testing.T) {
// If it is a tie, the first particpant (here: "foo") will win.
- conf := config.Config{Nodes: []string{"foo:1234", "bar:4321", "baz:3444"}}
- quo := New(conf)
+ var (
+ conf = config.Config{Nodes: []string{"foo:1234", "bar:4321", "baz:3444"}}
+ quo = New(conf)
+ )
addVotes(conf, quo)
scores := quo.score()
@@ -76,8 +80,10 @@ func TestTieScore(t *testing.T) {
t.Run("Second tie score test", func(t *testing.T) {
// If it is a tie, the first particpant (here: "bar") will win.
- conf := config.Config{Nodes: []string{"bar:1234", "foo:4321", "baz:3444"}}
- quo := New(conf)
+ var (
+ conf = config.Config{Nodes: []string{"bar:1234", "foo:4321", "baz:3444"}}
+ quo = New(conf)
+ )
addVotes(conf, quo)
scores := quo.score()
@@ -97,8 +103,10 @@ func TestTieScore(t *testing.T) {
}
func TestExpire(t *testing.T) {
- conf := config.Config{Nodes: []string{"foo:1234", "bay:4321"}}
- quo := New(conf)
+ var (
+ conf = config.Config{Nodes: []string{"foo:1234", "bay:4321"}}
+ quo = New(conf)
+ )
vote1 := vote.New(conf, " foo bar baz bay\n")
vote1.ExpiresAt = time.Now().Add(1 * time.Hour)
@@ -127,8 +135,10 @@ func TestExpire(t *testing.T) {
}
func TestLiveNodes(t *testing.T) {
- conf := config.Config{Nodes: []string{"foo:1234", "bay:4321"}}
- quo := New(conf)
+ var (
+ conf = config.Config{Nodes: []string{"foo:1234", "bay:4321"}}
+ quo = New(conf)
+ )
vote1 := vote.New(conf, " foo bar baz bay\n")
vote1.ExpiresAt = time.Now().Add(1 * time.Hour)
diff --git a/internal/server/tcpserver.go b/internal/server/tcpserver.go
index 30baa4a..983228b 100644
--- a/internal/server/tcpserver.go
+++ b/internal/server/tcpserver.go
@@ -44,9 +44,12 @@ func handleConnection(ctx context.Context, conf config.Config,
conn net.Conn, ch chan<- vote.Vote) {
defer conn.Close()
- remoteAddr := conn.RemoteAddr().String()
- reader := bufio.NewReader(conn)
+ var (
+ remoteAddr = conn.RemoteAddr().String()
+ reader = bufio.NewReader(conn)
+ )
+
for {
select {
case <-ctx.Done():
diff --git a/internal/vote/vote.go b/internal/vote/vote.go
index 4fff0fd..d5781b5 100644
--- a/internal/vote/vote.go
+++ b/internal/vote/vote.go
@@ -17,8 +17,11 @@ type Vote struct {
}
func New(conf config.Config, message string) Vote {
- var fromID string
- var ids []string
+ var (
+ fromID string
+ ids []string
+ )
+
for _, id := range strings.Split(strings.TrimSpace(message), " ") {
if !conf.IsNode(id) {
log.Printf("%s is not a node, excluding from the vote", id)
diff --git a/internal/vote/vote_test.go b/internal/vote/vote_test.go
index 24af55f..ca9e77c 100644
--- a/internal/vote/vote_test.go
+++ b/internal/vote/vote_test.go
@@ -8,8 +8,10 @@ import (
)
func TestVote(t *testing.T) {
- conf := config.Config{Nodes: []string{"earth:1234", "foo:1234", "bay:4321"}}
- v := New(conf, "earth foo bar baz bay\n")
+ var (
+ conf = config.Config{Nodes: []string{"earth:1234", "foo:1234", "bay:4321"}}
+ v = New(conf, "earth foo bar baz bay\n")
+ )
if v.FromID != "earth" {
t.Errorf("Expected vote to come from earth but came from %s", v.FromID)
@@ -29,8 +31,10 @@ func TestVote(t *testing.T) {
}
func TestVoteExpiry(t *testing.T) {
- conf := config.Config{Nodes: []string{"foo:1234", "bay:4321"}}
- v := New(conf, "earth foo bar baz bay\n")
+ var (
+ conf = config.Config{Nodes: []string{"foo:1234", "bay:4321"}}
+ v = New(conf, "earth foo bar baz bay\n")
+ )
// Set expiry 1h into the future
v.ExpiresAt = time.Now().Add(1 * time.Hour)