1
0
mirror of https://blitiri.com.ar/repos/chasquid synced 2025-12-28 16:27:20 +00:00
Commit Graph

9 Commits

Author SHA1 Message Date
Alberto Bertogli
9dea372d96 gitlab-ci.yml: Run integration tests against submitted and latest deps
It is useful to run the integration tests both against the submitted
dependencies, based on Go module versions from the repository, as well
as the latest ones, to catch integration problems early.

This patch extends the .gitlab-ci.yml configuration to do that, by
optionally passing a flag to "go get" to update the modules.
2019-10-19 13:06:30 +01:00
Alberto Bertogli
3aa7bb4555 test: Adjust Dockerfile to support modules
When modules are configured, go will now attempt to fetch them on build,
using the proxy.

That causes the integration tests run via Docker to fail, because go
build attempts to contact the proxy within the test environment, which
has the external DNS resolvers disabled.

This patch fixes the problem by adjusting the pre-run fetch to use the
new modules system. We fetch the dependencies to the cache so that when
they're needed within the environment, they are present and there's no
need to use the proxy.
2019-10-19 13:06:26 +01:00
Alberto Bertogli
5102007687 test: Adjust docker test to msmtp being a setgid binary
The golang image has been updated to use Debian buster. In that version,
msmtp is now setgid, which means glibc sanitizes the environment before
forking and $HOSTALIASES will be ignored, which breaks the tests.

This patch works around the problem by removing the setgid bit from
msmtp.
2019-08-04 04:55:01 +01:00
Alberto Bertogli
dd7cfaebf2 test: Use minidns in the Docker tests
The integration tests depend on having a DNS server that resolves
"localhost", which is unfortunate but currently unavoidable given
glibc's limitations ($HOSTALIASES only works on DNS-level aliases, and
does not do lookups in /etc/hosts).

Even under docker, this makes the tests depend on the DNS server, and
whether it resolves localhost or not.

In order to make the docker tests more hermetic and isolated from the
environment, this patch introduces a docker entrypoint that, within the
container, will launch minidns and override /etc/resolv.conf to use it.

This guarantees that the tests will be able to resolve localhost, and
also avoid accidental reliance on external DNS zones.
2018-11-30 10:03:48 +00:00
Alberto Bertogli
57f5a09901 test: Replace dnsmasq with minidns
This commit replaces test/t-14-tls_tracking usage of dnsmasq (an
external test dependency) with our new minidns.
2018-11-30 10:03:48 +00:00
Alberto Bertogli
d0c7c3d40a tests: Reorder Dockerfile statements to allow caching
Docker creates intermediate layers on each command (for most commands),
but the COPY was invalidating them too early, every time it runs it was
generating a different layer.

This patch moves the COPY down to the bottom, and adds a bit more
organization to the commands below.
2018-11-30 10:03:48 +00:00
Alberto Bertogli
4ecc5461d3 Add driusan/dkim integration example and tests
This patch adds DKIM signing using https://github.com/driusan/dkim tools
to the example hook.

It also adds an optional integration test to exercise signing and
verification, and corresponding documentation.
2018-11-30 10:03:48 +00:00
Alberto Bertogli
029bca7013 test: Add TLS tracking integration test
This patch adds a new test, which verifies the TLS tracking.

Because we need to simulate SPF records, and Go does not support fully
intercepting DNS lookups yet, this test relies on dnsmasq to provide a
DNS resolver.

In the future, once Go supports DNS lookup interception, we can get rid
of this additional dependency.
2018-06-02 19:31:28 +01:00
Alberto Bertogli
9ef481633a test: Add Dockerfile
This patch adds a Docker configuration file, to build an image that can
run the integration and stress tests.

It might be used for configuring automated testing infrastructure in
subsequent patches.
2018-03-27 08:37:11 +01:00