summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/hashicorp/memberlist/integ_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/hashicorp/memberlist/integ_test.go')
-rw-r--r--vendor/github.com/hashicorp/memberlist/integ_test.go89
1 files changed, 0 insertions, 89 deletions
diff --git a/vendor/github.com/hashicorp/memberlist/integ_test.go b/vendor/github.com/hashicorp/memberlist/integ_test.go
deleted file mode 100644
index f519c6baa..000000000
--- a/vendor/github.com/hashicorp/memberlist/integ_test.go
+++ /dev/null
@@ -1,89 +0,0 @@
-package memberlist
-
-import (
- "fmt"
- "log"
- "os"
- "testing"
- "time"
-)
-
-// CheckInteg will skip a test if integration testing is not enabled.
-func CheckInteg(t *testing.T) {
- if !IsInteg() {
- t.SkipNow()
- }
-}
-
-// IsInteg returns a boolean telling you if we're in integ testing mode.
-func IsInteg() bool {
- return os.Getenv("INTEG_TESTS") != ""
-}
-
-// Tests the memberlist by creating a cluster of 100 nodes
-// and checking that we get strong convergence of changes.
-func TestMemberlist_Integ(t *testing.T) {
- CheckInteg(t)
-
- num := 16
- var members []*Memberlist
-
- secret := []byte{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15}
- eventCh := make(chan NodeEvent, num)
-
- addr := "127.0.0.1"
- for i := 0; i < num; i++ {
- c := DefaultLANConfig()
- c.Name = fmt.Sprintf("%s:%d", addr, 12345+i)
- c.BindAddr = addr
- c.BindPort = 12345 + i
- c.ProbeInterval = 20 * time.Millisecond
- c.ProbeTimeout = 100 * time.Millisecond
- c.GossipInterval = 20 * time.Millisecond
- c.PushPullInterval = 200 * time.Millisecond
- c.SecretKey = secret
-
- if i == 0 {
- c.Events = &ChannelEventDelegate{eventCh}
- }
-
- m, err := Create(c)
- if err != nil {
- t.Fatalf("unexpected err: %s", err)
- }
- members = append(members, m)
- defer m.Shutdown()
-
- if i > 0 {
- last := members[i-1]
- num, err := m.Join([]string{last.config.Name})
- if num == 0 || err != nil {
- t.Fatalf("unexpected err: %s", err)
- }
- }
- }
-
- // Wait and print debug info
- breakTimer := time.After(250 * time.Millisecond)
-WAIT:
- for {
- select {
- case e := <-eventCh:
- if e.Event == NodeJoin {
- log.Printf("[DEBUG] Node join: %v (%d)", *e.Node, members[0].NumMembers())
- } else {
- log.Printf("[DEBUG] Node leave: %v (%d)", *e.Node, members[0].NumMembers())
- }
- case <-breakTimer:
- break WAIT
- }
- }
-
- for idx, m := range members {
- got := m.NumMembers()
- if got != num {
- t.Errorf("bad num members at idx %d. Expected %d. Got %d.",
- idx, num, got)
- }
- }
-}