Commit Graph

36 Commits

Author SHA1 Message Date
ThinkChaos bcd1381e18 feat: update list config and code to use "allow/deny" language 2024-04-11 18:33:09 -04:00
Kwitsch c3a319f199
refactoring - e2e network (#1401)
* change to testcontainers-go/network
2024-03-18 13:02:03 +01:00
Dimitri Herzog 716ad9498f
chore(build): update testcontainers dependency (#1376) 2024-02-14 08:20:18 +01:00
Ben b8b4dc323a
feat: support CNAME records in customDNS mappings (#1352)
Co-authored-by: Ben McHone <ben@mchone.dev>
2024-01-29 11:22:03 -05:00
Kwitsch 2d3ad83087
Refactoring/e2e tests (#1316)
* WithNetwork refactoring

* removed tmpDir for blocky

* removed tmpDir from HTTPServer
2024-01-17 17:16:16 +01:00
ThinkChaos 7a3c054b43 feat: add `upstreams.init.strategy`
Replaces `startVerifyUpstream` and behaves just like
`blocking.loading.strategy`.

We use the bootstrap resolver for any requests that arrive before the
upstreams are initialized.
2023-12-05 20:52:46 -05:00
ThinkChaos 8c7b89cbb3 refactor(tests): remove `TmpFile.Error` to centralize error checks 2023-12-01 15:53:11 -05:00
ThinkChaos 891d0fba74 refactor(tests): move `DeferCleanup` into helper functions 2023-12-01 15:53:11 -05:00
ThinkChaos f371857150 style(tests): use `ContainElements` where possible 2023-12-01 15:53:11 -05:00
ThinkChaos 321680250a style(tests): `Should(Not(x))` -> `ShouldNot(x)` 2023-12-01 15:53:11 -05:00
Kwitsch 3378316982
Refactoring: FileDownloader (#1281)
* enabled containedctx & contextcheck

* enabled noctx

* less background context

* context metrics test

* use ginkgo context instead of background

* fix redis e2e tests

* made downloader context aware
2023-11-29 18:18:29 +01:00
ThinkChaos b386e22ebe refactor: embed `Upstreams` in `UpstreamGroup` to make values accessible
Move `startVerifyUpstream` to `upstreams.startVerify` so it's accessible
via `UpstreamGroup` and we don't need to pass `startVerify` to all
resolver constructors that call `NewUpstreamResolver`.

Also has the nice benefit of greatly reducing the usage of `GetConfig`.
2023-11-23 08:45:18 -05:00
ThinkChaos d52c598546
fix(tests): properly silence log output (#1259)
* fix(tests): properly silence log output

Using `init` allows it to also work for benchmarks.
And `log.Silence` was sometimes getting overridden by `log.init`.

* squash: fix(server): don't setup the logger again
2023-11-19 17:51:49 -05:00
Dimitri Herzog 4a5a395655
fix: log.privacy option no longer hides domain names being resolved (#1255) 2023-11-17 15:59:22 +01:00
Dimitri Herzog bcff170a94
chore(test): use testcontainers modules (#1164) 2023-09-22 10:35:51 -04:00
Dimitri Herzog 65ff6847ad fix: return error code on server starup failure (#1165) 2023-09-20 17:44:52 +02:00
Dimitri Herzog 19865bba55 chore(test): change container wait strategy 2023-09-19 19:24:50 +02:00
Dimitri Herzog ed864962b2 chore: improve execution time of e2e tests 2023-09-14 15:06:10 +02:00
Dimitri Herzog b1d014017b feat(querylog): add flushInterval parameter 2023-09-14 15:06:10 +02:00
Dimitri Herzog 81529996ce
chore(test): add retry on network deletion (#1144) 2023-09-14 09:02:17 -04:00
DerRockWolf c112e86740
feat: add upstream strategy `strict` (#1093) 2023-08-21 09:50:23 +02:00
ThinkChaos 639fba5323 refactor(config): allow more configuration for `upstreams`
Rename the `upstream` option to `upstreams.groups` so we can have
more `upstreams` options.
2023-08-01 15:01:40 -04:00
ThinkChaos cfc3699ab5 feat: support multiple hosts files 2023-07-07 09:16:20 -04:00
Dimitri Herzog 8614fde9d0 chore(test): add HTTP listener readiness check 2023-04-05 14:55:38 +02:00
Dimitri Herzog eda3b505cd chore(test): set default timeout for eventually 2023-04-05 14:55:38 +02:00
ThinkChaos a2ab7c3ef1
feat: allow hosts file resolver to use a HTTP(S) link or inline block (#884)
Unify the hosts file parsing between the hosts resolver and lists so
the resolver supports more data sources than local files.

Lists' group cache is now re-used if refresh fails.

Also improve lookups in hosts:
Instead of iterating through all hosts+aliases for each A/AAAA query,
we can do a single lookup.
For PTR we search through only the hosts with an IP version that matches
the question. And compare IPs instead of building the reverse DNS name
for each IP in the hosts database.
2023-03-06 19:32:41 -05:00
Kwitsch 101e2c554b
Workflow changes (#857)
* fix linter errors

* fix for flaky redis unit test

* timeout adjustment

* e2e-test -> ci-build

* setup docker buildx

* added concurrency cancelation

* changed job name

* Test comment out problematic eventually

* added comment

* workflow file rename

* workflow name changed

* skip go generate

* added make generate

* removed unused go generate

* setup golang with caches if needed

* matrix revamp

* activate gofor e2e

* fix matrix

* test

* eventually timing

* removed linter workflow in favor of make matrix

* expect -> Eventually

* renamed workflow
2023-02-07 14:00:53 +01:00
Dimitri Herzog 5a9da900b2
chore(test): increase timeout (#820) 2023-01-09 07:40:44 +01:00
Dimitri Herzog 53a7d4fccc
Test refactoring (#798)
* test: refactor tests

* chore: fix possible race condition in cache
2022-12-29 14:58:25 +01:00
Kwitsch 9abeaeddea
Added gofumpt (#805)
* fix linter errors

* added gofumpt

* Makefile cleanup

* gofumpt run

* Update Makefile

Co-authored-by: ThinkChaos <ThinkChaos@users.noreply.github.com>

* go mod tidy

* fmt + lint

* go mod tidy

Co-authored-by: ThinkChaos <ThinkChaos@users.noreply.github.com>
2022-12-26 22:11:45 +01:00
Dimitri Herzog 943d6cc944
test: use 'eventually' to avoid flaky tests (#792) 2022-12-09 18:37:32 +01:00
Kwitsch b73cd3b5ba
Config restructuring (#771)
To declutter the global top level config options i propose the grouping of ports and logging options as child options of top level options.

New structure:
ports:
  dns: 43
  http: 4000
  https: 4443
  tls: 853
log:
  level: warn
  format: json
  privacy: true
  timestamp: false
2022-12-02 21:55:40 +01:00
Dimitri Herzog 4ad7670bf9 test(e2e): added more `startVerifyUpstream` tests 2022-12-02 12:56:44 -05:00
Dimitri Herzog be5fce031b test: make e2e tests more resilient 2022-12-02 12:56:44 -05:00
ThinkChaos c06c017a1a fix: `startVerifyUpstream` not disabling all start checks 2022-12-02 12:56:44 -05:00
Dimitri Herzog fb0810f18d
build(tests): e2e integration tests with docker and testcontainers (#753) 2022-11-24 21:54:52 +01:00