diff --git a/test/helper-functions.bats b/test/helper-functions.bats index bdecaf10..a70366ee 100644 --- a/test/helper-functions.bats +++ b/test/helper-functions.bats @@ -1,13 +1,5 @@ load 'test_helper/common' -function setup() { - run_setup_file_if_necessary -} - -function teardown() { - run_teardown_file_if_necessary -} - function setup_file() { local PRIVATE_CONFIG PRIVATE_CONFIG="$(duplicate_config_for_container .)" @@ -25,10 +17,6 @@ function teardown_file() { docker rm -f mail_helper_functions } -@test "first" { - skip 'this test must come first to reliably identify when to run setup_file' -} - @test "check helper functions (network.sh): _sanitize_ipv4_to_subnet_cidr" { run docker exec mail_helper_functions bash -c "source /usr/local/bin/helpers/index.sh; _sanitize_ipv4_to_subnet_cidr 255.255.255.255/0" assert_output "0.0.0.0/0" @@ -37,7 +25,3 @@ function teardown_file() { run docker exec mail_helper_functions bash -c "source /usr/local/bin/helpers/index.sh; _sanitize_ipv4_to_subnet_cidr 192.168.255.14/32" assert_output "192.168.255.14/32" } - -@test "last" { - skip 'this test is only there to reliably mark the end for the teardown_file' -} diff --git a/test/mail_changedetector.bats b/test/mail_changedetector.bats index c73b0f17..7c43e4e0 100644 --- a/test/mail_changedetector.bats +++ b/test/mail_changedetector.bats @@ -4,14 +4,6 @@ load 'test_helper/common' # use `supervisorctl tail - changedetector` instead to increase log output. # Default `` appears to be around 1500. -function setup() { - run_setup_file_if_necessary -} - -function teardown() { - run_teardown_file_if_necessary -} - function setup_file() { local PRIVATE_CONFIG PRIVATE_CONFIG="$(duplicate_config_for_container . mail_changedetector_one)" @@ -36,11 +28,6 @@ function teardown_file() { docker rm -f mail_changedetector_two } -# this test must come first to reliably identify when to run setup_file -@test "first" { - skip 'Starting testing of changedetector' -} - @test "checking changedetector: servers are ready" { wait_for_service mail_changedetector_one changedetector wait_for_service mail_changedetector_two changedetector @@ -91,8 +78,3 @@ function teardown_file() { run docker exec mail_changedetector_one /bin/bash -c "supervisorctl tail -3000 changedetector" assert_output --partial "Removed stale lock" } - -# this test is only there to reliably mark the end for the teardown_file -@test "last" { - skip 'Finished testing of changedetector' -} diff --git a/test/mail_disabled_clamav_spamassassin.bats b/test/mail_disabled_clamav_spamassassin.bats index bbdbe42d..4928bf96 100644 --- a/test/mail_disabled_clamav_spamassassin.bats +++ b/test/mail_disabled_clamav_spamassassin.bats @@ -1,13 +1,5 @@ load 'test_helper/common' -setup() { - run_setup_file_if_necessary -} - -teardown() { - run_teardown_file_if_necessary -} - setup_file() { local PRIVATE_CONFIG PRIVATE_CONFIG="$(duplicate_config_for_container .)" @@ -29,10 +21,6 @@ teardown_file() { docker rm -f mail_disabled_clamav_spamassassin } -@test "first" { - skip 'only used to call setup_file from setup' -} - @test "checking process: clamav (clamav disabled by ENABLED_CLAMAV=0)" { run docker exec mail_disabled_clamav_spamassassin /bin/bash -c "ps aux --forest | grep -v grep | grep '/usr/sbin/clamd'" assert_failure @@ -57,7 +45,3 @@ teardown_file() { run docker exec mail_disabled_clamav_spamassassin /bin/bash -c "pkill -f clamd && sleep 10 && ps aux --forest | grep -v grep | grep '/usr/sbin/clamd'" assert_failure } - -@test "last" { - skip 'only used to call teardown_file from teardown' -} diff --git a/test/mail_fail2ban.bats b/test/mail_fail2ban.bats index 615e5f29..e4c255be 100644 --- a/test/mail_fail2ban.bats +++ b/test/mail_fail2ban.bats @@ -1,13 +1,5 @@ load 'test_helper/common' -function setup() { - run_setup_file_if_necessary -} - -function teardown() { - run_teardown_file_if_necessary -} - function setup_file() { local PRIVATE_CONFIG PRIVATE_CONFIG="$(duplicate_config_for_container .)" @@ -34,10 +26,6 @@ function teardown_file() { docker rm -f mail_fail2ban fail-auth-mailer } -@test "first" { - skip 'this test must come first to reliably identify when to run setup_file' -} - # # processes # @@ -163,7 +151,3 @@ function teardown_file() { run docker exec mail_fail2ban /bin/bash -c "pkill fail2ban && sleep 10 && ps aux --forest | grep -v grep | grep '/usr/bin/python3 /usr/bin/fail2ban-server'" assert_success } - -@test "last" { - skip 'this test is only there to reliably mark the end for the teardown_file' -} diff --git a/test/mail_fetchmail.bats b/test/mail_fetchmail.bats index dd84e579..7ed868b4 100644 --- a/test/mail_fetchmail.bats +++ b/test/mail_fetchmail.bats @@ -1,13 +1,5 @@ load 'test_helper/common' -function setup() { - run_setup_file_if_necessary -} - -function teardown() { - run_teardown_file_if_necessary -} - function setup_file() { local PRIVATE_CONFIG PRIVATE_CONFIG="$(duplicate_config_for_container .)" @@ -25,10 +17,6 @@ function teardown_file() { docker rm -f mail_fetchmail } -@test "first" { - skip 'this test must come first to reliably identify when to run setup_file' -} - # # processes # @@ -60,7 +48,3 @@ function teardown_file() { run docker exec mail_fetchmail /bin/bash -c "pkill fetchmail && sleep 10 && ps aux --forest | grep -v grep | grep '/usr/bin/fetchmail'" assert_success } - -@test "last" { - skip 'this test is only there to reliably mark the end for the teardown_file' -} diff --git a/test/mail_fetchmail_parallel.bats b/test/mail_fetchmail_parallel.bats index 5c641de0..e436bd0f 100644 --- a/test/mail_fetchmail_parallel.bats +++ b/test/mail_fetchmail_parallel.bats @@ -1,13 +1,5 @@ load 'test_helper/common' -function setup() { - run_setup_file_if_necessary -} - -function teardown() { - run_teardown_file_if_necessary -} - function setup_file() { local PRIVATE_CONFIG PRIVATE_CONFIG="$(duplicate_config_for_container .)" @@ -26,10 +18,6 @@ function teardown_file() { docker rm -f mail_fetchmail_parallel } -@test "first" { - skip 'this test must come first to reliably identify when to run setup_file' -} - # # processes # @@ -91,7 +79,3 @@ function teardown_file() { run docker exec mail_fetchmail_parallel /bin/bash -c "pkill fetchmail && sleep 10 && ps aux --forest | grep -v grep | grep '/usr/bin/fetchmail -f /etc/fetchmailrc.d/fetchmail-2.rc'" assert_success } - -@test "last" { - skip 'this test is only there to reliably mark the end for the teardown_file' -} diff --git a/test/mail_hostname.bats b/test/mail_hostname.bats index ae64ec18..f4a83f1b 100644 --- a/test/mail_hostname.bats +++ b/test/mail_hostname.bats @@ -1,8 +1,5 @@ load 'test_helper/common' -function setup() { - run_setup_file_if_necessary -} function setup_file() { local PRIVATE_CONFIG @@ -64,10 +61,6 @@ function setup_file() { docker exec mail_non_subdomain_hostname /bin/sh -c "nc 0.0.0.0 25 < /tmp/docker-mailserver-test/email-templates/existing-user1.txt" } -@test "first" { - skip 'only used to call setup_file from setup' -} - @test "checking SRS: SRS_DOMAINNAME is used correctly" { repeat_until_success_or_timeout 15 docker exec mail_srs_domainname grep "SRS_DOMAIN=srs.my-domain.com" /etc/default/postsrsd } @@ -196,7 +189,3 @@ function setup_file() { run docker stop -t 60 mail_domainname assert_success } - -@test "last" { - skip 'only used to call teardown_file from teardown' -} diff --git a/test/mail_lmtp_ip.bats b/test/mail_lmtp_ip.bats index d4f105bd..87fc2aeb 100644 --- a/test/mail_lmtp_ip.bats +++ b/test/mail_lmtp_ip.bats @@ -1,13 +1,5 @@ load 'test_helper/common' -setup() { - run_setup_file_if_necessary -} - -teardown() { - run_teardown_file_if_necessary -} - setup_file() { local PRIVATE_CONFIG PRIVATE_ETC PRIVATE_CONFIG="$(duplicate_config_for_container .)" @@ -28,10 +20,6 @@ teardown_file() { docker rm -f mail_lmtp_ip } -@test "first" { - skip 'only used to call setup_file from setup' -} - # # Postfix VIRTUAL_TRANSPORT # @@ -53,7 +41,3 @@ teardown_file() { assert_success assert_output 1 } - -@test "last" { - skip 'only used to call teardown_file from teardown' -} diff --git a/test/mail_pop3.bats b/test/mail_pop3.bats index 357367ef..fdc8fb41 100644 --- a/test/mail_pop3.bats +++ b/test/mail_pop3.bats @@ -1,13 +1,5 @@ load 'test_helper/common' -function setup() { - run_setup_file_if_necessary -} - -function teardown() { - run_teardown_file_if_necessary -} - function setup_file() { local PRIVATE_CONFIG PRIVATE_CONFIG="$(duplicate_config_for_container .)" @@ -25,10 +17,6 @@ function teardown_file() { docker rm -f mail_pop3 } -@test "first" { - skip 'this test must come first to reliably identify when to run setup_file' -} - # # pop # @@ -90,7 +78,3 @@ function teardown_file() { run docker exec mail_pop3 /bin/sh -c "postconf | grep '^mynetworks =' | egrep '[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}/32'" assert_success } - -@test "last" { - skip 'this test is only there to reliably mark the end for the teardown_file' -} diff --git a/test/mail_postscreen.bats b/test/mail_postscreen.bats index c006b812..3c25d14b 100644 --- a/test/mail_postscreen.bats +++ b/test/mail_postscreen.bats @@ -1,16 +1,10 @@ load 'test_helper/common' setup() { - run_setup_file_if_necessary - # Getting mail container IP MAIL_POSTSCREEN_IP=$(docker inspect --format '{{ .NetworkSettings.IPAddress }}' mail_postscreen) } -teardown() { - run_teardown_file_if_necessary -} - setup_file() { local PRIVATE_CONFIG PRIVATE_CONFIG="$(duplicate_config_for_container .)" @@ -33,10 +27,6 @@ teardown_file() { docker rm -f mail_postscreen mail_postscreen_sender } -@test "first" { - skip 'only used to call setup_file from setup' -} - @test "checking postscreen: talk too fast" { docker exec mail_postscreen_sender /bin/sh -c "nc ${MAIL_POSTSCREEN_IP} 25 < /tmp/docker-mailserver-test/auth/smtp-auth-login.txt" @@ -59,7 +49,3 @@ teardown_file() { repeat_until_success_or_timeout 10 run docker exec mail_postscreen grep 'PASS NEW ' /var/log/mail/mail.log assert_success } - -@test "last" { - skip 'only used to call teardown_file from teardown' -} diff --git a/test/mail_privacy.bats b/test/mail_privacy.bats index 9497c878..fe9a29e9 100644 --- a/test/mail_privacy.bats +++ b/test/mail_privacy.bats @@ -1,13 +1,5 @@ load 'test_helper/common' -function setup() { - run_setup_file_if_necessary -} - -function teardown() { - run_teardown_file_if_necessary -} - function setup_file() { local PRIVATE_CONFIG PRIVATE_CONFIG="$(duplicate_config_for_container .)" @@ -32,10 +24,6 @@ function teardown_file() { docker rm -f mail_privacy } -@test "first" { - skip 'this test must come first to reliably identify when to run setup_file' -} - # What this test should cover: https://github.com/docker-mailserver/docker-mailserver/issues/681 @test "checking postfix: remove privacy details of the sender" { docker exec mail_privacy /bin/sh -c "openssl s_client -quiet -starttls smtp -connect 0.0.0.0:587 < /tmp/docker-mailserver-test/email-templates/send-privacy-email.txt" @@ -49,7 +37,3 @@ function teardown_file() { assert_success assert_output 0 } - -@test "last" { - skip 'this test is only there to reliably mark the end for the teardown_file' -} diff --git a/test/mail_quotas_disabled.bats b/test/mail_quotas_disabled.bats index 13b61de4..c44d44a6 100644 --- a/test/mail_quotas_disabled.bats +++ b/test/mail_quotas_disabled.bats @@ -5,14 +5,6 @@ load 'test_helper/common' # When ENABLE_QUOTAS is explicitly disabled (ENABLE_QUOTAS=0), dovecot quota must not be enabled. -function setup() { - run_setup_file_if_necessary -} - -function teardown() { - run_teardown_file_if_necessary -} - function setup_file() { local PRIVATE_CONFIG PRIVATE_CONFIG="$(duplicate_config_for_container .)" @@ -30,10 +22,6 @@ function teardown_file() { docker rm -f mail_no_quotas } -@test "first" { - skip 'this test must come first to reliably identify when to run setup_file' -} - @test "checking dovecot: (ENABLE_QUOTAS=0) quota plugin is disabled" { run docker exec mail_no_quotas /bin/sh -c "grep '\$mail_plugins quota' /etc/dovecot/conf.d/10-mail.conf" assert_failure @@ -50,7 +38,3 @@ function teardown_file() { assert_failure } - -@test "last" { - skip 'this test is only there to reliably mark the end for the teardown_file' -} diff --git a/test/mail_smtponly.bats b/test/mail_smtponly.bats index 651368fe..3bba89ce 100644 --- a/test/mail_smtponly.bats +++ b/test/mail_smtponly.bats @@ -1,13 +1,5 @@ load 'test_helper/common' -function setup() { - run_setup_file_if_necessary -} - -function teardown() { - run_teardown_file_if_necessary -} - function setup_file() { local PRIVATE_CONFIG PRIVATE_CONFIG="$(duplicate_config_for_container .)" @@ -27,10 +19,6 @@ function teardown_file() { docker rm -f mail_smtponly } -@test "first" { - skip 'this test must come first to reliably identify when to run setup_file' -} - # # configuration checks # @@ -81,7 +69,3 @@ function teardown_file() { run docker exec mail_smtponly /bin/sh -c "cat /etc/opendkim/TrustedHosts | grep '172.16.0.0/12'" assert_success } - -@test "last" { - skip 'this test is only there to reliably mark the end for the teardown_file' -} diff --git a/test/mail_spam_bounced.bats b/test/mail_spam_bounced.bats index dc11bcf6..571e7129 100644 --- a/test/mail_spam_bounced.bats +++ b/test/mail_spam_bounced.bats @@ -11,13 +11,8 @@ load 'test_helper/common' # SPAMASSASSIN_SPAM_TO_INBOX=1 is covered in `mail_spam_junk_folder.bats`. # Original test PR: https://github.com/docker-mailserver/docker-mailserver/pull/1485 -function setup() { - run_setup_file_if_necessary -} - function teardown() { docker rm -f "${TEST_NAME}" - run_teardown_file_if_necessary } function setup_file() { @@ -28,10 +23,6 @@ function setup_file() { # function teardown_file() { # } -@test "first" { - skip 'this test must come first to reliably identify when to run setup_file' -} - @test "checking amavis: spam message is bounced (rejected)" { # shellcheck disable=SC2034 local TEST_DOCKER_ARGS=( @@ -44,10 +35,6 @@ function setup_file() { _should_bounce_spam } -@test "last" { - skip 'this test is only there to reliably mark the end for the teardown_file' -} - function _should_bounce_spam() { wait_for_smtp_port_in_container_to_respond "${TEST_NAME}" diff --git a/test/mail_special_use_folders.bats b/test/mail_special_use_folders.bats index 2fd7bdcd..8460190b 100644 --- a/test/mail_special_use_folders.bats +++ b/test/mail_special_use_folders.bats @@ -1,13 +1,5 @@ load 'test_helper/common' -setup() { - run_setup_file_if_necessary -} - -teardown() { - run_teardown_file_if_necessary -} - setup_file() { local PRIVATE_CONFIG PRIVATE_CONFIG="$(duplicate_config_for_container .)" @@ -28,11 +20,6 @@ teardown_file() { docker rm -f mail_special_use_folders } -@test "first" { - skip 'only used to call setup_file from setup' -} - - @test "checking normal delivery" { run docker exec mail_special_use_folders /bin/sh -c "nc 0.0.0.0 25 < /tmp/docker-mailserver-test/email-templates/existing-user1.txt" assert_success @@ -52,8 +39,3 @@ teardown_file() { assert_success assert_output 4 } - - -@test "last" { - skip 'only used to call teardown_file from teardown' -} diff --git a/test/mail_ssl_letsencrypt.bats b/test/mail_ssl_letsencrypt.bats index 25d4b03f..b7815626 100644 --- a/test/mail_ssl_letsencrypt.bats +++ b/test/mail_ssl_letsencrypt.bats @@ -40,23 +40,10 @@ function setup_file() { # function teardown_file() { # } -# Applies per test: -function setup() { - run_setup_file_if_necessary -} - function teardown() { docker rm -f "${TEST_NAME}" - run_teardown_file_if_necessary } - -# this test must come first to reliably identify when to run setup_file -@test "first" { - skip 'Starting testing of letsencrypt SSL' -} - - # Should detect and choose the cert for FQDN `mail.example.test` (HOSTNAME): @test "ssl(letsencrypt): Should default to HOSTNAME (mail.example.test)" { local TARGET_DOMAIN='mail.example.test' @@ -193,13 +180,6 @@ function teardown() { _acme_wildcard } - -# this test is only there to reliably mark the end for the teardown_file -@test "last" { - skip 'Finished testing of letsencrypt SSL' -} - - # # Test Methods # diff --git a/test/mail_ssl_manual.bats b/test/mail_ssl_manual.bats index a74ef65e..17679124 100644 --- a/test/mail_ssl_manual.bats +++ b/test/mail_ssl_manual.bats @@ -1,14 +1,6 @@ #!/usr/bin/env bats load 'test_helper/common' -function setup() { - run_setup_file_if_necessary -} - -function teardown() { - run_teardown_file_if_necessary -} - function setup_file() { # Internal copies made by `start-mailserver.sh`: export PRIMARY_KEY='/etc/dms/tls/key' @@ -46,10 +38,6 @@ function teardown_file() { docker rm -f mail_manual_ssl } -@test "first" { - skip 'this test must come first to reliably identify when to run setup_file' -} - @test "checking ssl: ENV vars provided are valid files" { assert docker exec mail_manual_ssl [ -f "${SSL_CERT_PATH}" ] assert docker exec mail_manual_ssl [ -f "${SSL_KEY_PATH}" ] @@ -121,7 +109,3 @@ function teardown_file() { sed -i '/someThingsChangedHere/d' "$(pwd)/test/test-files/ssl/${DOMAIN_SSL_MANUAL}/with_ca/ecdsa/key.ecdsa.pem" } - -@test "last" { - skip 'this test is only there to reliably mark the end for the teardown_file' -} diff --git a/test/mail_tls_dhparams.bats b/test/mail_tls_dhparams.bats index bf787e4f..99932c61 100644 --- a/test/mail_tls_dhparams.bats +++ b/test/mail_tls_dhparams.bats @@ -13,13 +13,8 @@ load 'test_helper/common' # - Verify Postfix and Dovecot use the custom `custom-dhe-params.pem` (contents is actually `ffdhe2048.pem`). # - A warning is raised about usage of potentially insecure parameters. -function setup() { - run_setup_file_if_necessary -} - function teardown() { docker rm -f mail_dhparams - run_teardown_file_if_necessary } function setup_file() { @@ -50,10 +45,6 @@ function setup_file() { # function teardown_file() { # } -@test "first" { - skip 'this test must come first to reliably identify when to run setup_file' -} - @test "testing tls: DH Parameters - Verify integrity of Default (ffdhe4096)" { # Reference used (22/04/2020): # https://english.ncsc.nl/publications/publications/2019/juni/01/it-security-guidelines-for-transport-layer-security-tls @@ -105,10 +96,6 @@ function setup_file() { should_emit_warning } -@test "last" { - skip 'this test is only there to reliably mark the end for the teardown_file' -} - function common_container_setup() { # shellcheck disable=SC2031 docker run -d --name mail_dhparams \ diff --git a/test/mail_with_imap.bats b/test/mail_with_imap.bats index a029603e..0a976984 100644 --- a/test/mail_with_imap.bats +++ b/test/mail_with_imap.bats @@ -1,14 +1,6 @@ load 'test_helper/common' -setup() { - run_setup_file_if_necessary -} - -teardown() { - run_teardown_file_if_necessary -} - setup_file() { local PRIVATE_CONFIG PRIVATE_CONFIG="$(duplicate_config_for_container .)" @@ -28,10 +20,6 @@ teardown_file() { docker rm -f mail_with_imap } -@test "first" { - skip 'only used to call setup_file from setup' -} - # # RIMAP # @@ -52,7 +40,3 @@ teardown_file() { run docker exec mail_with_imap /bin/sh -c "nc -w 5 0.0.0.0 25 < /tmp/docker-mailserver-test/auth/smtp-auth-login.txt | grep 'Authentication successful'" assert_success } - -@test "last" { - skip 'only used to call teardown_file from teardown' -} diff --git a/test/mail_with_ldap.bats b/test/mail_with_ldap.bats index cc2f1375..1fea71ad 100644 --- a/test/mail_with_ldap.bats +++ b/test/mail_with_ldap.bats @@ -1,13 +1,5 @@ load 'test_helper/common' -function setup() { - run_setup_file_if_necessary -} - -function teardown() { - run_teardown_file_if_necessary -} - function setup_file() { pushd test/docker-openldap/ || return 1 docker build -f Dockerfile -t ldap --no-cache . @@ -70,10 +62,6 @@ function teardown_file() { docker network rm "${DMS_TEST_NETWORK}" } -@test "first" { - skip 'only used to call setup_file from setup' -} - # processes @test "checking process: saslauthd (saslauthd server enabled)" { @@ -255,7 +243,3 @@ function teardown_file() { run docker exec mail_with_ldap /bin/bash -c "pkill saslauthd && sleep 10 && ps aux --forest | grep -v grep | grep '/usr/sbin/saslauthd'" assert_success } - -@test "last" { - skip 'only used to call teardown_file from teardown' -} diff --git a/test/mail_with_mdbox.bats b/test/mail_with_mdbox.bats index 8857cda6..bc8c3f67 100644 --- a/test/mail_with_mdbox.bats +++ b/test/mail_with_mdbox.bats @@ -1,13 +1,5 @@ load 'test_helper/common' -setup() { - run_setup_file_if_necessary -} - -teardown() { - run_teardown_file_if_necessary -} - setup_file() { local PRIVATE_CONFIG PRIVATE_CONFIG="$(duplicate_config_for_container .)" @@ -29,11 +21,6 @@ teardown_file() { docker rm -f mail_with_mdbox_format } -@test "first" { - skip 'this test must come first to reliably identify when to run setup_file' -} - - @test "checking dovecot mailbox format: mdbox file created" { run docker exec mail_with_mdbox_format /bin/sh -c "nc 0.0.0.0 25 < /tmp/docker-mailserver-test/email-templates/existing-user1.txt" assert_success @@ -41,8 +28,3 @@ teardown_file() { # shellcheck disable=SC2016 repeat_until_success_or_timeout 30 docker exec mail_with_mdbox_format /bin/sh -c '[ $(ls /var/mail/localhost.localdomain/user1/storage/m.1 | wc -l) -eq 1 ]' } - - -@test "last" { - skip 'only used to call teardown_file from teardown' -} diff --git a/test/mail_with_postgrey.bats b/test/mail_with_postgrey.bats index 5c1eccaf..6f1a8f61 100644 --- a/test/mail_with_postgrey.bats +++ b/test/mail_with_postgrey.bats @@ -1,13 +1,5 @@ load 'test_helper/common' -function setup() { - run_setup_file_if_necessary -} - -function teardown() { - run_teardown_file_if_necessary -} - function setup_file() { local PRIVATE_CONFIG PRIVATE_CONFIG="$(duplicate_config_for_container .)" @@ -30,10 +22,6 @@ function teardown_file() { docker rm -f mail_with_postgrey } -@test "first" { - skip 'this test must come first to reliably identify when to run setup_file' -} - @test "checking postgrey: /etc/postfix/main.cf correctly edited" { run docker exec mail_with_postgrey /bin/bash -c "grep 'zen.spamhaus.org, check_policy_service inet:127.0.0.1:10023' /etc/postfix/main.cf | wc -l" assert_success @@ -98,7 +86,3 @@ function teardown_file() { assert_success assert_output 1 } - -@test "last" { - skip 'this test is only there to reliably mark the end for the teardown_file' -} diff --git a/test/mail_with_relays.bats b/test/mail_with_relays.bats index 1c7c3e70..46a7121b 100644 --- a/test/mail_with_relays.bats +++ b/test/mail_with_relays.bats @@ -1,13 +1,5 @@ load 'test_helper/common' -function setup() { - run_setup_file_if_necessary -} - -function teardown() { - run_teardown_file_if_necessary -} - function setup_file() { # We use a temporary config directory since we'll be dynamically editing # it with setup.sh. @@ -33,10 +25,6 @@ function teardown_file() { rm -rf "${tmp_confdir}" } -@test "first" { - skip 'this test must come first to reliably identify when to run setup_file' -} - @test "checking relay hosts: default mapping is added from env vars" { run docker exec mail_with_relays grep -e domainone.tld /etc/postfix/relayhost_map assert_output -e '^@domainone.tld[[:space:]]+\[default.relay.com\]:2525$' @@ -85,7 +73,3 @@ function teardown_file() { assert_success assert_output 1 } - -@test "last" { - skip 'this test is only there to reliably mark the end for the teardown_file' -} diff --git a/test/mail_with_sdbox.bats b/test/mail_with_sdbox.bats index d4f8416e..c4535cfd 100644 --- a/test/mail_with_sdbox.bats +++ b/test/mail_with_sdbox.bats @@ -1,13 +1,5 @@ load 'test_helper/common' -setup() { - run_setup_file_if_necessary -} - -teardown() { - run_teardown_file_if_necessary -} - setup_file() { local PRIVATE_CONFIG PRIVATE_CONFIG="$(duplicate_config_for_container .)" @@ -29,11 +21,6 @@ teardown_file() { docker rm -f mail_with_sdbox_format } -@test "first" { - skip 'this test must come first to reliably identify when to run setup_file' -} - - @test "checking dovecot mailbox format: sdbox file created" { run docker exec mail_with_sdbox_format /bin/sh -c "nc 0.0.0.0 25 < /tmp/docker-mailserver-test/email-templates/existing-user1.txt" assert_success @@ -41,8 +28,3 @@ teardown_file() { # shellcheck disable=SC2016 repeat_until_success_or_timeout 30 docker exec mail_with_sdbox_format /bin/sh -c '[ $(ls /var/mail/localhost.localdomain/user1/mailboxes/INBOX/dbox-Mails/u.1 | wc -l) -eq 1 ]' } - - -@test "last" { - skip 'this test is only there to reliably mark the end for the teardown_file' -} diff --git a/test/open_dkim.bats b/test/open_dkim.bats index d687a8f8..32a8d4ca 100644 --- a/test/open_dkim.bats +++ b/test/open_dkim.bats @@ -6,11 +6,6 @@ IMAGE_NAME="${NAME:?Image name must be set}" CONTAINER_NAME='open-dkim' TEST_FILE='OpenDKIM :: ' -function setup -{ - run_setup_file_if_necessary -} - # WHY IS THIS CONTAINER EVEN CREATED WHEN MOST TESTS DO NOT USE IT? function setup_file { @@ -31,11 +26,6 @@ function setup_file wait_for_finished_setup_in_container "${CONTAINER_NAME}" } -function teardown -{ - run_teardown_file_if_necessary -} - function teardown_file { docker rm -f "${CONTAINER_NAME}" diff --git a/test/security_tls_cipherlists.bats b/test/security_tls_cipherlists.bats index fccf50c9..bff6158b 100644 --- a/test/security_tls_cipherlists.bats +++ b/test/security_tls_cipherlists.bats @@ -3,13 +3,8 @@ load 'test_helper/common' # Globals ${BATS_TMPDIR} and ${NAME} # `${NAME}` defaults to `mailserver-testing:ci` -function setup() { - run_setup_file_if_necessary -} - function teardown() { docker rm -f tls_test_cipherlists - run_teardown_file_if_necessary } function setup_file() { @@ -39,10 +34,6 @@ function teardown_file() { docker network rm "${NETWORK}" } -@test "first" { - skip 'this test must come first to reliably identify when to run setup_file' -} - @test "checking tls: cipher list - rsa intermediate" { check_ports 'rsa' 'intermediate' } @@ -246,7 +237,3 @@ function get_cipherlist() { echo "${CIPHER_LIST[${TARGET_QUERY}]}" fi } - -@test "last" { - skip 'this test is only there to reliably mark the end for the teardown_file' -} diff --git a/test/test_helper/common.bash b/test/test_helper/common.bash index 888554c5..72497276 100644 --- a/test/test_helper/common.bash +++ b/test/test_helper/common.bash @@ -118,49 +118,6 @@ function wait_for_finished_setup_in_container() { SETUP_FILE_MARKER="${BATS_TMPDIR}/$(basename "${BATS_TEST_FILENAME}").setup_file" -function native_setup_teardown_file_support() { - local VERSION_REGEX='([0-9]+)\.([0-9]+)\.([0-9]+)' - # bats versions that support setup_file out of the box don't need this - if [[ "${BATS_VERSION}" =~ ${VERSION_REGEX} ]]; then - numeric_version=$(( (BASH_REMATCH[1] * 100 + BASH_REMATCH[2]) * 100 + BASH_REMATCH[3] )) - if [[ ${numeric_version} -ge 10201 ]]; then - if [ "${BATS_TEST_NAME}" == 'test_first' ]; then - skip 'This version natively supports setup/teardown_file' - fi - return 0 - fi - fi - return 1 -} - -# use in setup() in conjunction with a `@test "first" {}` to trigger setup_file reliably -function run_setup_file_if_necessary() { - native_setup_teardown_file_support && return 0 - if [ "${BATS_TEST_NAME}" == 'test_first' ]; then - # prevent old markers from marking success or get an error if we cannot remove due to permissions - rm -f "${SETUP_FILE_MARKER}" - - setup_file - - touch "${SETUP_FILE_MARKER}" - else - if [ ! -f "${SETUP_FILE_MARKER}" ]; then - skip "setup_file failed" - return 1 - fi - fi -} - -# use in teardown() in conjunction with a `@test "last" {}` to trigger teardown_file reliably -function run_teardown_file_if_necessary() { - native_setup_teardown_file_support && return 0 - if [ "${BATS_TEST_NAME}" == 'test_last' ]; then - # cleanup setup file marker - rm -f "${SETUP_FILE_MARKER}" - teardown_file - fi -} - # get the private config path for the given container or test file, if no container name was given function private_config_path() { echo "${PWD}/test/duplicate_configs/${1:-$(basename "${BATS_TEST_FILENAME}")}" diff --git a/test/tests.bats b/test/tests.bats index 87a06ba3..13b06350 100644 --- a/test/tests.bats +++ b/test/tests.bats @@ -5,10 +5,6 @@ load 'test_helper/common' export IMAGE_NAME IMAGE_NAME="${NAME}" -setup() { - run_setup_file_if_necessary -} - setup_file() { local PRIVATE_CONFIG PRIVATE_CONFIG="$(duplicate_config_for_container . mail)" @@ -81,19 +77,10 @@ setup_file() { wait_for_empty_mail_queue_in_container mail } -teardown() { - run_teardown_file_if_necessary -} - teardown_file() { docker rm -f mail } -# this test must come first to reliably identify when to run setup_file -@test "first" { - skip 'Starting testing of letsencrypt SSL' -} - # # configuration checks # @@ -1253,7 +1240,3 @@ EOF run docker exec mail grep "Subject: Root Test Message" /var/mail/localhost.localdomain/user1/new/ -R assert_success } - -@test "last" { - skip 'this test is only there to reliably mark the end for the teardown_file (test.bats finished)' -}