diff options
| author | Elizabeth <elizabeth@simponic.xyz> | 2024-04-02 16:51:13 -0600 |
|---|---|---|
| committer | Elizabeth <elizabeth@simponic.xyz> | 2024-04-02 16:51:13 -0600 |
| commit | 35a5e9a263eec2edf375eae119a31f03fb87caa0 (patch) | |
| tree | 4d7eea1852b7b6ad3713fc0694c563dea7df0785 /test/dns_test.go | |
| parent | 52d061e7cc309bdb1a73b3c2c0eda4c089770e9f (diff) | |
| download | hatecomputers.club-35a5e9a263eec2edf375eae119a31f03fb87caa0.tar.gz hatecomputers.club-35a5e9a263eec2edf375eae119a31f03fb87caa0.zip | |
use random ports and test db paths
Diffstat (limited to 'test/dns_test.go')
| -rw-r--r-- | test/dns_test.go | 63 |
1 files changed, 35 insertions, 28 deletions
diff --git a/test/dns_test.go b/test/dns_test.go index ce6deb5..55bb060 100644 --- a/test/dns_test.go +++ b/test/dns_test.go @@ -2,6 +2,8 @@ package hcdns import ( "database/sql" + "fmt" + "math/rand" "os" "sync" "testing" @@ -9,17 +11,24 @@ import ( "git.hatecomputers.club/hatecomputers/hatecomputers.club/args" "git.hatecomputers.club/hatecomputers/hatecomputers.club/database" "git.hatecomputers.club/hatecomputers/hatecomputers.club/hcdns" + "git.hatecomputers.club/hatecomputers/hatecomputers.club/utils" "github.com/miekg/dns" ) -const ( - testDBPath = "test.db" - address = "127.0.0.1:8353" - dnsPort = 8353 -) +func destroy(conn *sql.DB, path string) { + conn.Close() + os.Remove(path) +} + +func randomPort() int { + return rand.Intn(3000) + 10000 +} -func setup(dbPath string) (*sql.DB, *dns.Server, *sync.WaitGroup) { - testDb := database.MakeConn(&dbPath) +func setup() (*sql.DB, *dns.Server, int, *string, func()) { + randomDb := utils.RandomId() + dnsPort := randomPort() + + testDb := database.MakeConn(&randomDb) database.Migrate(testDb) testUser := &database.User{ ID: "test", @@ -37,20 +46,21 @@ func setup(dbPath string) (*sql.DB, *dns.Server, *sync.WaitGroup) { waitGroup.Done() }() - return testDb, server, &waitGroup -} + address := fmt.Sprintf("127.0.0.1:%d", dnsPort) + return testDb, server, dnsPort, &address, func() { + testDb.Close() + os.Remove(randomDb) -func destroy(conn *sql.DB, path string) { - conn.Close() - os.Remove(path) + server.Shutdown() + waitGroup.Wait() + } } func TestWhenCNAMEIsResolved(t *testing.T) { t.Log("TestWhenCNAMEIsResolved") - testDb, server, _ := setup(testDBPath) - defer destroy(testDb, testDBPath) - defer server.Shutdown() + testDb, _, _, addr, cleanup := setup() + defer cleanup() cname := &database.DNSRecord{ ID: "1", @@ -79,7 +89,7 @@ func TestWhenCNAMEIsResolved(t *testing.T) { message := new(dns.Msg) message.SetQuestion(domain, qtype) - in, _, err := client.Exchange(message, address) + in, _, err := client.Exchange(message, *addr) if err != nil { t.Fatal(err) @@ -125,9 +135,8 @@ func TestWhenCNAMEIsResolved(t *testing.T) { func TestWhenNoRecordNxDomain(t *testing.T) { t.Log("TestWhenNoRecordNxDomain") - testDb, server, _ := setup(testDBPath) - defer destroy(testDb, testDBPath) - defer server.Shutdown() + _, _, _, addr, cleanup := setup() + defer cleanup() qtype := dns.TypeA domain := dns.Fqdn("nonexistant.example.com.") @@ -135,7 +144,7 @@ func TestWhenNoRecordNxDomain(t *testing.T) { message := new(dns.Msg) message.SetQuestion(domain, qtype) - in, _, err := client.Exchange(message, address) + in, _, err := client.Exchange(message, *addr) if err != nil { t.Fatal(err) @@ -153,9 +162,8 @@ func TestWhenNoRecordNxDomain(t *testing.T) { func TestWhenUnresolvingCNAME(t *testing.T) { t.Log("TestWhenUnresolvingCNAME") - testDb, server, _ := setup(testDBPath) - defer destroy(testDb, testDBPath) - defer server.Shutdown() + testDb, _, _, addr, cleanup := setup() + defer cleanup() cname := &database.DNSRecord{ ID: "1", @@ -174,7 +182,7 @@ func TestWhenUnresolvingCNAME(t *testing.T) { message := new(dns.Msg) message.SetQuestion(domain, qtype) - in, _, err := client.Exchange(message, address) + in, _, err := client.Exchange(message, *addr) if err != nil { t.Fatal(err) @@ -208,9 +216,8 @@ func TestWhenUnresolvingCNAME(t *testing.T) { func TestWhenUnresolvingCNAMEWithMaxDepth(t *testing.T) { t.Log("TestWhenUnresolvingCNAMEWithMaxDepth") - testDb, server, _ := setup(testDBPath) - defer destroy(testDb, testDBPath) - defer server.Shutdown() + testDb, _, _, addr, cleanup := setup() + defer cleanup() cname := &database.DNSRecord{ ID: "1", @@ -229,7 +236,7 @@ func TestWhenUnresolvingCNAMEWithMaxDepth(t *testing.T) { message := new(dns.Msg) message.SetQuestion(domain, qtype) - in, _, err := client.Exchange(message, address) + in, _, err := client.Exchange(message, *addr) if err != nil { t.Fatal(err) |
