mirror of https://github.com/0xERR0R/blocky.git
refactor(tests): move `DeferCleanup` into helper functions
This commit is contained in:
parent
f371857150
commit
891d0fba74
|
@ -29,7 +29,6 @@ var _ = Describe("Healthcheck command", func() {
|
|||
err := srv.ListenAndServe()
|
||||
Expect(err).Should(Succeed())
|
||||
}()
|
||||
DeferCleanup(srv.Shutdown)
|
||||
|
||||
Eventually(func() error {
|
||||
c := NewHealthcheckCommand()
|
||||
|
@ -61,5 +60,7 @@ func createMockServer(port string) *dns.Server {
|
|||
Expect(err).Should(Succeed())
|
||||
})
|
||||
|
||||
DeferCleanup(res.Shutdown)
|
||||
|
||||
return res
|
||||
}
|
||||
|
|
|
@ -34,7 +34,6 @@ var _ = Describe("root command", func() {
|
|||
|
||||
tmpDir = NewTmpFolder("RootCommand")
|
||||
Expect(tmpDir.Error).Should(Succeed())
|
||||
DeferCleanup(tmpDir.Clean)
|
||||
|
||||
tmpFile = tmpDir.CreateStringFile("config",
|
||||
"upstreams:",
|
||||
|
|
|
@ -25,7 +25,6 @@ var _ = Describe("Serve command", func() {
|
|||
port = helpertest.GetStringPort(basePort)
|
||||
tmpDir = helpertest.NewTmpFolder("config")
|
||||
Expect(tmpDir.Error).Should(Succeed())
|
||||
DeferCleanup(tmpDir.Clean)
|
||||
configPath = defaultConfigPath
|
||||
})
|
||||
|
||||
|
|
|
@ -31,7 +31,6 @@ var _ = Describe("Config", func() {
|
|||
BeforeEach(func() {
|
||||
tmpDir = helpertest.NewTmpFolder("config")
|
||||
Expect(tmpDir.Error).Should(Succeed())
|
||||
DeferCleanup(tmpDir.Clean)
|
||||
})
|
||||
|
||||
Describe("Deprecated parameters are converted", func() {
|
||||
|
|
|
@ -14,15 +14,14 @@ import (
|
|||
)
|
||||
|
||||
var _ = Describe("Basic functional tests", func() {
|
||||
var blocky, moka testcontainers.Container
|
||||
var blocky testcontainers.Container
|
||||
var err error
|
||||
|
||||
Describe("Container start", func() {
|
||||
BeforeEach(func(ctx context.Context) {
|
||||
moka, err = createDNSMokkaContainer(ctx, "moka1", `A google/NOERROR("A 1.2.3.4 123")`)
|
||||
_, err = createDNSMokkaContainer(ctx, "moka1", `A google/NOERROR("A 1.2.3.4 123")`)
|
||||
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(moka.Terminate)
|
||||
})
|
||||
When("wrong port configuration is provided", func() {
|
||||
BeforeEach(func(ctx context.Context) {
|
||||
|
@ -41,8 +40,6 @@ var _ = Describe("Basic functional tests", func() {
|
|||
state, err := blocky.State(ctx)
|
||||
Expect(err).Should(Succeed())
|
||||
Expect(state.ExitCode).Should(Equal(1))
|
||||
|
||||
DeferCleanup(blocky.Terminate)
|
||||
})
|
||||
It("should fail to start", func(ctx context.Context) {
|
||||
Eventually(blocky.IsRunning, "5s", "2ms").Should(BeFalse())
|
||||
|
@ -61,7 +58,6 @@ var _ = Describe("Basic functional tests", func() {
|
|||
)
|
||||
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(blocky.Terminate)
|
||||
})
|
||||
It("Should start and answer DNS queries", func(ctx context.Context) {
|
||||
msg := util.NewMsgWithQuestion("google.de.", A)
|
||||
|
@ -93,7 +89,6 @@ var _ = Describe("Basic functional tests", func() {
|
|||
)
|
||||
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(blocky.Terminate)
|
||||
})
|
||||
|
||||
It("should not open http port", func(ctx context.Context) {
|
||||
|
@ -116,7 +111,6 @@ var _ = Describe("Basic functional tests", func() {
|
|||
)
|
||||
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(blocky.Terminate)
|
||||
})
|
||||
It("should serve http content", func(ctx context.Context) {
|
||||
host, port, err := getContainerHostPort(ctx, blocky, "4000/tcp")
|
||||
|
@ -143,10 +137,8 @@ var _ = Describe("Basic functional tests", func() {
|
|||
|
||||
Describe("Logging", func() {
|
||||
BeforeEach(func(ctx context.Context) {
|
||||
moka, err = createDNSMokkaContainer(ctx, "moka1", `A google/NOERROR("A 1.2.3.4 123")`)
|
||||
|
||||
_, err = createDNSMokkaContainer(ctx, "moka1", `A google/NOERROR("A 1.2.3.4 123")`)
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(moka.Terminate)
|
||||
})
|
||||
When("log privacy is enabled", func() {
|
||||
BeforeEach(func(ctx context.Context) {
|
||||
|
@ -160,7 +152,6 @@ var _ = Describe("Basic functional tests", func() {
|
|||
" privacy: true",
|
||||
)
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(blocky.Terminate)
|
||||
})
|
||||
It("should not log answers and questions", func(ctx context.Context) {
|
||||
msg := util.NewMsgWithQuestion("google.com.", A)
|
||||
|
|
|
@ -11,13 +11,11 @@ import (
|
|||
)
|
||||
|
||||
var _ = Describe("External lists and query blocking", func() {
|
||||
var blocky, httpServer, moka testcontainers.Container
|
||||
var blocky testcontainers.Container
|
||||
var err error
|
||||
BeforeEach(func(ctx context.Context) {
|
||||
moka, err = createDNSMokkaContainer(ctx, "moka", `A google/NOERROR("A 1.2.3.4 123")`)
|
||||
|
||||
_, err = createDNSMokkaContainer(ctx, "moka", `A google/NOERROR("A 1.2.3.4 123")`)
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(moka.Terminate)
|
||||
})
|
||||
Describe("List download on startup", func() {
|
||||
When("external blacklist ist not available", func() {
|
||||
|
@ -40,9 +38,7 @@ var _ = Describe("External lists and query blocking", func() {
|
|||
" default:",
|
||||
" - ads",
|
||||
)
|
||||
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(blocky.Terminate)
|
||||
})
|
||||
|
||||
It("should start with warning in log work without errors", func(ctx context.Context) {
|
||||
|
@ -77,15 +73,12 @@ var _ = Describe("External lists and query blocking", func() {
|
|||
" default:",
|
||||
" - ads",
|
||||
)
|
||||
|
||||
Expect(err).Should(HaveOccurred())
|
||||
|
||||
// check container exit status
|
||||
state, err := blocky.State(ctx)
|
||||
Expect(err).Should(Succeed())
|
||||
Expect(state.ExitCode).Should(Equal(1))
|
||||
|
||||
DeferCleanup(blocky.Terminate)
|
||||
})
|
||||
|
||||
It("should fail to start", func(ctx context.Context) {
|
||||
|
@ -100,10 +93,8 @@ var _ = Describe("External lists and query blocking", func() {
|
|||
Describe("Query blocking against external blacklists", func() {
|
||||
When("external blacklists are defined and available", func() {
|
||||
BeforeEach(func(ctx context.Context) {
|
||||
httpServer, err = createHTTPServerContainer(ctx, "httpserver", tmpDir, "list.txt", "blockeddomain.com")
|
||||
|
||||
_, err = createHTTPServerContainer(ctx, "httpserver", tmpDir, "list.txt", "blockeddomain.com")
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(httpServer.Terminate)
|
||||
|
||||
blocky, err = createBlockyContainer(ctx, tmpDir,
|
||||
"log:",
|
||||
|
@ -122,7 +113,6 @@ var _ = Describe("External lists and query blocking", func() {
|
|||
)
|
||||
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(blocky.Terminate)
|
||||
})
|
||||
It("should download external list on startup and block queries", func(ctx context.Context) {
|
||||
msg := util.NewMsgWithQuestion("blockeddomain.com.", A)
|
||||
|
|
|
@ -39,6 +39,18 @@ const (
|
|||
blockyImage = "blocky-e2e"
|
||||
)
|
||||
|
||||
func deferTerminate[T testcontainers.Container](container T, err error) (T, error) {
|
||||
ginkgo.DeferCleanup(func(ctx context.Context) error {
|
||||
if container.IsRunning() {
|
||||
return container.Terminate(ctx)
|
||||
}
|
||||
|
||||
return nil
|
||||
})
|
||||
|
||||
return container, err
|
||||
}
|
||||
|
||||
func createDNSMokkaContainer(ctx context.Context, alias string, rules ...string) (testcontainers.Container, error) {
|
||||
mokaRules := make(map[string]string)
|
||||
|
||||
|
@ -55,10 +67,10 @@ func createDNSMokkaContainer(ctx context.Context, alias string, rules ...string)
|
|||
Env: mokaRules,
|
||||
}
|
||||
|
||||
return testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{
|
||||
return deferTerminate(testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{
|
||||
ContainerRequest: req,
|
||||
Started: true,
|
||||
})
|
||||
}))
|
||||
}
|
||||
|
||||
func createHTTPServerContainer(ctx context.Context, alias string, tmpDir *helpertest.TmpFolder,
|
||||
|
@ -89,10 +101,10 @@ func createHTTPServerContainer(ctx context.Context, alias string, tmpDir *helper
|
|||
},
|
||||
}
|
||||
|
||||
return testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{
|
||||
return deferTerminate(testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{
|
||||
ContainerRequest: req,
|
||||
Started: true,
|
||||
})
|
||||
}))
|
||||
}
|
||||
|
||||
func WithNetwork(network string) testcontainers.CustomizeRequestOption {
|
||||
|
@ -103,17 +115,17 @@ func WithNetwork(network string) testcontainers.CustomizeRequestOption {
|
|||
}
|
||||
|
||||
func createRedisContainer(ctx context.Context) (*redis.RedisContainer, error) {
|
||||
return redis.RunContainer(ctx,
|
||||
return deferTerminate(redis.RunContainer(ctx,
|
||||
testcontainers.WithImage(redisImage),
|
||||
redis.WithLogLevel(redis.LogLevelVerbose),
|
||||
WithNetwork("redis"),
|
||||
)
|
||||
))
|
||||
}
|
||||
|
||||
func createPostgresContainer(ctx context.Context) (*postgres.PostgresContainer, error) {
|
||||
const waitLogOccurrence = 2
|
||||
|
||||
return postgres.RunContainer(ctx,
|
||||
return deferTerminate(postgres.RunContainer(ctx,
|
||||
testcontainers.WithImage(postgresImage),
|
||||
|
||||
postgres.WithDatabase("user"),
|
||||
|
@ -124,17 +136,17 @@ func createPostgresContainer(ctx context.Context) (*postgres.PostgresContainer,
|
|||
WithOccurrence(waitLogOccurrence).
|
||||
WithStartupTimeout(startupTimeout)),
|
||||
WithNetwork("postgres"),
|
||||
)
|
||||
))
|
||||
}
|
||||
|
||||
func createMariaDBContainer(ctx context.Context) (*mariadb.MariaDBContainer, error) {
|
||||
return mariadb.RunContainer(ctx,
|
||||
return deferTerminate(mariadb.RunContainer(ctx,
|
||||
testcontainers.WithImage(mariaDBImage),
|
||||
mariadb.WithDatabase("user"),
|
||||
mariadb.WithUsername("user"),
|
||||
mariadb.WithPassword("user"),
|
||||
WithNetwork("mariaDB"),
|
||||
)
|
||||
))
|
||||
}
|
||||
|
||||
const (
|
||||
|
@ -178,10 +190,10 @@ func createBlockyContainer(ctx context.Context, tmpDir *helpertest.TmpFolder,
|
|||
WaitingFor: wait.ForHealthCheck().WithStartupTimeout(startupTimeout),
|
||||
}
|
||||
|
||||
container, err := testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{
|
||||
container, err := deferTerminate(testcontainers.GenericContainer(ctx, testcontainers.GenericContainerRequest{
|
||||
ContainerRequest: req,
|
||||
Started: true,
|
||||
})
|
||||
}))
|
||||
if err != nil {
|
||||
// attach container log if error occurs
|
||||
if r, err := container.Logs(ctx); err == nil {
|
||||
|
@ -196,7 +208,6 @@ func createBlockyContainer(ctx context.Context, tmpDir *helpertest.TmpFolder,
|
|||
// check if DNS/HTTP interface is working.
|
||||
// Sometimes the internal health check returns OK, but the container port is not mapped yet
|
||||
err = checkBlockyReadiness(ctx, cfg, container)
|
||||
|
||||
if err != nil {
|
||||
return container, fmt.Errorf("container not ready: %w", err)
|
||||
}
|
||||
|
|
|
@ -54,6 +54,6 @@ var _ = BeforeSuite(func(ctx context.Context) {
|
|||
|
||||
tmpDir = helpertest.NewTmpFolder("config")
|
||||
Expect(tmpDir.Error).Should(Succeed())
|
||||
DeferCleanup(tmpDir.Clean)
|
||||
|
||||
SetDefaultEventuallyTimeout(5 * time.Second)
|
||||
})
|
||||
|
|
|
@ -16,27 +16,24 @@ import (
|
|||
)
|
||||
|
||||
var _ = Describe("Metrics functional tests", func() {
|
||||
var blocky, moka, httpServer1, httpServer2 testcontainers.Container
|
||||
var blocky testcontainers.Container
|
||||
var err error
|
||||
var metricsURL string
|
||||
|
||||
Describe("Metrics", func() {
|
||||
BeforeEach(func(ctx context.Context) {
|
||||
moka, err = createDNSMokkaContainer(ctx, "moka1", `A google/NOERROR("A 1.2.3.4 123")`)
|
||||
|
||||
_, err = createDNSMokkaContainer(ctx, "moka1", `A google/NOERROR("A 1.2.3.4 123")`)
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(moka.Terminate)
|
||||
|
||||
httpServer1, err = createHTTPServerContainer(ctx, "httpserver1", tmpDir, "list1.txt", "domain1.com")
|
||||
|
||||
_, err = createHTTPServerContainer(ctx, "httpserver1", tmpDir, "list1.txt", "domain1.com")
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(httpServer1.Terminate)
|
||||
|
||||
httpServer2, err = createHTTPServerContainer(ctx, "httpserver2", tmpDir, "list2.txt",
|
||||
_, err = createHTTPServerContainer(ctx, "httpserver2", tmpDir, "list2.txt",
|
||||
"domain1.com", "domain2", "domain3")
|
||||
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(httpServer2.Terminate)
|
||||
|
||||
_, err = createHTTPServerContainer(ctx, "httpserver2", tmpDir, "list2.txt", "domain1.com", "domain2", "domain3")
|
||||
Expect(err).Should(Succeed())
|
||||
|
||||
blocky, err = createBlockyContainer(ctx, tmpDir,
|
||||
"upstreams:",
|
||||
|
@ -54,9 +51,7 @@ var _ = Describe("Metrics functional tests", func() {
|
|||
"prometheus:",
|
||||
" enable: true",
|
||||
)
|
||||
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(blocky.Terminate)
|
||||
|
||||
host, port, err := getContainerHostPort(ctx, blocky, "4000/tcp")
|
||||
Expect(err).Should(Succeed())
|
||||
|
|
|
@ -16,24 +16,21 @@ import (
|
|||
)
|
||||
|
||||
var _ = Describe("Query logs functional tests", func() {
|
||||
var blocky, moka testcontainers.Container
|
||||
var blocky testcontainers.Container
|
||||
var postgresDB *postgres.PostgresContainer
|
||||
var mariaDB *mariadb.MariaDBContainer
|
||||
var db *gorm.DB
|
||||
var err error
|
||||
|
||||
BeforeEach(func(ctx context.Context) {
|
||||
moka, err = createDNSMokkaContainer(ctx, "moka1", `A google/NOERROR("A 1.2.3.4 123")`, `A unknown/NXDOMAIN()`)
|
||||
|
||||
_, err = createDNSMokkaContainer(ctx, "moka1", `A google/NOERROR("A 1.2.3.4 123")`, `A unknown/NXDOMAIN()`)
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(moka.Terminate)
|
||||
})
|
||||
|
||||
Describe("Query logging into the mariaDB database", func() {
|
||||
BeforeEach(func(ctx context.Context) {
|
||||
mariaDB, err = createMariaDBContainer(ctx)
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(mariaDB.Terminate)
|
||||
|
||||
blocky, err = createBlockyContainer(ctx, tmpDir,
|
||||
"log:",
|
||||
|
@ -47,10 +44,6 @@ var _ = Describe("Query logs functional tests", func() {
|
|||
" target: user:user@tcp(mariaDB:3306)/user?charset=utf8mb4&parseTime=True&loc=Local",
|
||||
" flushInterval: 1s",
|
||||
)
|
||||
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(blocky.Terminate)
|
||||
|
||||
Expect(err).Should(Succeed())
|
||||
|
||||
connectionString, err := mariaDB.ConnectionString(ctx,
|
||||
|
@ -113,7 +106,6 @@ var _ = Describe("Query logs functional tests", func() {
|
|||
BeforeEach(func(ctx context.Context) {
|
||||
postgresDB, err = createPostgresContainer(ctx)
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(postgresDB.Terminate)
|
||||
|
||||
blocky, err = createBlockyContainer(ctx, tmpDir,
|
||||
"log:",
|
||||
|
@ -127,9 +119,7 @@ var _ = Describe("Query logs functional tests", func() {
|
|||
" target: postgres://user:user@postgres:5432/user",
|
||||
" flushInterval: 1s",
|
||||
)
|
||||
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(blocky.Terminate)
|
||||
|
||||
connectionString, err := postgresDB.ConnectionString(ctx, "sslmode=disable")
|
||||
Expect(err).Should(Succeed())
|
||||
|
|
|
@ -10,20 +10,16 @@ import (
|
|||
. "github.com/onsi/ginkgo/v2"
|
||||
. "github.com/onsi/gomega"
|
||||
"github.com/testcontainers/testcontainers-go"
|
||||
redisTc "github.com/testcontainers/testcontainers-go/modules/redis"
|
||||
)
|
||||
|
||||
var _ = Describe("Redis configuration tests", func() {
|
||||
var blocky1, blocky2, moka testcontainers.Container
|
||||
var redisDB *redisTc.RedisContainer
|
||||
var blocky1, blocky2, mokka testcontainers.Container
|
||||
var redisClient *redis.Client
|
||||
var err error
|
||||
|
||||
BeforeEach(func(ctx context.Context) {
|
||||
redisDB, err = createRedisContainer(ctx)
|
||||
|
||||
redisDB, err := createRedisContainer(ctx)
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(redisDB.Terminate)
|
||||
|
||||
redisConnectionString, err := redisDB.ConnectionString(ctx)
|
||||
Expect(err).Should(Succeed())
|
||||
|
@ -36,12 +32,8 @@ var _ = Describe("Redis configuration tests", func() {
|
|||
|
||||
Expect(dbSize(ctx, redisClient)).Should(BeNumerically("==", 0))
|
||||
|
||||
moka, err = createDNSMokkaContainer(ctx, "moka1", `A google/NOERROR("A 1.2.3.4 123")`)
|
||||
|
||||
mokka, err = createDNSMokkaContainer(ctx, "moka1", `A google/NOERROR("A 1.2.3.4 123")`)
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(func(ctx context.Context) {
|
||||
_ = moka.Terminate(ctx)
|
||||
})
|
||||
})
|
||||
|
||||
Describe("Cache sharing between blocky instances", func() {
|
||||
|
@ -57,9 +49,7 @@ var _ = Describe("Redis configuration tests", func() {
|
|||
"redis:",
|
||||
" address: redis:6379",
|
||||
)
|
||||
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(blocky1.Terminate)
|
||||
|
||||
blocky2, err = createBlockyContainer(ctx, tmpDir,
|
||||
"log:",
|
||||
|
@ -71,9 +61,7 @@ var _ = Describe("Redis configuration tests", func() {
|
|||
"redis:",
|
||||
" address: redis:6379",
|
||||
)
|
||||
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(blocky2.Terminate)
|
||||
})
|
||||
It("2nd instance of blocky should use cache from redis", func(ctx context.Context) {
|
||||
msg := util.NewMsgWithQuestion("google.de.", A)
|
||||
|
@ -91,7 +79,7 @@ var _ = Describe("Redis configuration tests", func() {
|
|||
})
|
||||
|
||||
By("Shutdown the upstream DNS server", func() {
|
||||
Expect(moka.Terminate(ctx)).Should(Succeed())
|
||||
Expect(mokka.Terminate(ctx)).Should(Succeed())
|
||||
})
|
||||
|
||||
By("Query second blocky instance, should use cache from redis", func() {
|
||||
|
@ -124,9 +112,7 @@ var _ = Describe("Redis configuration tests", func() {
|
|||
"redis:",
|
||||
" address: redis:6379",
|
||||
)
|
||||
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(blocky1.Terminate)
|
||||
})
|
||||
It("should load cache from redis after start", func(ctx context.Context) {
|
||||
msg := util.NewMsgWithQuestion("google.de.", A)
|
||||
|
@ -154,13 +140,11 @@ var _ = Describe("Redis configuration tests", func() {
|
|||
"redis:",
|
||||
" address: redis:6379",
|
||||
)
|
||||
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(blocky2.Terminate)
|
||||
})
|
||||
|
||||
By("Shutdown the upstream DNS server", func() {
|
||||
Expect(moka.Terminate(ctx)).Should(Succeed())
|
||||
Expect(mokka.Terminate(ctx)).Should(Succeed())
|
||||
})
|
||||
|
||||
By("Query second blocky instance", func() {
|
||||
|
|
|
@ -27,9 +27,7 @@ var _ = Describe("Upstream resolver configuration tests", func() {
|
|||
" - 192.192.192.192",
|
||||
" startVerify: false",
|
||||
)
|
||||
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(blocky.Terminate)
|
||||
})
|
||||
It("should start even if upstream server is not reachable", func(ctx context.Context) {
|
||||
Expect(blocky.IsRunning()).Should(BeTrue())
|
||||
|
@ -47,9 +45,7 @@ var _ = Describe("Upstream resolver configuration tests", func() {
|
|||
" - some.wrong.host",
|
||||
" startVerify: false",
|
||||
)
|
||||
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(blocky.Terminate)
|
||||
})
|
||||
It("should start even if upstream server is not reachable", func(ctx context.Context) {
|
||||
Expect(blocky.IsRunning()).Should(BeTrue())
|
||||
|
@ -65,9 +61,7 @@ var _ = Describe("Upstream resolver configuration tests", func() {
|
|||
" - 192.192.192.192",
|
||||
" startVerify: true",
|
||||
)
|
||||
|
||||
Expect(err).Should(HaveOccurred())
|
||||
DeferCleanup(blocky.Terminate)
|
||||
})
|
||||
It("should not start", func(ctx context.Context) {
|
||||
Expect(blocky.IsRunning()).Should(BeFalse())
|
||||
|
@ -84,9 +78,7 @@ var _ = Describe("Upstream resolver configuration tests", func() {
|
|||
" - some.wrong.host",
|
||||
" startVerify: true",
|
||||
)
|
||||
|
||||
Expect(err).Should(HaveOccurred())
|
||||
DeferCleanup(blocky.Terminate)
|
||||
})
|
||||
It("should not start", func(ctx context.Context) {
|
||||
Expect(blocky.IsRunning()).Should(BeFalse())
|
||||
|
@ -96,14 +88,11 @@ var _ = Describe("Upstream resolver configuration tests", func() {
|
|||
})
|
||||
})
|
||||
Describe("'upstreams.timeout' parameter handling", func() {
|
||||
var moka testcontainers.Container
|
||||
BeforeEach(func(ctx context.Context) {
|
||||
moka, err = createDNSMokkaContainer(ctx, "moka1",
|
||||
_, err = createDNSMokkaContainer(ctx, "moka1",
|
||||
`A example.com/NOERROR("A 1.2.3.4 123")`,
|
||||
`A delay.com/delay(NOERROR("A 1.1.1.1 100"), "300ms")`)
|
||||
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(moka.Terminate)
|
||||
|
||||
blocky, err = createBlockyContainer(ctx, tmpDir,
|
||||
"upstreams:",
|
||||
|
@ -112,9 +101,7 @@ var _ = Describe("Upstream resolver configuration tests", func() {
|
|||
" - moka1",
|
||||
" timeout: 200ms",
|
||||
)
|
||||
|
||||
Expect(err).Should(Succeed())
|
||||
DeferCleanup(blocky.Terminate)
|
||||
})
|
||||
It("should consider the timeout parameter", func(ctx context.Context) {
|
||||
By("query without timeout", func() {
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1700794826,
|
||||
"narHash": "sha256-RyJTnTNKhO0yqRpDISk03I/4A67/dp96YRxc86YOPgU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5a09cb4b393d58f9ed0d9ca1555016a8543c2ac8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
{
|
||||
outputs = { self, nixpkgs }:
|
||||
let pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||
in
|
||||
{
|
||||
packages.x86_64-linux = rec {
|
||||
default = blocky;
|
||||
|
||||
blocky = pkgs.hello;
|
||||
};
|
||||
|
||||
devShells.x86_64-linux.default = pkgs.mkShell {
|
||||
buildInputs = with pkgs; [
|
||||
# TODO: trim
|
||||
# delve
|
||||
# clang
|
||||
# gcc
|
||||
ginkgo
|
||||
go
|
||||
# go-outline
|
||||
# golangci-lint
|
||||
# gofumpt
|
||||
# gomodifytags
|
||||
# gopls
|
||||
# gopkgs
|
||||
# gotests
|
||||
# impl
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -60,12 +60,16 @@ func TempFile(data string) *os.File {
|
|||
|
||||
// TestServer creates temp http server with passed data
|
||||
func TestServer(data string) *httptest.Server {
|
||||
return httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
|
||||
srv := httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
|
||||
_, err := rw.Write([]byte(data))
|
||||
if err != nil {
|
||||
log.Log().Fatal("can't write to buffer:", err)
|
||||
}
|
||||
}))
|
||||
|
||||
ginkgo.DeferCleanup(srv.Close)
|
||||
|
||||
return srv
|
||||
}
|
||||
|
||||
// DoGetRequest performs a GET request
|
||||
|
|
|
@ -5,6 +5,8 @@ import (
|
|||
"io/fs"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/onsi/ginkgo/v2"
|
||||
)
|
||||
|
||||
type TmpFolder struct {
|
||||
|
@ -34,6 +36,8 @@ func NewTmpFolder(prefix string) *TmpFolder {
|
|||
prefix: ipref,
|
||||
}
|
||||
|
||||
ginkgo.DeferCleanup(res.Clean)
|
||||
|
||||
return res
|
||||
}
|
||||
|
||||
|
|
|
@ -77,8 +77,6 @@ var _ = Describe("Downloader", func() {
|
|||
When("Download was successful", func() {
|
||||
BeforeEach(func() {
|
||||
server = TestServer("line.one\nline.two")
|
||||
DeferCleanup(server.Close)
|
||||
|
||||
sut = newDownloader(sutConfig, nil)
|
||||
})
|
||||
It("Should return all lines from the file", func(ctx context.Context) {
|
||||
|
@ -98,7 +96,6 @@ var _ = Describe("Downloader", func() {
|
|||
server = httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
|
||||
rw.WriteHeader(http.StatusNotFound)
|
||||
}))
|
||||
DeferCleanup(server.Close)
|
||||
|
||||
sutConfig.Attempts = 3
|
||||
})
|
||||
|
@ -148,7 +145,6 @@ var _ = Describe("Downloader", func() {
|
|||
Expect(err).Should(Succeed())
|
||||
}
|
||||
}))
|
||||
DeferCleanup(server.Close)
|
||||
})
|
||||
It("Should perform a retry and return file content", func(ctx context.Context) {
|
||||
reader, err := sut.DownloadFile(ctx, server.URL)
|
||||
|
@ -179,7 +175,6 @@ var _ = Describe("Downloader", func() {
|
|||
server = httptest.NewServer(http.HandlerFunc(func(rw http.ResponseWriter, req *http.Request) {
|
||||
time.Sleep(20 * time.Millisecond)
|
||||
}))
|
||||
DeferCleanup(server.Close)
|
||||
})
|
||||
It("Should perform a retry until max retry attempt count is reached and return TransientError",
|
||||
func(ctx context.Context) {
|
||||
|
|
|
@ -57,11 +57,8 @@ var _ = Describe("ListCache", func() {
|
|||
mockDownloader = nil
|
||||
|
||||
server1 = TestServer("blocked1.com\nblocked1a.com\n192.168.178.55")
|
||||
DeferCleanup(server1.Close)
|
||||
server2 = TestServer("blocked2.com")
|
||||
DeferCleanup(server2.Close)
|
||||
server3 = TestServer("blocked3.com\nblocked1a.com")
|
||||
DeferCleanup(server3.Close)
|
||||
|
||||
tmpDir = NewTmpFolder("ListCache")
|
||||
Expect(tmpDir.Error).Should(Succeed())
|
||||
|
|
|
@ -26,7 +26,6 @@ var _ = Describe("FileWriter", func() {
|
|||
JustBeforeEach(func() {
|
||||
tmpDir = helpertest.NewTmpFolder("fileWriter")
|
||||
Expect(tmpDir.Error).Should(Succeed())
|
||||
DeferCleanup(tmpDir.Clean)
|
||||
})
|
||||
|
||||
Describe("CSV writer", func() {
|
||||
|
|
|
@ -29,7 +29,6 @@ var (
|
|||
var _ = BeforeSuite(func() {
|
||||
tmpDir = NewTmpFolder("BlockingResolver")
|
||||
Expect(tmpDir.Error).Should(Succeed())
|
||||
DeferCleanup(tmpDir.Clean)
|
||||
|
||||
group1File = tmpDir.CreateStringFile("group1File", "DOMAIN1.com")
|
||||
Expect(group1File.Error).Should(Succeed())
|
||||
|
|
|
@ -313,7 +313,6 @@ var _ = Describe("Bootstrap", Label("bootstrap"), func() {
|
|||
}
|
||||
|
||||
mockUpstreamServer := NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.122")
|
||||
DeferCleanup(mockUpstreamServer.Close)
|
||||
upstream := mockUpstreamServer.Start()
|
||||
|
||||
upstreamIP := upstream.Host
|
||||
|
@ -571,10 +570,7 @@ var _ = Describe("Bootstrap", Label("bootstrap"), func() {
|
|||
|
||||
BeforeEach(func() {
|
||||
mockUpstream1 = NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.122")
|
||||
DeferCleanup(mockUpstream1.Close)
|
||||
|
||||
mockUpstream2 = NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.122")
|
||||
DeferCleanup(mockUpstream1.Close)
|
||||
|
||||
sutConfig.BootstrapDNS = []config.BootstrappedUpstreamConfig{
|
||||
{Upstream: mockUpstream1.Start()},
|
||||
|
|
|
@ -161,7 +161,7 @@ var _ = Describe("ClientResolver", Label("clientNamesResolver"), func() {
|
|||
BeforeEach(func() {
|
||||
testUpstream = NewMockUDPUpstreamServer().
|
||||
WithAnswerRR("25.178.168.192.in-addr.arpa. 600 IN PTR host1")
|
||||
DeferCleanup(testUpstream.Close)
|
||||
|
||||
sutConfig = config.ClientLookup{
|
||||
Upstream: testUpstream.Start(),
|
||||
}
|
||||
|
@ -217,7 +217,7 @@ var _ = Describe("ClientResolver", Label("clientNamesResolver"), func() {
|
|||
BeforeEach(func() {
|
||||
testUpstream = NewMockUDPUpstreamServer().
|
||||
WithAnswerRR("25.178.168.192.in-addr.arpa. 600 IN PTR myhost1", "25.178.168.192.in-addr.arpa. 600 IN PTR myhost2")
|
||||
DeferCleanup(testUpstream.Close)
|
||||
|
||||
sutConfig = config.ClientLookup{
|
||||
Upstream: testUpstream.Start(),
|
||||
}
|
||||
|
@ -247,7 +247,7 @@ var _ = Describe("ClientResolver", Label("clientNamesResolver"), func() {
|
|||
BeforeEach(func() {
|
||||
testUpstream = NewMockUDPUpstreamServer().
|
||||
WithAnswerRR("25.178.168.192.in-addr.arpa. 600 IN PTR host1")
|
||||
DeferCleanup(testUpstream.Close)
|
||||
|
||||
sutConfig.Upstream = testUpstream.Start()
|
||||
})
|
||||
|
||||
|
@ -268,7 +268,7 @@ var _ = Describe("ClientResolver", Label("clientNamesResolver"), func() {
|
|||
BeforeEach(func() {
|
||||
testUpstream = NewMockUDPUpstreamServer().
|
||||
WithAnswerRR("25.178.168.192.in-addr.arpa. 600 IN PTR myhost1", "25.178.168.192.in-addr.arpa. 600 IN PTR myhost2")
|
||||
DeferCleanup(testUpstream.Close)
|
||||
|
||||
sutConfig.Upstream = testUpstream.Start()
|
||||
})
|
||||
|
||||
|
@ -292,7 +292,7 @@ var _ = Describe("ClientResolver", Label("clientNamesResolver"), func() {
|
|||
BeforeEach(func() {
|
||||
testUpstream = NewMockUDPUpstreamServer().
|
||||
WithAnswerError(dns.RcodeNameError)
|
||||
DeferCleanup(testUpstream.Close)
|
||||
|
||||
sutConfig = config.ClientLookup{
|
||||
Upstream: testUpstream.Start(),
|
||||
}
|
||||
|
|
|
@ -41,21 +41,18 @@ var _ = Describe("ConditionalUpstreamResolver", Label("conditionalResolver"), fu
|
|||
|
||||
return response
|
||||
})
|
||||
DeferCleanup(fbTestUpstream.Close)
|
||||
|
||||
otherTestUpstream := NewMockUDPUpstreamServer().WithAnswerFn(func(request *dns.Msg) (response *dns.Msg) {
|
||||
response, _ = util.NewMsgWithAnswer(request.Question[0].Name, 250, A, "192.192.192.192")
|
||||
|
||||
return response
|
||||
})
|
||||
DeferCleanup(otherTestUpstream.Close)
|
||||
|
||||
dotTestUpstream := NewMockUDPUpstreamServer().WithAnswerFn(func(request *dns.Msg) (response *dns.Msg) {
|
||||
response, _ = util.NewMsgWithAnswer(request.Question[0].Name, 223, A, "168.168.168.168")
|
||||
|
||||
return response
|
||||
})
|
||||
DeferCleanup(dotTestUpstream.Close)
|
||||
|
||||
refuseTestUpstream := NewMockUDPUpstreamServer().WithAnswerFn(func(request *dns.Msg) (response *dns.Msg) {
|
||||
response = new(dns.Msg)
|
||||
|
@ -65,7 +62,6 @@ var _ = Describe("ConditionalUpstreamResolver", Label("conditionalResolver"), fu
|
|||
|
||||
return response
|
||||
})
|
||||
DeferCleanup(refuseTestUpstream.Close)
|
||||
|
||||
sutConfig = config.ConditionalUpstream{
|
||||
Mapping: config.ConditionalUpstreamMapping{
|
||||
|
|
|
@ -42,7 +42,6 @@ var _ = Describe("HostsFileResolver", func() {
|
|||
|
||||
tmpDir = NewTmpFolder("HostsFileResolver")
|
||||
Expect(tmpDir.Error).Should(Succeed())
|
||||
DeferCleanup(tmpDir.Clean)
|
||||
|
||||
tmpFile = writeHostFile(tmpDir)
|
||||
Expect(tmpFile.Error).Should(Succeed())
|
||||
|
|
|
@ -9,6 +9,7 @@ import (
|
|||
"github.com/0xERR0R/blocky/config"
|
||||
"github.com/0xERR0R/blocky/util"
|
||||
"github.com/miekg/dns"
|
||||
"github.com/onsi/ginkgo/v2"
|
||||
)
|
||||
|
||||
type MockUDPUpstreamServer struct {
|
||||
|
@ -18,7 +19,11 @@ type MockUDPUpstreamServer struct {
|
|||
}
|
||||
|
||||
func NewMockUDPUpstreamServer() *MockUDPUpstreamServer {
|
||||
return &MockUDPUpstreamServer{}
|
||||
srv := &MockUDPUpstreamServer{}
|
||||
|
||||
ginkgo.DeferCleanup(srv.Close)
|
||||
|
||||
return srv
|
||||
}
|
||||
|
||||
func (t *MockUDPUpstreamServer) WithAnswerRR(answers ...string) *MockUDPUpstreamServer {
|
||||
|
|
|
@ -130,7 +130,6 @@ var _ = Describe("ParallelBestResolver", Label("parallelBestResolver"), func() {
|
|||
timeoutUpstream := NewMockUDPUpstreamServer().
|
||||
WithAnswerRR("example.com 123 IN A 123.124.122.1").
|
||||
WithDelay(2 * timeout)
|
||||
DeferCleanup(timeoutUpstream.Close)
|
||||
|
||||
upstreams = []config.Upstream{timeoutUpstream.Start()}
|
||||
})
|
||||
|
@ -167,12 +166,10 @@ var _ = Describe("ParallelBestResolver", Label("parallelBestResolver"), func() {
|
|||
When("one resolver is fast and another is slow", func() {
|
||||
BeforeEach(func() {
|
||||
fastTestUpstream := NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.122")
|
||||
DeferCleanup(fastTestUpstream.Close)
|
||||
|
||||
slowTestUpstream := NewMockUDPUpstreamServer().
|
||||
WithAnswerRR("example.com 123 IN A 123.124.122.123").
|
||||
WithDelay(timeout / 2)
|
||||
DeferCleanup(slowTestUpstream.Close)
|
||||
|
||||
upstreams = []config.Upstream{fastTestUpstream.Start(), slowTestUpstream.Start()}
|
||||
})
|
||||
|
@ -194,7 +191,6 @@ var _ = Describe("ParallelBestResolver", Label("parallelBestResolver"), func() {
|
|||
slowTestUpstream = NewMockUDPUpstreamServer().
|
||||
WithAnswerRR("example.com 123 IN A 123.124.122.123").
|
||||
WithDelay(timeout / 2)
|
||||
DeferCleanup(slowTestUpstream.Close)
|
||||
upstreams = []config.Upstream{{Host: "wrong"}, slowTestUpstream.Start()}
|
||||
})
|
||||
It("Should use result from successful resolver", func() {
|
||||
|
@ -228,7 +224,6 @@ var _ = Describe("ParallelBestResolver", Label("parallelBestResolver"), func() {
|
|||
When("only 1 upstream resolvers is defined", func() {
|
||||
BeforeEach(func() {
|
||||
mockUpstream := NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.122")
|
||||
DeferCleanup(mockUpstream.Close)
|
||||
|
||||
upstreams = []config.Upstream{mockUpstream.Start()}
|
||||
})
|
||||
|
@ -254,10 +249,7 @@ var _ = Describe("ParallelBestResolver", Label("parallelBestResolver"), func() {
|
|||
withError2 := config.Upstream{Host: "wrong2"}
|
||||
|
||||
mockUpstream1 := NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.122")
|
||||
DeferCleanup(mockUpstream1.Close)
|
||||
|
||||
mockUpstream2 := NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.122")
|
||||
DeferCleanup(mockUpstream2.Close)
|
||||
|
||||
upstreams = []config.Upstream{withError1, mockUpstream1.Start(), mockUpstream2.Start(), withError2}
|
||||
})
|
||||
|
@ -346,10 +338,7 @@ var _ = Describe("ParallelBestResolver", Label("parallelBestResolver"), func() {
|
|||
When("Both respond in time", func() {
|
||||
BeforeEach(func() {
|
||||
testUpstream1 := NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.122")
|
||||
DeferCleanup(testUpstream1.Close)
|
||||
|
||||
testUpstream2 := NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.123")
|
||||
DeferCleanup(testUpstream2.Close)
|
||||
|
||||
upstreams = []config.Upstream{testUpstream1.Start(), testUpstream2.Start()}
|
||||
})
|
||||
|
@ -372,10 +361,8 @@ var _ = Describe("ParallelBestResolver", Label("parallelBestResolver"), func() {
|
|||
timeoutUpstream := NewMockUDPUpstreamServer().
|
||||
WithAnswerRR("example.com 123 IN A 123.124.122.1").
|
||||
WithDelay(2 * timeout)
|
||||
DeferCleanup(timeoutUpstream.Close)
|
||||
|
||||
testUpstream2 := NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.2")
|
||||
DeferCleanup(testUpstream2.Close)
|
||||
|
||||
upstreams = []config.Upstream{timeoutUpstream.Start(), testUpstream2.Start()}
|
||||
})
|
||||
|
@ -395,12 +382,10 @@ var _ = Describe("ParallelBestResolver", Label("parallelBestResolver"), func() {
|
|||
testUpstream1 := NewMockUDPUpstreamServer().
|
||||
WithAnswerRR("example.com 123 IN A 123.124.122.1").
|
||||
WithDelay(2 * timeout)
|
||||
DeferCleanup(testUpstream1.Close)
|
||||
|
||||
testUpstream2 := NewMockUDPUpstreamServer().
|
||||
WithAnswerRR("example.com 123 IN A 123.124.122.2").
|
||||
WithDelay(2 * timeout)
|
||||
DeferCleanup(testUpstream2.Close)
|
||||
|
||||
upstreams = []config.Upstream{testUpstream1.Start(), testUpstream2.Start()}
|
||||
})
|
||||
|
@ -430,7 +415,6 @@ var _ = Describe("ParallelBestResolver", Label("parallelBestResolver"), func() {
|
|||
When("only 1 upstream resolvers is defined", func() {
|
||||
BeforeEach(func() {
|
||||
mockUpstream := NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.122")
|
||||
DeferCleanup(mockUpstream.Close)
|
||||
|
||||
upstreams = []config.Upstream{mockUpstream.Start()}
|
||||
})
|
||||
|
@ -451,19 +435,13 @@ var _ = Describe("ParallelBestResolver", Label("parallelBestResolver"), func() {
|
|||
|
||||
Describe("Weighted random on resolver selection", func() {
|
||||
When("4 upstream resolvers are defined", func() {
|
||||
var (
|
||||
mockUpstream1 *MockUDPUpstreamServer
|
||||
mockUpstream2 *MockUDPUpstreamServer
|
||||
)
|
||||
BeforeEach(func() {
|
||||
withError1 := config.Upstream{Host: "wrong1"}
|
||||
withError2 := config.Upstream{Host: "wrong2"}
|
||||
|
||||
mockUpstream1 = NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.122")
|
||||
DeferCleanup(mockUpstream1.Close)
|
||||
mockUpstream1 := NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.122")
|
||||
|
||||
mockUpstream2 = NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.122")
|
||||
DeferCleanup(mockUpstream2.Close)
|
||||
mockUpstream2 := NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.122")
|
||||
|
||||
upstreams = []config.Upstream{withError1, mockUpstream1.Start(), mockUpstream2.Start(), withError2}
|
||||
})
|
||||
|
|
|
@ -62,7 +62,6 @@ var _ = Describe("QueryLoggingResolver", func() {
|
|||
mockAnswer = new(dns.Msg)
|
||||
tmpDir = NewTmpFolder("queryLoggingResolver")
|
||||
Expect(tmpDir.Error).Should(Succeed())
|
||||
DeferCleanup(tmpDir.Clean)
|
||||
})
|
||||
|
||||
JustBeforeEach(func() {
|
||||
|
|
|
@ -103,7 +103,6 @@ var _ = Describe("StrictResolver", Label("strictResolver"), func() {
|
|||
|
||||
return
|
||||
})
|
||||
DeferCleanup(mockUpstream.Close)
|
||||
|
||||
upstreams = []config.Upstream{
|
||||
{Host: "wrong"},
|
||||
|
@ -148,11 +147,8 @@ var _ = Describe("StrictResolver", Label("strictResolver"), func() {
|
|||
When("Both are responding", func() {
|
||||
When("they respond in time", func() {
|
||||
BeforeEach(func() {
|
||||
testUpstream1 = NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.122")
|
||||
DeferCleanup(testUpstream1.Close)
|
||||
|
||||
testUpstream2 = NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.123")
|
||||
DeferCleanup(testUpstream2.Close)
|
||||
testUpstream1 := NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.122")
|
||||
testUpstream2 := NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.123")
|
||||
|
||||
upstreams = []config.Upstream{testUpstream1.Start(), testUpstream2.Start()}
|
||||
})
|
||||
|
@ -178,10 +174,8 @@ var _ = Describe("StrictResolver", Label("strictResolver"), func() {
|
|||
|
||||
return response
|
||||
})
|
||||
DeferCleanup(testUpstream1.Close)
|
||||
|
||||
testUpstream2 = NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.2")
|
||||
DeferCleanup(testUpstream2.Close)
|
||||
testUpstream2 := NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.2")
|
||||
|
||||
upstreams = []config.Upstream{testUpstream1.Start(), testUpstream2.Start()}
|
||||
})
|
||||
|
@ -206,7 +200,6 @@ var _ = Describe("StrictResolver", Label("strictResolver"), func() {
|
|||
|
||||
return response
|
||||
})
|
||||
DeferCleanup(testUpstream1.Close)
|
||||
|
||||
testUpstream2 = NewMockUDPUpstreamServer().WithAnswerFn(func(request *dns.Msg) (response *dns.Msg) {
|
||||
response, err := util.NewMsgWithAnswer("example.com", 123, A, "123.124.122.2")
|
||||
|
@ -216,7 +209,7 @@ var _ = Describe("StrictResolver", Label("strictResolver"), func() {
|
|||
|
||||
return response
|
||||
})
|
||||
DeferCleanup(testUpstream2.Close)
|
||||
|
||||
upstreams = []config.Upstream{testUpstream1.Start(), testUpstream2.Start()}
|
||||
})
|
||||
It("should return error", func() {
|
||||
|
@ -228,8 +221,7 @@ var _ = Describe("StrictResolver", Label("strictResolver"), func() {
|
|||
})
|
||||
When("Only second is working", func() {
|
||||
BeforeEach(func() {
|
||||
testUpstream2 = NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.123")
|
||||
DeferCleanup(testUpstream2.Close)
|
||||
testUpstream2 := NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.123")
|
||||
|
||||
upstreams = []config.Upstream{{Host: "wrong"}, testUpstream2.Start()}
|
||||
})
|
||||
|
@ -260,7 +252,6 @@ var _ = Describe("StrictResolver", Label("strictResolver"), func() {
|
|||
When("only 1 upstream resolvers is defined", func() {
|
||||
BeforeEach(func() {
|
||||
mockUpstream := NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.122")
|
||||
DeferCleanup(mockUpstream.Close)
|
||||
|
||||
upstreams = []config.Upstream{mockUpstream.Start()}
|
||||
})
|
||||
|
|
|
@ -64,7 +64,6 @@ var _ = Describe("UpstreamResolver", Label("upstreamResolver"), func() {
|
|||
When("Configured DNS resolver can resolve query", func() {
|
||||
It("should return answer from DNS upstream", func() {
|
||||
mockUpstream := NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.122")
|
||||
DeferCleanup(mockUpstream.Close)
|
||||
|
||||
sutConfig.Upstream = mockUpstream.Start()
|
||||
sut := newUpstreamResolverUnchecked(sutConfig, nil)
|
||||
|
@ -83,7 +82,6 @@ var _ = Describe("UpstreamResolver", Label("upstreamResolver"), func() {
|
|||
When("Configured DNS resolver can't resolve query", func() {
|
||||
It("should return response code from DNS upstream", func() {
|
||||
mockUpstream := NewMockUDPUpstreamServer().WithAnswerError(dns.RcodeNameError)
|
||||
DeferCleanup(mockUpstream.Close)
|
||||
|
||||
sutConfig.Upstream = mockUpstream.Start()
|
||||
sut := newUpstreamResolverUnchecked(sutConfig, nil)
|
||||
|
@ -103,7 +101,7 @@ var _ = Describe("UpstreamResolver", Label("upstreamResolver"), func() {
|
|||
mockUpstream := NewMockUDPUpstreamServer().WithAnswerFn(func(request *dns.Msg) (response *dns.Msg) {
|
||||
return nil
|
||||
})
|
||||
DeferCleanup(mockUpstream.Close)
|
||||
|
||||
sutConfig.Upstream = mockUpstream.Start()
|
||||
sut := newUpstreamResolverUnchecked(sutConfig, nil)
|
||||
|
||||
|
@ -130,7 +128,6 @@ var _ = Describe("UpstreamResolver", Label("upstreamResolver"), func() {
|
|||
}
|
||||
|
||||
mockUpstream := NewMockUDPUpstreamServer().WithAnswerFn(resolveFn)
|
||||
DeferCleanup(mockUpstream.Close)
|
||||
|
||||
sutConfig.Upstream = mockUpstream.Start()
|
||||
})
|
||||
|
@ -164,7 +161,6 @@ var _ = Describe("UpstreamResolver", Label("upstreamResolver"), func() {
|
|||
When("TCP upstream connection fails", func() {
|
||||
BeforeEach(func() {
|
||||
mockUpstream := NewMockUDPUpstreamServer().WithAnswerRR("example.com 123 IN A 123.124.122.122")
|
||||
DeferCleanup(mockUpstream.Close)
|
||||
|
||||
sutConfig.Upstream = mockUpstream.Start()
|
||||
})
|
||||
|
|
|
@ -164,8 +164,6 @@ var _ = Describe("UpstreamTreeResolver", Label("upstreamTreeResolver"), func() {
|
|||
|
||||
server := NewMockUDPUpstreamServer().WithAnswerRR(fmt.Sprintf("example.com 123 IN A %s", ip))
|
||||
sutConfig.Groups[group] = []config.Upstream{server.Start()}
|
||||
|
||||
DeferCleanup(server.Close)
|
||||
}
|
||||
})
|
||||
|
||||
|
|
|
@ -61,7 +61,6 @@ var _ = BeforeSuite(func() {
|
|||
|
||||
return response
|
||||
})
|
||||
DeferCleanup(googleMockUpstream.Close)
|
||||
|
||||
fritzboxMockUpstream = resolver.NewMockUDPUpstreamServer().WithAnswerFn(func(request *dns.Msg) (response *dns.Msg) {
|
||||
response, err := util.NewMsgWithAnswer(
|
||||
|
@ -72,7 +71,6 @@ var _ = BeforeSuite(func() {
|
|||
|
||||
return response
|
||||
})
|
||||
DeferCleanup(fritzboxMockUpstream.Close)
|
||||
|
||||
clientMockUpstream = resolver.NewMockUDPUpstreamServer().WithAnswerFn(func(request *dns.Msg) (response *dns.Msg) {
|
||||
var clientName string
|
||||
|
@ -89,7 +87,6 @@ var _ = BeforeSuite(func() {
|
|||
|
||||
return response
|
||||
})
|
||||
DeferCleanup(clientMockUpstream.Close)
|
||||
|
||||
upstreamClient = clientMockUpstream.Start()
|
||||
upstreamFritzbox = fritzboxMockUpstream.Start()
|
||||
|
@ -97,7 +94,6 @@ var _ = BeforeSuite(func() {
|
|||
|
||||
tmpDir := NewTmpFolder("server")
|
||||
Expect(tmpDir.Error).Should(Succeed())
|
||||
DeferCleanup(tmpDir.Clean)
|
||||
|
||||
certPem := writeCertPem(tmpDir)
|
||||
Expect(certPem.Error).Should(Succeed())
|
||||
|
|
|
@ -16,7 +16,6 @@ var _ = Describe("Hostname function tests", func() {
|
|||
BeforeEach(func() {
|
||||
tmpDir = helpertest.NewTmpFolder("hostname")
|
||||
Expect(tmpDir.Error).Should(Succeed())
|
||||
DeferCleanup(tmpDir.Clean)
|
||||
})
|
||||
|
||||
It("should be used", func() {
|
||||
|
|
Loading…
Reference in New Issue