From 82b54aabcde25aacdae99232a327590ba925b4e5 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Wed, 24 Dec 2014 12:00:30 +0000 Subject: [PATCH] Move logging, updating and testing utils into common directory --- {nameserver => common}/logging.go | 10 ++++-- common/testing_utils.go | 51 +++++++++++++++++++++++++++++++ nameserver/http.go | 1 + nameserver/mdns_server.go | 1 + nameserver/server.go | 1 + nameserver/testing_utils.go | 38 ----------------------- nameserver/updater.go | 1 + weavedns/main.go | 18 +++++------ 8 files changed, 69 insertions(+), 52 deletions(-) rename {nameserver => common}/logging.go (78%) create mode 100644 common/testing_utils.go delete mode 100644 nameserver/testing_utils.go diff --git a/nameserver/logging.go b/common/logging.go similarity index 78% rename from nameserver/logging.go rename to common/logging.go index 03c1529b..6c3f5627 100644 --- a/nameserver/logging.go +++ b/common/logging.go @@ -1,4 +1,4 @@ -package nameserver +package common import ( "io" @@ -32,6 +32,10 @@ func InitLogging(debugHandle io.Writer, Error = log.New(errorHandle, "ERROR: ", standardLogFlags) } -func init() { - InitLogging(ioutil.Discard, os.Stdout, os.Stdout, os.Stderr) +func InitDefaultLogging(debug bool) { + debugOut := ioutil.Discard + if debug { + debugOut = os.Stderr + } + InitLogging(debugOut, os.Stdout, os.Stdout, os.Stderr) } diff --git a/common/testing_utils.go b/common/testing_utils.go new file mode 100644 index 00000000..669b6e9c --- /dev/null +++ b/common/testing_utils.go @@ -0,0 +1,51 @@ +package common + +import ( + "fmt" + "reflect" + "runtime" + "strings" + "testing" +) + +func CallSite() string { + _, file, line, ok := runtime.Caller(2) + if ok { + // Truncate file name at last file name separator. + if index := strings.LastIndex(file, "/"); index >= 0 { + file = file[index+1:] + } else if index = strings.LastIndex(file, "\\"); index >= 0 { + file = file[index+1:] + } + } else { + file = "???" + line = 1 + } + return fmt.Sprintf("%s:%d: ", file, line) +} + +func AssertNoErr(t *testing.T, err error) { + if err != nil { + t.Fatal(CallSite(), err) + } +} + +func AssertStatus(t *testing.T, got int, wanted int, desc string) { + if got != wanted { + t.Fatalf("%s: Expected %s %d but got %d", CallSite(), desc, wanted, got) + } +} + +func AssertErrorInterface(t *testing.T, got interface{}, wanted interface{}, desc string) { + gotT, wantedT := reflect.TypeOf(got), reflect.TypeOf(wanted).Elem() + if !gotT.Implements(wantedT) { + t.Fatalf("%s: Expected %s but got %s (%s)", CallSite(), wantedT.String(), gotT.String(), desc) + } +} + +func AssertErrorType(t *testing.T, got interface{}, wanted interface{}, desc string) { + gotT, wantedT := reflect.TypeOf(got), reflect.TypeOf(wanted).Elem() + if gotT != wantedT { + t.Fatalf("%s: Expected %s but got %s (%s)", CallSite(), wantedT.String(), gotT.String(), desc) + } +} diff --git a/nameserver/http.go b/nameserver/http.go index 615a00a2..8e4603e8 100644 --- a/nameserver/http.go +++ b/nameserver/http.go @@ -4,6 +4,7 @@ import ( "errors" "fmt" "github.com/miekg/dns" + . "github.com/zettio/weave/common" "io" "log" "net" diff --git a/nameserver/mdns_server.go b/nameserver/mdns_server.go index f6fc9daa..71b9f2a1 100644 --- a/nameserver/mdns_server.go +++ b/nameserver/mdns_server.go @@ -2,6 +2,7 @@ package nameserver import ( "github.com/miekg/dns" + . "github.com/zettio/weave/common" "net" ) diff --git a/nameserver/server.go b/nameserver/server.go index 604c2f79..896f9e26 100644 --- a/nameserver/server.go +++ b/nameserver/server.go @@ -3,6 +3,7 @@ package nameserver import ( "fmt" "github.com/miekg/dns" + . "github.com/zettio/weave/common" "net" ) diff --git a/nameserver/testing_utils.go b/nameserver/testing_utils.go deleted file mode 100644 index b018143b..00000000 --- a/nameserver/testing_utils.go +++ /dev/null @@ -1,38 +0,0 @@ -package nameserver - -import ( - "reflect" - "testing" -) - -func assertNoErr(t *testing.T, err error) { - if err != nil { - t.Fatal(err) - } -} - -func assertStatus(t *testing.T, got int, wanted int, desc string) { - if got != wanted { - t.Fatalf("Expected %s %d but got %d", desc, wanted, got) - } -} - -func assertErrorInterface(t *testing.T, got interface{}, wanted interface{}, desc string) { - if got == nil { - t.Fatalf("Expected %s but got nil (%s)", reflect.TypeOf(wanted).Elem(), desc) - } - gotT, wantedT := reflect.TypeOf(got), reflect.TypeOf(wanted).Elem() - if !gotT.Implements(wantedT) { - t.Fatalf("Expected %s but got %s (%s)", wantedT, gotT, desc) - } -} - -func assertErrorType(t *testing.T, got interface{}, wanted interface{}, desc string) { - if got == nil { - t.Fatalf("Expected %s but got nil (%s)", reflect.TypeOf(wanted).Elem(), desc) - } - gotT, wantedT := reflect.TypeOf(got), reflect.TypeOf(wanted).Elem() - if gotT != wantedT { - t.Fatalf("Expected %s but got %s (%s)", wantedT, gotT, desc) - } -} diff --git a/nameserver/updater.go b/nameserver/updater.go index d94d52b3..3f1d04a1 100644 --- a/nameserver/updater.go +++ b/nameserver/updater.go @@ -2,6 +2,7 @@ package nameserver import ( "github.com/fsouza/go-dockerclient" + . "github.com/zettio/weave/common" ) func checkError(err error, apiPath string) { diff --git a/weavedns/main.go b/weavedns/main.go index ab5ecbd4..d7e62b46 100644 --- a/weavedns/main.go +++ b/weavedns/main.go @@ -3,10 +3,10 @@ package main import ( "flag" "fmt" + . "github.com/zettio/weave/common" weavedns "github.com/zettio/weave/nameserver" weavenet "github.com/zettio/weave/net" "io" - "io/ioutil" "net" "os" ) @@ -40,35 +40,31 @@ func main() { os.Exit(0) } - debugOut := ioutil.Discard - if debug { - debugOut = os.Stderr - } - weavedns.InitLogging(debugOut, os.Stdout, os.Stdout, os.Stderr) + InitDefaultLogging(debug) var zone = new(weavedns.ZoneDb) if watch { err := weavedns.StartUpdater(apiPath, zone) if err != nil { - weavedns.Error.Fatal("Unable to start watcher", err) + Error.Fatal("Unable to start watcher", err) } } var iface *net.Interface = nil if ifaceName != "" { var err error - weavedns.Info.Println("Waiting for interface", ifaceName, "to come up") + Info.Println("Waiting for interface", ifaceName, "to come up") iface, err = weavenet.EnsureInterface(ifaceName, wait) if err != nil { - weavedns.Error.Fatal(err) + Error.Fatal(err) } else { - weavedns.Info.Println("Interface", ifaceName, "is up") + Info.Println("Interface", ifaceName, "is up") } } err := weavedns.StartServer(zone, iface, dnsPort, httpPort, wait) if err != nil { - weavedns.Error.Fatal("Failed to start server", err) + Error.Fatal("Failed to start server", err) } }