docker-mailserver/test/tests/parallel/set3/scripts/helper_functions.bats
Georg Lauterbach 638975922e
scripts: Rspamd stabilization pt. 1 (#3261)
* added checks whether OpenDKIM/OpenDMARC/policyd-spf are enabled
* added functions to check if VAR is 0/0 or an int

and also added tests.

I also adjusted the test file to not run in a container, because there
is no need. This also decreases test time, which, in turn, increases
maintainers' happiness.

* added more checks to Rspamd setup

I added the helpers from the previous commit to the Rspamd setup to make
the whole setup more robust, and indicate to the user that an ENV
variable's value is incorrect.

While we did not issues for this in the past, I believe it to be
worthwhile for the future.

* added canonical directory for users to place files in

This dir is canonical with DMS's optional configuration dirs, as it
lives in well-known volume mounts. Hence, users will not need to adjust
`/etc/rspamd/override.d` manually anymore, or mount a volume to this
place.

The docs explain this now, but the DKIM page needs a slight update on
this too I guess. I will follow-up here.

* misc minor improvements
* use variables for common directories
2023-04-23 12:22:54 +02:00

64 lines
1.7 KiB
Bash

load "${REPOSITORY_ROOT}/test/helper/common"
BATS_TEST_NAME_PREFIX='[Scripts] (helper functions) '
SOURCE_BASE_PATH="${REPOSITORY_ROOT:?Expected REPOSITORY_ROOT to be set}/target/scripts/helpers"
@test '(network.sh) _sanitize_ipv4_to_subnet_cidr' {
source "${SOURCE_BASE_PATH}/network.sh"
run _sanitize_ipv4_to_subnet_cidr '255.255.255.255/0'
assert_output '0.0.0.0/0'
run _sanitize_ipv4_to_subnet_cidr '192.168.255.14/20'
assert_output '192.168.240.0/20'
run _sanitize_ipv4_to_subnet_cidr '192.168.255.14/32'
assert_output '192.168.255.14/32'
}
@test '(utils.sh) _env_var_expect_zero_or_one' {
source "${SOURCE_BASE_PATH}/log.sh"
source "${SOURCE_BASE_PATH}/utils.sh"
ZERO=0
ONE=1
TWO=2
run _env_var_expect_zero_or_one ZERO
assert_success
run _env_var_expect_zero_or_one ONE
assert_success
run _env_var_expect_zero_or_one TWO
assert_failure
assert_output --partial "The value of 'TWO' is not zero or one ('2'), but was expected to be"
run _env_var_expect_zero_or_one
assert_failure
assert_output --partial "ENV var name must be provided to _env_var_expect_zero_or_one"
}
@test '(utils.sh) _env_var_expect_integer' {
source "${SOURCE_BASE_PATH}/log.sh"
source "${SOURCE_BASE_PATH}/utils.sh"
INTEGER=1234
NEGATIVE=-${INTEGER}
NaN=not_an_integer
run _env_var_expect_integer INTEGER
assert_success
run _env_var_expect_integer NEGATIVE
assert_success
run _env_var_expect_integer NaN
assert_failure
assert_output --partial "The value of 'NaN' is not an integer ('not_an_integer'), but was expected to be"
run _env_var_expect_integer
assert_failure
assert_output --partial "ENV var name must be provided to _env_var_expect_integer"
}