test: add test cases for systemd-sysctl --save= and --revert=
This commit is contained in:
@@ -92,3 +92,134 @@ EOF
|
||||
assert_eq "$(cat /proc/sys/net/ipv4/conf/hoge/drop_gratuitous_arp)" "1"
|
||||
assert_eq "$(cat /proc/sys/net/ipv4/conf/hoge/bootp_relay)" "1"
|
||||
assert_eq "$(cat /proc/sys/net/ipv4/conf/hoge/disable_policy)" "0"
|
||||
|
||||
##########################
|
||||
# --save= and --revert=
|
||||
##########################
|
||||
(! /usr/lib/systemd/systemd-sysctl --save=)
|
||||
(! /usr/lib/systemd/systemd-sysctl --save=.)
|
||||
(! /usr/lib/systemd/systemd-sysctl --save=.conf)
|
||||
(! /usr/lib/systemd/systemd-sysctl --save=aaa/hoge.conf)
|
||||
(! /usr/lib/systemd/systemd-sysctl --save=../hoge.conf)
|
||||
(! /usr/lib/systemd/systemd-sysctl --revert=)
|
||||
(! /usr/lib/systemd/systemd-sysctl --revert=.)
|
||||
(! /usr/lib/systemd/systemd-sysctl --revert=.conf)
|
||||
(! /usr/lib/systemd/systemd-sysctl --revert=aaa/hoge.conf)
|
||||
(! /usr/lib/systemd/systemd-sysctl --revert=../hoge.conf)
|
||||
|
||||
# --save= requires positional arguments
|
||||
(! /usr/lib/systemd/systemd-sysctl --save=foo)
|
||||
|
||||
# Do not create an empty conf file.
|
||||
/usr/lib/systemd/systemd-sysctl \
|
||||
--prefix=/net/ipv4/conf/hoge --save=foo --inline "# comment only"
|
||||
[[ ! -e /run/sysctl.d/foo.conf ]]
|
||||
|
||||
echo 0 >/proc/sys/net/ipv4/conf/hoge/drop_gratuitous_arp
|
||||
echo 0 >/proc/sys/net/ipv4/conf/hoge/bootp_relay
|
||||
echo 0 >/proc/sys/net/ipv4/conf/hoge/disable_policy
|
||||
|
||||
/usr/lib/systemd/systemd-sysctl \
|
||||
--prefix=/net/ipv4/conf/hoge --save=foo --inline -- \
|
||||
'# This argument should be ignored' \
|
||||
'net.ipv4.conf.*.drop_gratuitous_arp=1' \
|
||||
'net.ipv4.*.*.bootp_relay=1' \
|
||||
'-net.ipv4.conf.all.bootp_relay' \
|
||||
'-net.ipv4.aaa.*.disable_policy=1' \
|
||||
'# Arguments with unsafe characters should be ignored' \
|
||||
$'foo\nbar.hoge=1' \
|
||||
$'foo.bar=4\n2'
|
||||
|
||||
assert_eq "$(cat /proc/sys/net/ipv4/conf/hoge/drop_gratuitous_arp)" "1"
|
||||
assert_eq "$(cat /proc/sys/net/ipv4/conf/hoge/bootp_relay)" "1"
|
||||
assert_eq "$(cat /proc/sys/net/ipv4/conf/hoge/disable_policy)" "0"
|
||||
|
||||
diff /run/sysctl.d/foo.conf - <<EOF
|
||||
# This is generated by systemd-sysctl.
|
||||
net/ipv4/conf/*/drop_gratuitous_arp = 1
|
||||
net/ipv4/*/*/bootp_relay = 1
|
||||
-net/ipv4/conf/all/bootp_relay
|
||||
-net/ipv4/aaa/*/disable_policy = 1
|
||||
EOF
|
||||
|
||||
echo 0 >/proc/sys/net/ipv4/conf/hoge/drop_gratuitous_arp
|
||||
echo 0 >/proc/sys/net/ipv4/conf/hoge/bootp_relay
|
||||
echo 0 >/proc/sys/net/ipv4/conf/hoge/disable_policy
|
||||
|
||||
/usr/lib/systemd/systemd-sysctl --prefix=/net/ipv4/conf/hoge --save=foo - <<EOF
|
||||
# This line should be ignored
|
||||
net.ipv4.conf.*.drop_gratuitous_arp=1
|
||||
net.ipv4.*.*.bootp_relay=1
|
||||
-net.ipv4.conf.all.bootp_relay
|
||||
-net.ipv4.aaa.*.disable_policy=1
|
||||
foo.bar=42
|
||||
EOF
|
||||
|
||||
assert_eq "$(cat /proc/sys/net/ipv4/conf/hoge/drop_gratuitous_arp)" "1"
|
||||
assert_eq "$(cat /proc/sys/net/ipv4/conf/hoge/bootp_relay)" "1"
|
||||
assert_eq "$(cat /proc/sys/net/ipv4/conf/hoge/disable_policy)" "0"
|
||||
|
||||
diff /run/sysctl.d/foo.conf - <<EOF
|
||||
# This is generated by systemd-sysctl.
|
||||
net/ipv4/conf/*/drop_gratuitous_arp = 1
|
||||
net/ipv4/*/*/bootp_relay = 1
|
||||
-net/ipv4/conf/all/bootp_relay
|
||||
-net/ipv4/aaa/*/disable_policy = 1
|
||||
foo/bar = 42
|
||||
EOF
|
||||
|
||||
echo 0 >/proc/sys/net/ipv4/conf/hoge/drop_gratuitous_arp
|
||||
echo 0 >/proc/sys/net/ipv4/conf/hoge/bootp_relay
|
||||
echo 0 >/proc/sys/net/ipv4/conf/hoge/disable_policy
|
||||
|
||||
# Verify that the saved .conf file is loaded.
|
||||
/usr/lib/systemd/systemd-sysctl --prefix=/net/ipv4/conf/hoge
|
||||
assert_eq "$(cat /proc/sys/net/ipv4/conf/hoge/drop_gratuitous_arp)" "1"
|
||||
assert_eq "$(cat /proc/sys/net/ipv4/conf/hoge/bootp_relay)" "1"
|
||||
assert_eq "$(cat /proc/sys/net/ipv4/conf/hoge/disable_policy)" "0"
|
||||
|
||||
echo 0 >/proc/sys/net/ipv4/conf/hoge/drop_gratuitous_arp
|
||||
echo 0 >/proc/sys/net/ipv4/conf/hoge/bootp_relay
|
||||
echo 0 >/proc/sys/net/ipv4/conf/hoge/disable_policy
|
||||
|
||||
# Check that the saved .conf file can be overridden.
|
||||
/usr/lib/systemd/systemd-sysctl --prefix=/net/ipv4/conf/hoge --save=foo /run/sysctl.d/foo.conf - <<EOF
|
||||
net.ipv4.conf.*.drop_gratuitous_arp=0
|
||||
net.ipv4.conf.hoge.disable_policy=1
|
||||
EOF
|
||||
assert_eq "$(cat /proc/sys/net/ipv4/conf/hoge/drop_gratuitous_arp)" "0"
|
||||
assert_eq "$(cat /proc/sys/net/ipv4/conf/hoge/bootp_relay)" "1"
|
||||
assert_eq "$(cat /proc/sys/net/ipv4/conf/hoge/disable_policy)" "1"
|
||||
|
||||
diff /run/sysctl.d/foo.conf - <<EOF
|
||||
# This is generated by systemd-sysctl.
|
||||
net/ipv4/*/*/bootp_relay = 1
|
||||
-net/ipv4/conf/all/bootp_relay
|
||||
-net/ipv4/aaa/*/disable_policy = 1
|
||||
foo/bar = 42
|
||||
net/ipv4/conf/*/drop_gratuitous_arp = 0
|
||||
net/ipv4/conf/hoge/disable_policy = 1
|
||||
EOF
|
||||
|
||||
echo 0 >/proc/sys/net/ipv4/conf/hoge/drop_gratuitous_arp
|
||||
echo 0 >/proc/sys/net/ipv4/conf/hoge/bootp_relay
|
||||
echo 0 >/proc/sys/net/ipv4/conf/hoge/disable_policy
|
||||
|
||||
/usr/lib/systemd/systemd-sysctl --revert=foo --prefix=/net/ipv4/conf/hoge
|
||||
[[ ! -e /run/sysctl.d/foo.conf ]]
|
||||
|
||||
# Assume that no saved sysctl .conf files modify these variables.
|
||||
assert_eq "$(cat /proc/sys/net/ipv4/conf/hoge/drop_gratuitous_arp)" "0"
|
||||
assert_eq "$(cat /proc/sys/net/ipv4/conf/hoge/bootp_relay)" "0"
|
||||
assert_eq "$(cat /proc/sys/net/ipv4/conf/hoge/disable_policy)" "0"
|
||||
|
||||
echo 0 >/proc/sys/net/ipv4/conf/hoge/drop_gratuitous_arp
|
||||
echo 0 >/proc/sys/net/ipv4/conf/hoge/bootp_relay
|
||||
echo 0 >/proc/sys/net/ipv4/conf/hoge/disable_policy
|
||||
|
||||
# Try again to test when foo.conf does not exist
|
||||
/usr/lib/systemd/systemd-sysctl --revert=foo --prefix=/net/ipv4/conf/hoge
|
||||
|
||||
assert_eq "$(cat /proc/sys/net/ipv4/conf/hoge/drop_gratuitous_arp)" "0"
|
||||
assert_eq "$(cat /proc/sys/net/ipv4/conf/hoge/bootp_relay)" "0"
|
||||
assert_eq "$(cat /proc/sys/net/ipv4/conf/hoge/disable_policy)" "0"
|
||||
|
||||
Reference in New Issue
Block a user