Test structure fixes

This commit is contained in:
Joona Hoikkala 2016-11-26 16:23:22 +02:00
parent 4269069a54
commit b4cc6b8e81
No known key found for this signature in database
GPG Key ID: C14AAE0F5ADCB854
2 changed files with 27 additions and 17 deletions

View File

@ -6,14 +6,12 @@ import (
"fmt"
log "github.com/Sirupsen/logrus"
"github.com/miekg/dns"
"os"
"strings"
"testing"
"time"
)
var testAddr1 = "0.0.0.0:15353"
var testAddr2 = "0.0.0.0:15354"
var resolv resolver
var server *dns.Server
var records = []string{
"auth.example.org. A 192.168.1.100",
@ -77,8 +75,7 @@ func findRecordFromMemory(rrstr string, host string, qtype uint16) error {
return errors.New(errmsg)
}
func startDNSServer(addr string) (*dns.Server, resolver) {
func setupConfig() {
var dbcfg = dbsettings{
Engine: "sqlite3",
Connection: ":memory:",
@ -97,6 +94,9 @@ func startDNSServer(addr string) (*dns.Server, resolver) {
}
DNSConf = dnscfg
}
func startDNSServer(addr string) (*dns.Server, resolver) {
// DNS server part
dns.HandleFunc(".", handleRequest)
@ -107,15 +107,13 @@ func startDNSServer(addr string) (*dns.Server, resolver) {
log.Errorf("%v", err)
}
}()
time.sleep(2)
return server, resolver{server: addr}
}
func TestResolveA(t *testing.T) {
RR.Parse(records)
server, resolver := startDNSServer(testAddr1)
defer server.Shutdown()
answer, err := resolver.lookup("auth.example.org", dns.TypeA)
setupConfig()
answer, err := resolv.lookup("auth.example.org", dns.TypeA)
if err != nil {
t.Errorf("%v", err)
}
@ -129,11 +127,11 @@ func TestResolveA(t *testing.T) {
} else {
t.Error("No answer for DNS query")
}
server.Shutdown()
}
func TestResolveTXT(t *testing.T) {
flag.Parse()
setupConfig()
if *postgres {
DNSConf.Database.Engine = "postgres"
err := DB.Init("postgres", "postgres://acmedns:acmedns@localhost/acmedns")
@ -147,9 +145,6 @@ func TestResolveTXT(t *testing.T) {
}
defer DB.DB.Close()
server, resolver := startDNSServer(testAddr2)
defer server.Shutdown()
validTXT := "______________valid_response_______________"
atxt, err := DB.Register()
@ -174,10 +169,10 @@ func TestResolveTXT(t *testing.T) {
{atxt.Subdomain, "invalid", true, false},
{"a097455b-52cc-4569-90c8-7a4b97c6eba8", validTXT, false, false},
} {
answer, err := resolver.lookup(test.subDomain+".auth.example.org", dns.TypeTXT)
answer, err := resolv.lookup(test.subDomain+".auth.example.org", dns.TypeTXT)
if err != nil {
if test.getAnswer {
t.Errorf("Test %d: Expected answer but got: %v", i, err)
t.Fatalf("Test %d: Expected answer but got: %v", i, err)
}
} else {
if !test.getAnswer {
@ -205,5 +200,4 @@ func TestResolveTXT(t *testing.T) {
}
}
}
server.Shutdown()
}

16
main_test.go Normal file
View File

@ -0,0 +1,16 @@
package main
import (
"flag"
"os"
"testing"
)
func TestMain(m *testing.M) {
server, resolv = startDNSServer("0.0.0.0:15353")
flag.Parse()
exitval := m.Run()
server.Shutdown()
DB.DB.Close()
os.Exit(exitval)
}