test: correctly mask supporting services in tests

It turns out the "supporting services" were run in _all_ tests if
TEST-01-BASIC was run as the first test (which is usually the case),
since with the original condition in test_create_image() we would skip
the masking and then propagate the change to the default image used by
other tests. This has been causing multiple bogus test timeouts
(especially when the hwdb was being rebuilt in tests with short
timeouts, like TEST-52-HONORFIRSTSHUTDOWN).

Let's "fix" this by making the call to mask_supporting_services()
uncoditional and override the test_create_image() function in
TEST-01-BASIC to avoid the masking in this single case.
This commit is contained in:
Frantisek Sumsal 2021-06-22 12:30:24 +02:00
parent 907300c3c3
commit 179ca4d2b1
2 changed files with 13 additions and 7 deletions

View File

@ -9,6 +9,18 @@ TEST_REQUIRE_INSTALL_TESTS=0
# shellcheck source=test/test-functions
. "${TEST_BASE_DIR:?}/test-functions"
# Explicitly override the default test_create_image() function to avoid the
# call to mask_supporting_services(), since we want to run them in TEST-01-BASIC
test_create_image() {
create_empty_image_rootdir
# Create what will eventually be our root filesystem onto an overlay
(
LOG_LEVEL=5
setup_basic_environment
)
}
test_append_files() {
# install tests manually so the test is functional even when -Dinstall-tests=false
local dst="${1:?}/usr/lib/systemd/tests/testdata/units/"

View File

@ -2355,13 +2355,7 @@ test_create_image() {
(
LOG_LEVEL=5
setup_basic_environment
# We want to test all services in TEST-01-BASIC, but mask them in
# all other tests
if [[ "$TESTID" != "01" ]]; then
dinfo "Masking supporting services"
mask_supporting_services
fi
mask_supporting_services
)
}