Refactored.
This commit is contained in:
parent
dedcb8f5d0
commit
38cc862638
|
@ -2,8 +2,12 @@ language: bash
|
||||||
sudo: required
|
sudo: required
|
||||||
services:
|
services:
|
||||||
- docker
|
- docker
|
||||||
|
before_script:
|
||||||
|
- make build-no-cache generate-accounts run fixtures
|
||||||
script:
|
script:
|
||||||
- make all
|
- make tests
|
||||||
|
after_script:
|
||||||
|
- make clean
|
||||||
env:
|
env:
|
||||||
- ENABLE_POP3=0
|
- ENABLE_POP3=0
|
||||||
- ENABLE_POP3=1
|
- ENABLE_POP3=1
|
||||||
|
@ -14,7 +18,7 @@ env:
|
||||||
- SMTP_ONLY=0
|
- SMTP_ONLY=0
|
||||||
- SMTP_ONLY=1
|
- SMTP_ONLY=1
|
||||||
- SASL_PASSWD=
|
- SASL_PASSWD=
|
||||||
- SASL_PASSWD="bar.com username:password"
|
- SASL_PASSWD="external-domain.com username:password"
|
||||||
- ONE_DIR=0
|
- ONE_DIR=0
|
||||||
- ONE_DIR=1
|
- ONE_DIR=1
|
||||||
- SA_TAG=
|
- SA_TAG=
|
||||||
|
|
22
Makefile
22
Makefile
|
@ -20,15 +20,15 @@ run:
|
||||||
-v "`pwd`/test/config":/tmp/docker-mailserver \
|
-v "`pwd`/test/config":/tmp/docker-mailserver \
|
||||||
-v "`pwd`/test":/tmp/docker-mailserver-test \
|
-v "`pwd`/test":/tmp/docker-mailserver-test \
|
||||||
-v "`pwd`/test/onedir":/var/mail-state \
|
-v "`pwd`/test/onedir":/var/mail-state \
|
||||||
-e ENABLE_POP3=$ENABLE_POP3 \
|
-e ENABLE_POP3=$$ENABLE_POP3 \
|
||||||
-e ENABLE_FAIL2BAN=$ENABLE_FAIL2BAN \
|
-e ENABLE_FAIL2BAN=$$ENABLE_FAIL2BAN \
|
||||||
-e ENABLE_MANAGESIEVE=$ENABLE_MANAGESIEVE \
|
-e ENABLE_MANAGESIEVE=$$ENABLE_MANAGESIEVE \
|
||||||
-e SMTP_ONLY=$SMTP_ONLY \
|
-e SMTP_ONLY=$$SMTP_ONLY \
|
||||||
-e SA_TAG=$SA_TAG \
|
-e SA_TAG=$$SA_TAG \
|
||||||
-e SA_TAG2=$SA_TAG2 \
|
-e SA_TAG2=$$SA_TAG2 \
|
||||||
-e SA_KILL=$SA_KILL \
|
-e SA_KILL=$$SA_KILL \
|
||||||
-e SASL_PASSWD=$SASL_PASSWD \
|
-e SASL_PASSWD=$$SASL_PASSWD \
|
||||||
-e ONE_DIR=$ONE_DIR \
|
-e ONE_DIR=$$ONE_DIR \
|
||||||
-h mail.my-domain.com -t $(NAME)
|
-h mail.my-domain.com -t $(NAME)
|
||||||
# Wait for containers to fully start
|
# Wait for containers to fully start
|
||||||
sleep 20
|
sleep 20
|
||||||
|
@ -58,5 +58,5 @@ tests:
|
||||||
./test/bats/bats test/tests.bats
|
./test/bats/bats test/tests.bats
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
# Remove running test containers
|
# Remove running test container
|
||||||
docker rm -f mail mail_pop3 mail_smtponly mail_fail2ban fail-auth-mailer mail_disabled_amavis mail_disabled_spamassassin mail_disabled_clamav
|
docker rm -f mail
|
|
@ -27,16 +27,24 @@
|
||||||
[ "$status" -eq 0 ]
|
[ "$status" -eq 0 ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if [ $ENABLE_FAIL2BAN = 0 ]; then
|
||||||
|
|
||||||
@test "checking process: fail2ban (disabled in default configuration)" {
|
@test "checking process: fail2ban (disabled in default configuration)" {
|
||||||
run docker exec mail /bin/bash -c "ps aux --forest | grep -v grep | grep '/usr/bin/python /usr/bin/fail2ban-server'"
|
run docker exec mail /bin/bash -c "ps aux --forest | grep -v grep | grep '/usr/bin/python /usr/bin/fail2ban-server'"
|
||||||
[ "$status" -eq 1 ]
|
[ "$status" -eq 1 ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ $ENABLE_FAIL2BAN = 1 ]; then
|
||||||
|
|
||||||
@test "checking process: fail2ban (fail2ban server enabled)" {
|
@test "checking process: fail2ban (fail2ban server enabled)" {
|
||||||
run docker exec mail_fail2ban /bin/bash -c "ps aux --forest | grep -v grep | grep '/usr/bin/python /usr/bin/fail2ban-server'"
|
run docker exec mail_fail2ban /bin/bash -c "ps aux --forest | grep -v grep | grep '/usr/bin/python /usr/bin/fail2ban-server'"
|
||||||
[ "$status" -eq 0 ]
|
[ "$status" -eq 0 ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
@test "checking process: amavis (amavis disabled by DISABLE_AMAVIS)" {
|
@test "checking process: amavis (amavis disabled by DISABLE_AMAVIS)" {
|
||||||
run docker exec mail_disabled_amavis /bin/bash -c "ps aux --forest | grep -v grep | grep '/usr/sbin/amavisd-new'"
|
run docker exec mail_disabled_amavis /bin/bash -c "ps aux --forest | grep -v grep | grep '/usr/sbin/amavisd-new'"
|
||||||
[ "$status" -eq 1 ]
|
[ "$status" -eq 1 ]
|
||||||
|
@ -82,8 +90,6 @@
|
||||||
|
|
||||||
if [ $ENABLE_POP3 = 1 ]; then
|
if [ $ENABLE_POP3 = 1 ]; then
|
||||||
|
|
||||||
echo "Testing POP3"
|
|
||||||
|
|
||||||
@test "checking pop: server is ready" {
|
@test "checking pop: server is ready" {
|
||||||
run docker exec mail /bin/bash -c "nc -w 1 0.0.0.0 110 | grep '+OK'"
|
run docker exec mail /bin/bash -c "nc -w 1 0.0.0.0 110 | grep '+OK'"
|
||||||
[ "$status" -eq 0 ]
|
[ "$status" -eq 0 ]
|
||||||
|
@ -100,6 +106,8 @@ fi
|
||||||
# sasl
|
# sasl
|
||||||
#
|
#
|
||||||
|
|
||||||
|
if [ $SASL_PASSWD == "external-domain.com username:password" ]; then
|
||||||
|
|
||||||
@test "checking sasl: doveadm auth test works with good password" {
|
@test "checking sasl: doveadm auth test works with good password" {
|
||||||
run docker exec mail /bin/sh -c "doveadm auth test -x service=smtp user2@otherdomain.tld mypassword | grep 'auth succeeded'"
|
run docker exec mail /bin/sh -c "doveadm auth test -x service=smtp user2@otherdomain.tld mypassword | grep 'auth succeeded'"
|
||||||
[ "$status" -eq 0 ]
|
[ "$status" -eq 0 ]
|
||||||
|
@ -115,6 +123,8 @@ fi
|
||||||
[ "$status" -eq 0 ]
|
[ "$status" -eq 0 ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# logs
|
# logs
|
||||||
#
|
#
|
||||||
|
@ -261,23 +271,49 @@ fi
|
||||||
# spamassassin
|
# spamassassin
|
||||||
#
|
#
|
||||||
|
|
||||||
|
if [ -z $SA_TAG ]; then
|
||||||
@test "checking spamassassin: docker env variables are set correctly (default)" {
|
@test "checking spamassassin: docker env variables are set correctly (default)" {
|
||||||
run docker exec mail_pop3 /bin/sh -c "grep '\$sa_tag_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= 2.0'"
|
run docker exec mail_pop3 /bin/sh -c "grep '\$sa_tag_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= 2.0'"
|
||||||
[ "$status" -eq 0 ]
|
[ "$status" -eq 0 ]
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z $SA_TAG2 ]; then
|
||||||
|
@test "checking spamassassin: docker env variables are set correctly (default)" {
|
||||||
run docker exec mail_pop3 /bin/sh -c "grep '\$sa_tag2_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= 6.31'"
|
run docker exec mail_pop3 /bin/sh -c "grep '\$sa_tag2_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= 6.31'"
|
||||||
[ "$status" -eq 0 ]
|
[ "$status" -eq 0 ]
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z $SA_KILL ]; then
|
||||||
|
@test "checking spamassassin: docker env variables are set correctly (default)" {
|
||||||
run docker exec mail_pop3 /bin/sh -c "grep '\$sa_kill_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= 6.31'"
|
run docker exec mail_pop3 /bin/sh -c "grep '\$sa_kill_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= 6.31'"
|
||||||
[ "$status" -eq 0 ]
|
[ "$status" -eq 0 ]
|
||||||
}
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
@test "checking spamassassin: docker env variables are set correctly (custom)" {
|
|
||||||
run docker exec mail /bin/sh -c "grep '\$sa_tag_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= 1.0'"
|
if [ -n $SA_TAG ]; then
|
||||||
[ "$status" -eq 0 ]
|
@test "checking spamassassin: docker env variables are set correctly (default)" {
|
||||||
run docker exec mail /bin/sh -c "grep '\$sa_tag2_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= 2.0'"
|
run docker exec mail_pop3 /bin/sh -c "grep '\$sa_tag_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= $SA_TAG'"
|
||||||
[ "$status" -eq 0 ]
|
|
||||||
run docker exec mail /bin/sh -c "grep '\$sa_kill_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= 3.0'"
|
|
||||||
[ "$status" -eq 0 ]
|
[ "$status" -eq 0 ]
|
||||||
}
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n $SA_TAG2 ]; then
|
||||||
|
@test "checking spamassassin: docker env variables are set correctly (default)" {
|
||||||
|
run docker exec mail_pop3 /bin/sh -c "grep '\$sa_tag2_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= $SA_TAG2'"
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n $SA_KILL ]; then
|
||||||
|
@test "checking spamassassin: docker env variables are set correctly (default)" {
|
||||||
|
run docker exec mail_pop3 /bin/sh -c "grep '\$sa_kill_level_deflt' /etc/amavis/conf.d/20-debian_defaults | grep '= $SA_KILL'"
|
||||||
|
[ "$status" -eq 0 ]
|
||||||
|
}
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# opendkim
|
# opendkim
|
||||||
|
|
Loading…
Reference in New Issue