Test structure fixes
This commit is contained in:
parent
4269069a54
commit
b4cc6b8e81
28
dns_test.go
28
dns_test.go
@ -6,14 +6,12 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
log "github.com/Sirupsen/logrus"
|
log "github.com/Sirupsen/logrus"
|
||||||
"github.com/miekg/dns"
|
"github.com/miekg/dns"
|
||||||
"os"
|
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var testAddr1 = "0.0.0.0:15353"
|
var resolv resolver
|
||||||
var testAddr2 = "0.0.0.0:15354"
|
var server *dns.Server
|
||||||
|
|
||||||
var records = []string{
|
var records = []string{
|
||||||
"auth.example.org. A 192.168.1.100",
|
"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)
|
return errors.New(errmsg)
|
||||||
}
|
}
|
||||||
|
|
||||||
func startDNSServer(addr string) (*dns.Server, resolver) {
|
func setupConfig() {
|
||||||
|
|
||||||
var dbcfg = dbsettings{
|
var dbcfg = dbsettings{
|
||||||
Engine: "sqlite3",
|
Engine: "sqlite3",
|
||||||
Connection: ":memory:",
|
Connection: ":memory:",
|
||||||
@ -97,6 +94,9 @@ func startDNSServer(addr string) (*dns.Server, resolver) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
DNSConf = dnscfg
|
DNSConf = dnscfg
|
||||||
|
}
|
||||||
|
|
||||||
|
func startDNSServer(addr string) (*dns.Server, resolver) {
|
||||||
|
|
||||||
// DNS server part
|
// DNS server part
|
||||||
dns.HandleFunc(".", handleRequest)
|
dns.HandleFunc(".", handleRequest)
|
||||||
@ -107,15 +107,13 @@ func startDNSServer(addr string) (*dns.Server, resolver) {
|
|||||||
log.Errorf("%v", err)
|
log.Errorf("%v", err)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
time.sleep(2)
|
|
||||||
return server, resolver{server: addr}
|
return server, resolver{server: addr}
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestResolveA(t *testing.T) {
|
func TestResolveA(t *testing.T) {
|
||||||
RR.Parse(records)
|
RR.Parse(records)
|
||||||
server, resolver := startDNSServer(testAddr1)
|
setupConfig()
|
||||||
defer server.Shutdown()
|
answer, err := resolv.lookup("auth.example.org", dns.TypeA)
|
||||||
answer, err := resolver.lookup("auth.example.org", dns.TypeA)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("%v", err)
|
t.Errorf("%v", err)
|
||||||
}
|
}
|
||||||
@ -129,11 +127,11 @@ func TestResolveA(t *testing.T) {
|
|||||||
} else {
|
} else {
|
||||||
t.Error("No answer for DNS query")
|
t.Error("No answer for DNS query")
|
||||||
}
|
}
|
||||||
server.Shutdown()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestResolveTXT(t *testing.T) {
|
func TestResolveTXT(t *testing.T) {
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
setupConfig()
|
||||||
if *postgres {
|
if *postgres {
|
||||||
DNSConf.Database.Engine = "postgres"
|
DNSConf.Database.Engine = "postgres"
|
||||||
err := DB.Init("postgres", "postgres://acmedns:acmedns@localhost/acmedns")
|
err := DB.Init("postgres", "postgres://acmedns:acmedns@localhost/acmedns")
|
||||||
@ -147,9 +145,6 @@ func TestResolveTXT(t *testing.T) {
|
|||||||
}
|
}
|
||||||
defer DB.DB.Close()
|
defer DB.DB.Close()
|
||||||
|
|
||||||
server, resolver := startDNSServer(testAddr2)
|
|
||||||
defer server.Shutdown()
|
|
||||||
|
|
||||||
validTXT := "______________valid_response_______________"
|
validTXT := "______________valid_response_______________"
|
||||||
|
|
||||||
atxt, err := DB.Register()
|
atxt, err := DB.Register()
|
||||||
@ -174,10 +169,10 @@ func TestResolveTXT(t *testing.T) {
|
|||||||
{atxt.Subdomain, "invalid", true, false},
|
{atxt.Subdomain, "invalid", true, false},
|
||||||
{"a097455b-52cc-4569-90c8-7a4b97c6eba8", validTXT, false, 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 err != nil {
|
||||||
if test.getAnswer {
|
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 {
|
} else {
|
||||||
if !test.getAnswer {
|
if !test.getAnswer {
|
||||||
@ -205,5 +200,4 @@ func TestResolveTXT(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
server.Shutdown()
|
|
||||||
}
|
}
|
||||||
|
|||||||
16
main_test.go
Normal file
16
main_test.go
Normal 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)
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user