mirror of
https://blitiri.com.ar/repos/chasquid
synced 2025-12-17 14:37:02 +00:00
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.
47 lines
1.3 KiB
Docker
47 lines
1.3 KiB
Docker
# Docker file for creating a docker container that can run the tests.
|
|
#
|
|
# Create the image:
|
|
# docker build -t chasquid-test -f test/Dockerfile .
|
|
#
|
|
# Run the tests:
|
|
# docker run --rm chasquid-test make test
|
|
#
|
|
# Get a shell inside the image (for debugging):
|
|
# docker run -it --entrypoint=/bin/bash chasquid-test
|
|
|
|
FROM golang:latest
|
|
|
|
WORKDIR /go/src/blitiri.com.ar/go/chasquid
|
|
COPY . .
|
|
|
|
# Make debconf/frontend non-interactive, to avoid distracting output about the
|
|
# lack of $TERM.
|
|
ENV DEBIAN_FRONTEND noninteractive
|
|
|
|
# Install the basics for the integration tests.
|
|
RUN apt-get update -q
|
|
RUN apt-get install -y -q python3 msmtp
|
|
|
|
# Packages for the (optional) dovecot integration test.
|
|
RUN apt-get install -y -q gettext-base dovecot-imapd
|
|
|
|
# Packages for the (optional) exim integration test.
|
|
RUN apt-get install -y -q exim4-daemon-light
|
|
RUN cd test/t-02-exim && mkdir -p .exim4 && ln -s /usr/sbin/exim4 .exim4/
|
|
|
|
# Packages for the (optional) TLS tracking test.
|
|
RUN apt-get install -y -q dnsmasq
|
|
|
|
|
|
RUN go get -d ./...
|
|
RUN go install ./...
|
|
|
|
# Don't run the tests as root: it makes some integration tests more difficult,
|
|
# as for example Exim has hard-coded protections against running as root.
|
|
RUN useradd -m chasquid
|
|
RUN chown -R chasquid:chasquid .
|
|
USER chasquid
|
|
|
|
# Tests expect the $USER variable set.
|
|
ENV USER chasquid
|