2021-04-09 20:39:41 +03:00
#!/bin/bash
set -eux
set -o pipefail
2017-01-27 18:02:22 +03:00
_clear_service ( ) {
2021-04-09 20:49:32 +03:00
local SERVICE_NAME = " ${ 1 : ?_clear_service : missing argument } "
systemctl stop " $SERVICE_NAME .service " 2>/dev/null || :
rm -f /{ etc,run,usr/lib} /systemd/system/" $SERVICE_NAME " .service
rm -fr /{ etc,run,usr/lib} /systemd/system/" $SERVICE_NAME " .service.d
rm -fr /{ etc,run,usr/lib} /systemd/system/" $SERVICE_NAME " .service.{ wants,requires}
if [ [ $SERVICE_NAME = = *@ ] ] ; then
systemctl stop " $SERVICE_NAME " *.service 2>/dev/null || :
rm -f /{ etc,run,usr/lib} /systemd/system/" $SERVICE_NAME " *.service
rm -fr /{ etc,run,usr/lib} /systemd/system/" $SERVICE_NAME " *.service.d
rm -fr /{ etc,run,usr/lib} /systemd/system/" $SERVICE_NAME " *.service.{ wants,requires}
2020-03-21 18:30:27 +03:00
fi
2017-01-27 18:02:22 +03:00
}
clear_services ( ) {
2021-04-09 20:49:32 +03:00
for u in " $@ " ; do
_clear_service " $u "
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
done
systemctl daemon-reload
2017-01-27 18:02:22 +03:00
}
create_service ( ) {
2021-04-09 20:49:32 +03:00
local SERVICE_NAME = " ${ 1 : ?create_service : missing argument } "
clear_services " $SERVICE_NAME "
2017-01-27 18:02:22 +03:00
2021-04-09 20:49:32 +03:00
cat >/etc/systemd/system/" $SERVICE_NAME " .service <<EOF
2017-01-27 18:02:22 +03:00
[ Unit]
2021-04-09 20:49:32 +03:00
Description = $SERVICE_NAME unit
2017-01-27 18:02:22 +03:00
[ Service]
ExecStart = /bin/sleep 100000
EOF
2021-04-09 20:49:32 +03:00
mkdir -p /{ etc,run,usr/lib} /systemd/system/" $SERVICE_NAME " .service.d
mkdir -p /etc/systemd/system/" $SERVICE_NAME " .service.{ wants,requires}
mkdir -p /run/systemd/system/" $SERVICE_NAME " .service.{ wants,requires}
mkdir -p /usr/lib/systemd/system/" $SERVICE_NAME " .service.{ wants,requires}
2017-01-27 18:02:22 +03:00
}
create_services ( ) {
2021-04-09 20:49:32 +03:00
for u in " $@ " ; do
create_service " $u "
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
done
2017-01-27 18:02:22 +03:00
}
check_ok ( ) {
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
[ $# -eq 3 ] || return
2017-01-27 18:02:22 +03:00
2021-04-09 20:49:32 +03:00
x = " $( systemctl show --value -p " $2 " " $1 " ) "
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
case " $x " in
*$3 *) return 0 ; ;
*) return 1 ; ;
esac
2017-01-27 18:02:22 +03:00
}
check_ko ( ) {
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
! check_ok " $@ "
2017-01-27 18:02:22 +03:00
}
test_basic_dropins ( ) {
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
echo "Testing basic dropins..."
echo "*** test a wants b wants c"
2019-12-10 01:29:18 +03:00
create_services test15-a test15-b test15-c
ln -s ../test15-b.service /etc/systemd/system/test15-a.service.wants/
ln -s ../test15-c.service /etc/systemd/system/test15-b.service.wants/
check_ok test15-a Wants test15-b.service
check_ok test15-b Wants test15-c.service
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
echo "*** test a wants,requires b"
2019-12-10 01:29:18 +03:00
create_services test15-a test15-b test15-c
ln -s ../test15-b.service /etc/systemd/system/test15-a.service.wants/
ln -s ../test15-b.service /etc/systemd/system/test15-a.service.requires/
check_ok test15-a Wants test15-b.service
check_ok test15-a Requires test15-b.service
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
echo "*** test a wants nonexistent"
2019-12-10 01:29:18 +03:00
create_service test15-a
ln -s ../nonexistent.service /etc/systemd/system/test15-a.service.wants/
check_ok test15-a Wants nonexistent.service
systemctl start test15-a
systemctl stop test15-a
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
echo "*** test a requires nonexistent"
2019-12-10 01:29:18 +03:00
ln -sf ../nonexistent.service /etc/systemd/system/test15-a.service.requires/
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
systemctl daemon-reload
2019-12-10 01:29:18 +03:00
check_ok test15-a Requires nonexistent.service
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
# 'b' is already loaded when 'c' pulls it in via a dropin.
echo "*** test a,c require b"
2019-12-10 01:29:18 +03:00
create_services test15-a test15-b test15-c
ln -sf ../test15-b.service /etc/systemd/system/test15-a.service.requires/
ln -sf ../test15-b.service /etc/systemd/system/test15-c.service.requires/
systemctl start test15-a
check_ok test15-c Requires test15-b.service
systemctl stop test15-a test15-b
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
# 'b' is already loaded when 'c' pulls it in via an alias dropin.
echo "*** test a wants alias"
2019-12-10 01:29:18 +03:00
create_services test15-a test15-b test15-c
ln -sf test15-c.service /etc/systemd/system/test15-c1.service
ln -sf ../test15-c.service /etc/systemd/system/test15-a.service.wants/
ln -sf ../test15-c1.service /etc/systemd/system/test15-b.service.wants/
systemctl start test15-a
check_ok test15-a Wants test15-c.service
check_ok test15-b Wants test15-c.service
systemctl stop test15-a test15-c
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
2019-11-05 05:29:55 +03:00
echo "*** test service.d/ top level drop-in"
2019-12-10 01:29:18 +03:00
create_services test15-a test15-b
check_ko test15-a ExecCondition "/bin/echo a"
check_ko test15-b ExecCondition "/bin/echo b"
2019-11-05 05:29:55 +03:00
mkdir -p /usr/lib/systemd/system/service.d
cat >/usr/lib/systemd/system/service.d/override.conf <<EOF
2019-10-05 03:39:34 +03:00
[ Service]
ExecCondition = /bin/echo %n
EOF
2020-03-21 19:01:09 +03:00
systemctl daemon-reload
2019-12-10 01:29:18 +03:00
check_ok test15-a ExecCondition "/bin/echo test15-a"
check_ok test15-b ExecCondition "/bin/echo test15-b"
2019-11-05 05:29:55 +03:00
rm -rf /usr/lib/systemd/system/service.d
2019-10-05 03:39:34 +03:00
2019-12-10 01:29:18 +03:00
clear_services test15-a test15-b test15-c
2017-01-27 18:02:22 +03:00
}
2021-02-14 17:08:49 +03:00
test_linked_units ( ) {
echo "Testing linked units..."
echo "*** test linked unit (same basename)"
create_service test15-a
mv /etc/systemd/system/test15-a.service /
ln -s /test15-a.service /etc/systemd/system/
ln -s test15-a.service /etc/systemd/system/test15-b.service
check_ok test15-a Names test15-a.service
check_ok test15-a Names test15-b.service
echo "*** test linked unit (cross basename)"
mv /test15-a.service /test15-a@.scope
ln -fs /test15-a@.scope /etc/systemd/system/test15-a.service
systemctl daemon-reload
check_ok test15-a Names test15-a.service
check_ok test15-a Names test15-b.service
2021-03-07 14:27:55 +03:00
check_ko test15-a Names test15-a@ # test15-a@.scope is the symlink target.
# Make sure it is completely ignored.
2021-02-14 17:08:49 +03:00
rm /test15-a@.scope
clear_services test15-a test15-b
}
2019-12-27 17:36:49 +03:00
test_hierarchical_dropins ( ) {
echo "Testing hierarchical dropins..."
echo "*** test service.d/ top level drop-in"
create_services a-b-c
check_ko a-b-c ExecCondition "/bin/echo service.d"
check_ko a-b-c ExecCondition "/bin/echo a-.service.d"
check_ko a-b-c ExecCondition "/bin/echo a-b-.service.d"
check_ko a-b-c ExecCondition "/bin/echo a-b-c.service.d"
for dropin in service.d a-.service.d a-b-.service.d a-b-c.service.d; do
mkdir -p /usr/lib/systemd/system/$dropin
echo "
[ Service]
ExecCondition = /bin/echo $dropin
2021-04-08 01:09:55 +03:00
" >/usr/lib/systemd/system/ $dropin /override.conf
2020-03-21 19:01:09 +03:00
systemctl daemon-reload
2019-12-27 17:36:49 +03:00
check_ok a-b-c ExecCondition " /bin/echo $dropin "
done
for dropin in service.d a-.service.d a-b-.service.d a-b-c.service.d; do
rm -rf /usr/lib/systemd/system/$dropin
done
clear_services a-b-c
}
2017-01-27 18:02:22 +03:00
test_template_dropins ( ) {
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
echo "Testing template dropins..."
2017-01-27 18:02:22 +03:00
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
create_services foo bar@ yup@
2017-01-27 18:02:22 +03:00
2019-07-30 13:28:48 +03:00
# Declare some deps to check if the body was loaded
cat >>/etc/systemd/system/bar@.service <<EOF
[ Unit]
After = bar-template-after.device
EOF
cat >>/etc/systemd/system/yup@.service <<EOF
[ Unit]
After = yup-template-after.device
EOF
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
ln -s /etc/systemd/system/bar@.service /etc/systemd/system/foo.service.wants/bar@1.service
check_ok foo Wants bar@1.service
2017-01-27 18:02:22 +03:00
2019-07-30 13:28:48 +03:00
echo "*** test bar-alias@.service→bar@.service, but instance symlinks point to yup@.service ***"
ln -s bar@.service /etc/systemd/system/bar-alias@.service
ln -s bar@1.service /etc/systemd/system/bar-alias@1.service
ln -s yup@.service /etc/systemd/system/bar-alias@2.service
ln -s yup@3.service /etc/systemd/system/bar-alias@3.service
# create some dropin deps
mkdir -p /etc/systemd/system/bar@{ ,0,1,2,3} .service.requires/
mkdir -p /etc/systemd/system/yup@{ ,0,1,2,3} .service.requires/
mkdir -p /etc/systemd/system/bar-alias@{ ,0,1,2,3} .service.requires/
ln -s ../bar-template-requires.device /etc/systemd/system/bar@.service.requires/
ln -s ../bar-0-requires.device /etc/systemd/system/bar@0.service.requires/
ln -s ../bar-1-requires.device /etc/systemd/system/bar@1.service.requires/
ln -s ../bar-2-requires.device /etc/systemd/system/bar@2.service.requires/
ln -s ../bar-3-requires.device /etc/systemd/system/bar@3.service.requires/
ln -s ../yup-template-requires.device /etc/systemd/system/yup@.service.requires/
ln -s ../yup-0-requires.device /etc/systemd/system/yup@0.service.requires/
ln -s ../yup-1-requires.device /etc/systemd/system/yup@1.service.requires/
ln -s ../yup-2-requires.device /etc/systemd/system/yup@2.service.requires/
ln -s ../yup-3-requires.device /etc/systemd/system/yup@3.service.requires/
ln -s ../bar-alias-template-requires.device /etc/systemd/system/bar-alias@.service.requires/
ln -s ../bar-alias-0-requires.device /etc/systemd/system/bar-alias@0.service.requires/
ln -s ../bar-alias-1-requires.device /etc/systemd/system/bar-alias@1.service.requires/
ln -s ../bar-alias-2-requires.device /etc/systemd/system/bar-alias@2.service.requires/
ln -s ../bar-alias-3-requires.device /etc/systemd/system/bar-alias@3.service.requires/
systemctl daemon-reload
echo '*** bar@0 is aliased by bar-alias@0 ***'
systemctl show -p Names,Requires bar@0
systemctl show -p Names,Requires bar-alias@0
check_ok bar@0 Names bar@0
2019-07-18 14:11:28 +03:00
check_ok bar@0 Names bar-alias@0
2019-07-30 13:28:48 +03:00
check_ok bar@0 After bar-template-after.device
check_ok bar@0 Requires bar-0-requires.device
2019-07-18 14:11:28 +03:00
check_ok bar@0 Requires bar-alias-0-requires.device
2019-07-30 13:28:48 +03:00
check_ok bar@0 Requires bar-template-requires.device
2019-07-18 14:11:28 +03:00
check_ok bar@0 Requires bar-alias-template-requires.device
2019-07-30 13:28:48 +03:00
check_ko bar@0 Requires yup-template-requires.device
check_ok bar-alias@0 After bar-template-after.device
check_ok bar-alias@0 Requires bar-0-requires.device
check_ok bar-alias@0 Requires bar-alias-0-requires.device
check_ok bar-alias@0 Requires bar-template-requires.device
check_ok bar-alias@0 Requires bar-alias-template-requires.device
check_ko bar-alias@0 Requires yup-template-requires.device
check_ko bar-alias@0 Requires yup-0-requires.device
echo '*** bar@1 is aliased by bar-alias@1 ***'
systemctl show -p Names,Requires bar@1
systemctl show -p Names,Requires bar-alias@1
check_ok bar@1 Names bar@1
2019-07-18 14:11:28 +03:00
check_ok bar@1 Names bar-alias@1
2019-07-30 13:28:48 +03:00
check_ok bar@1 After bar-template-after.device
check_ok bar@1 Requires bar-1-requires.device
2019-07-18 14:11:28 +03:00
check_ok bar@1 Requires bar-alias-1-requires.device
2019-07-30 13:28:48 +03:00
check_ok bar@1 Requires bar-template-requires.device
# See https://github.com/systemd/systemd/pull/13119#discussion_r308145418
2019-07-18 14:11:28 +03:00
check_ok bar@1 Requires bar-alias-template-requires.device
2019-07-30 13:28:48 +03:00
check_ko bar@1 Requires yup-template-requires.device
check_ko bar@1 Requires yup-1-requires.device
check_ok bar-alias@1 After bar-template-after.device
check_ok bar-alias@1 Requires bar-1-requires.device
check_ok bar-alias@1 Requires bar-alias-1-requires.device
check_ok bar-alias@1 Requires bar-template-requires.device
check_ok bar-alias@1 Requires bar-alias-template-requires.device
check_ko bar-alias@1 Requires yup-template-requires.device
check_ko bar-alias@1 Requires yup-1-requires.device
echo '*** bar-alias@2 aliases yup@2, bar@2 is independent ***'
systemctl show -p Names,Requires bar@2
systemctl show -p Names,Requires bar-alias@2
check_ok bar@2 Names bar@2
check_ko bar@2 Names bar-alias@2
check_ok bar@2 After bar-template-after.device
check_ok bar@2 Requires bar-2-requires.device
check_ko bar@2 Requires bar-alias-2-requires.device
check_ok bar@2 Requires bar-template-requires.device
check_ko bar@2 Requires bar-alias-template-requires.device
check_ko bar@2 Requires yup-template-requires.device
check_ko bar@2 Requires yup-2-requires.device
check_ko bar-alias@2 After bar-template-after.device
check_ko bar-alias@2 Requires bar-2-requires.device
check_ok bar-alias@2 Requires bar-alias-2-requires.device
check_ko bar-alias@2 Requires bar-template-requires.device
check_ok bar-alias@2 Requires bar-alias-template-requires.device
check_ok bar-alias@2 Requires yup-template-requires.device
check_ok bar-alias@2 Requires yup-2-requires.device
echo '*** bar-alias@3 aliases yup@3, bar@3 is independent ***'
systemctl show -p Names,Requires bar@3
systemctl show -p Names,Requires bar-alias@3
check_ok bar@3 Names bar@3
check_ko bar@3 Names bar-alias@3
check_ok bar@3 After bar-template-after.device
check_ok bar@3 Requires bar-3-requires.device
check_ko bar@3 Requires bar-alias-3-requires.device
check_ok bar@3 Requires bar-template-requires.device
check_ko bar@3 Requires bar-alias-template-requires.device
check_ko bar@3 Requires yup-template-requires.device
check_ko bar@3 Requires yup-3-requires.device
2019-07-18 14:11:28 +03:00
check_ko bar-alias@3 After bar-template-after.device
2019-07-30 13:28:48 +03:00
2019-07-18 14:11:28 +03:00
check_ko bar-alias@3 Requires bar-3-requires.device
2019-07-30 13:28:48 +03:00
check_ok bar-alias@3 Requires bar-alias-3-requires.device
2019-07-18 14:11:28 +03:00
check_ko bar-alias@3 Requires bar-template-requires.device
2019-07-30 13:28:48 +03:00
check_ok bar-alias@3 Requires bar-alias-template-requires.device
2019-07-18 14:11:28 +03:00
check_ok bar-alias@3 Requires yup-template-requires.device
check_ok bar-alias@3 Requires yup-3-requires.device
2019-07-30 13:28:48 +03:00
clear_services foo { bar,yup,bar-alias} @{ ,1,2,3}
2017-01-27 18:02:22 +03:00
}
test_alias_dropins ( ) {
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
echo "Testing alias dropins..."
echo "*** test a wants b1 alias of b"
2019-12-10 01:29:18 +03:00
create_services test15-a test15-b
ln -sf test15-b.service /etc/systemd/system/test15-b1.service
ln -sf ../test15-b1.service /etc/systemd/system/test15-a.service.wants/
check_ok test15-a Wants test15-b.service
systemctl start test15-a
systemctl --quiet is-active test15-b
systemctl stop test15-a test15-b
rm /etc/systemd/system/test15-b1.service
clear_services test15-a test15-b
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
2019-07-18 14:11:28 +03:00
# Check that dependencies don't vary.
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
echo "*** test 2"
2019-12-10 01:29:18 +03:00
create_services test15-a test15-x test15-y
mkdir -p /etc/systemd/system/test15-a1.service.wants/
ln -sf test15-a.service /etc/systemd/system/test15-a1.service
ln -sf ../test15-x.service /etc/systemd/system/test15-a.service.wants/
ln -sf ../test15-y.service /etc/systemd/system/test15-a1.service.wants/
check_ok test15-a1 Wants test15-x.service # see [1]
check_ok test15-a1 Wants test15-y.service
systemctl start test15-a
check_ok test15-a1 Wants test15-x.service # see [2]
check_ok test15-a1 Wants test15-y.service
systemctl stop test15-a test15-x test15-y
rm /etc/systemd/system/test15-a1.service
clear_services test15-a test15-x test15-y
2017-01-27 18:02:22 +03:00
}
test_masked_dropins ( ) {
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
echo "Testing masked dropins..."
2019-12-10 01:29:18 +03:00
create_services test15-a test15-b
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
# 'b' is masked for both deps
echo "*** test a wants,requires b is masked"
2019-12-10 01:29:18 +03:00
ln -sf /dev/null /etc/systemd/system/test15-a.service.wants/test15-b.service
ln -sf /dev/null /etc/systemd/system/test15-a.service.requires/test15-b.service
check_ko test15-a Wants test15-b.service
check_ko test15-a Requires test15-b.service
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
# 'a' wants 'b' and 'b' is masked at a lower level
echo "*** test a wants b, mask override"
2019-12-10 01:29:18 +03:00
ln -sf ../test15-b.service /etc/systemd/system/test15-a.service.wants/test15-b.service
ln -sf /dev/null /usr/lib/systemd/system/test15-a.service.wants/test15-b.service
check_ok test15-a Wants test15-b.service
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
# 'a' wants 'b' and 'b' is masked at a higher level
echo "*** test a wants b, mask"
2019-12-10 01:29:18 +03:00
ln -sf /dev/null /etc/systemd/system/test15-a.service.wants/test15-b.service
ln -sf ../test15-b.service /usr/lib/systemd/system/test15-a.service.wants/test15-b.service
check_ko test15-a Wants test15-b.service
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
# 'a' is masked but has an override config file
echo "*** test a is masked but has an override"
2019-12-10 01:29:18 +03:00
create_services test15-a test15-b
ln -sf /dev/null /etc/systemd/system/test15-a.service
cat >/usr/lib/systemd/system/test15-a.service.d/override.conf <<EOF
2018-03-02 08:07:27 +03:00
[ Unit]
2019-12-10 01:29:18 +03:00
After = test15-b.service
2018-03-02 08:07:27 +03:00
EOF
2019-12-10 01:29:18 +03:00
check_ok test15-a UnitFileState masked
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
# 'b1' is an alias for 'b': masking 'b' dep should not influence 'b1' dep
echo "*** test a wants b, b1, and one is masked"
2019-12-10 01:29:18 +03:00
create_services test15-a test15-b
ln -sf test15-b.service /etc/systemd/system/test15-b1.service
ln -sf /dev/null /etc/systemd/system/test15-a.service.wants/test15-b.service
ln -sf ../test15-b1.service /usr/lib/systemd/system/test15-a.service.wants/test15-b1.service
systemctl cat test15-a
systemctl show -p Wants,Requires test15-a
systemctl cat test15-b1
systemctl show -p Wants,Requires test15-b1
check_ok test15-a Wants test15-b.service
check_ko test15-a Wants test15-b1.service # the alias does not show up in the list of units
rm /etc/systemd/system/test15-b1.service
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
# 'b1' is an alias for 'b': masking 'b1' should not influence 'b' dep
echo "*** test a wants b, alias dep is masked"
2019-12-10 01:29:18 +03:00
create_services test15-a test15-b
ln -sf test15-b.service /etc/systemd/system/test15-b1.service
ln -sf /dev/null /etc/systemd/system/test15-a.service.wants/test15-b1.service
ln -sf ../test15-b.service /usr/lib/systemd/system/test15-a.service.wants/test15-b.service
check_ok test15-a Wants test15-b.service
check_ko test15-a Wants test15-b1.service # the alias does not show up in the list of units
rm /etc/systemd/system/test15-b1.service
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
# 'a' has Wants=b.service but also has a masking
# dropin 'b': 'b' should still be pulled in.
echo "*** test a wants b both ways"
2019-12-10 01:29:18 +03:00
create_services test15-a test15-b
ln -sf /dev/null /etc/systemd/system/test15-a.service.wants/test15-b.service
cat >/usr/lib/systemd/system/test15-a.service.d/wants-b.conf<<EOF
2017-01-27 18:02:22 +03:00
[ Unit]
2019-12-10 01:29:18 +03:00
Wants = test15-b.service
2017-01-27 18:02:22 +03:00
EOF
2019-12-10 01:29:18 +03:00
check_ok test15-a Wants test15-b.service
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
# mask a dropin that points to an nonexistent unit.
echo "*** test a wants nonexistent is masked"
2019-12-10 01:29:18 +03:00
create_services test15-a
ln -sf /dev/null /etc/systemd/system/test15-a.service.requires/nonexistent.service
ln -sf ../nonexistent.service /usr/lib/systemd/system/test15-a.service.requires/
check_ko test15-a Requires nonexistent.service
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
# 'b' is already loaded when 'c' pulls it in via a dropin but 'b' is
# masked at a higher level.
echo "*** test a wants b is masked"
2019-12-10 01:29:18 +03:00
create_services test15-a test15-b test15-c
ln -sf ../test15-b.service /etc/systemd/system/test15-a.service.requires/
ln -sf ../test15-b.service /run/systemd/system/test15-c.service.requires/
ln -sf /dev/null /etc/systemd/system/test15-c.service.requires/test15-b.service
systemctl start test15-a
check_ko test15-c Requires test15-b.service
systemctl stop test15-a test15-b
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
# 'b' is already loaded when 'c' pulls it in via a dropin but 'b' is
# masked at a lower level.
echo "*** test a requires b is masked"
2019-12-10 01:29:18 +03:00
create_services test15-a test15-b test15-c
ln -sf ../test15-b.service /etc/systemd/system/test15-a.service.requires/
ln -sf ../test15-b.service /etc/systemd/system/test15-c.service.requires/
ln -sf /dev/null /run/systemd/system/test15-c.service.requires/test15-b.service
systemctl start test15-a
check_ok test15-c Requires test15-b.service
systemctl stop test15-a test15-b
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
# 'a' requires 2 aliases of 'b' and one of them is a mask.
echo "*** test a requires alias of b, other alias masked"
2019-12-10 01:29:18 +03:00
create_services test15-a test15-b
ln -sf test15-b.service /etc/systemd/system/test15-b1.service
ln -sf test15-b.service /etc/systemd/system/test15-b2.service
ln -sf /dev/null /etc/systemd/system/test15-a.service.requires/test15-b1.service
ln -sf ../test15-b1.service /run/systemd/system/test15-a.service.requires/
ln -sf ../test15-b2.service /usr/lib/systemd/system/test15-a.service.requires/
check_ok test15-a Requires test15-b
scripts: use 4 space indentation
We had all kinds of indentation: 2 sp, 3 sp, 4 sp, 8 sp, and mixed.
4 sp was the most common, in particular the majority of scripts under test/
used that. Let's standarize on 4 sp, because many commandlines are long and
there's a lot of nesting, and with 8sp indentation less stuff fits. 4 sp
also seems to be the default indentation, so this will make it less likely
that people will mess up if they don't load the editor config. (I think people
often use vi, and vi has no support to load project-wide configuration
automatically. We distribute a .vimrc file, but it is not loaded by default,
and even the instructions in it seem to discourage its use for security
reasons.)
Also remove the few vim config lines that were left. We should either have them
on all files, or none.
Also remove some strange stuff like '#!/bin/env bash', yikes.
2019-04-04 15:10:42 +03:00
# Same as above but now 'b' is masked.
echo "*** test a requires alias of b, b dep masked"
2019-12-10 01:29:18 +03:00
create_services test15-a test15-b
ln -sf test15-b.service /etc/systemd/system/test15-b1.service
ln -sf test15-b.service /etc/systemd/system/test15-b2.service
ln -sf ../test15-b1.service /run/systemd/system/test15-a.service.requires/
ln -sf ../test15-b2.service /usr/lib/systemd/system/test15-a.service.requires/
ln -sf /dev/null /etc/systemd/system/test15-a.service.requires/test15-b.service
check_ok test15-a Requires test15-b
clear_services test15-a test15-b
2017-01-27 18:02:22 +03:00
}
2019-12-17 16:47:37 +03:00
test_invalid_dropins ( ) {
echo "Testing invalid dropins..."
# Assertion failed on earlier versions, command exits unsuccessfully on later versions
systemctl cat nonexistent@.service || true
create_services a
systemctl daemon-reload
# Assertion failed on earlier versions, command exits unsuccessfully on later versions
systemctl cat a@.service || true
systemctl stop a
clear_services a
return 0
}
2017-01-27 18:02:22 +03:00
test_basic_dropins
2021-02-14 17:08:49 +03:00
test_linked_units
2019-12-27 17:36:49 +03:00
test_hierarchical_dropins
2017-01-27 18:02:22 +03:00
test_template_dropins
test_alias_dropins
test_masked_dropins
2019-12-17 16:47:37 +03:00
test_invalid_dropins
2017-01-27 18:02:22 +03:00
touch /testok