Merge pull request #923 from jaffee/test-helpers

add test helper for starting a new pilosa instance
This commit is contained in:
Matthew Jaffee 2017-12-29 16:46:48 -06:00 • committed by GitHub
commit e72d596ad6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

48
test/pilosa.go Normal file
View file

@ -0,0 +1,48 @@
package test
import (
"bytes"
"io/ioutil"
"net"
"strconv"
"testing"
"github.com/pilosa/pilosa/server"
)
func MustNewRunningServer(t *testing.T) *server.Command {
s := server.NewCommand(&bytes.Buffer{}, ioutil.Discard, ioutil.Discard)
s.Config.Bind = ":0"
port := strconv.Itoa(MustOpenPort(t))
s.Config.GossipPort = port
s.Config.GossipSeed = "localhost:" + port
td, err := ioutil.TempDir("", "")
if err != nil {
t.Fatalf("error creating temp data directory: %v", err)
}
s.Config.DataDir = td
err = s.Run()
if err != nil {
t.Fatalf("error running new pilosa server: %v", err)
}
return s
}
func MustOpenPort(t *testing.T) int {
addr, err := net.ResolveTCPAddr("tcp", ":0")
if err != nil {
t.Fatalf("resolving new port addr: %v", err)
}
l, err := net.ListenTCP("tcp", addr)
if err != nil {
t.Fatalf("listening to get new port: %v", err)
}
defer func() {
err := l.Close()
if err != nil {
t.Logf("error closing listener in MustOpenPort: %v", err)
}
}()
return l.Addr().(*net.TCPAddr).Port
}