mirror of
https://github.com/systemd/systemd
synced 2024-07-21 10:17:21 +00:00
tests: add integration tests for vpick logic
This commit is contained in:
parent
7d93e4af80
commit
0345366ac3
|
@ -493,6 +493,20 @@ systemd-sysext unmerge
|
|||
rm -rf /run/extensions/app-reject
|
||||
rm /var/lib/extensions/app-nodistro.raw
|
||||
|
||||
# Some super basic test that RootImage= works with .v/ dirs
|
||||
VBASE="vtest$RANDOM"
|
||||
VDIR="/tmp/${VBASE}.v"
|
||||
mkdir "$VDIR"
|
||||
|
||||
ln -s "${image}.raw" "$VDIR/${VBASE}_33.raw"
|
||||
ln -s "${image}.raw" "$VDIR/${VBASE}_34.raw"
|
||||
ln -s "${image}.raw" "$VDIR/${VBASE}_35.raw"
|
||||
|
||||
systemd-run -P -p RootImage="$VDIR" cat /usr/lib/os-release | grep -q -F "MARKER=1"
|
||||
|
||||
rm "$VDIR/${VBASE}_33.raw" "$VDIR/${VBASE}_34.raw" "$VDIR/${VBASE}_35.raw"
|
||||
rmdir "$VDIR"
|
||||
|
||||
mkdir -p /run/machines /run/portables /run/extensions
|
||||
touch /run/machines/a.raw /run/portables/b.raw /run/extensions/c.raw
|
||||
|
||||
|
|
116
test/units/testsuite-74.vpick.sh
Executable file
116
test/units/testsuite-74.vpick.sh
Executable file
|
@ -0,0 +1,116 @@
|
|||
#!/usr/bin/env bash
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
set -eux
|
||||
set -o pipefail
|
||||
|
||||
at_exit() {
|
||||
set +e
|
||||
rm -rf /var/lib/machines/mymachine.raw.v
|
||||
rm -rf /var/lib/machines/mytree.v
|
||||
rm -rf /var/lib/machines/testroot.v
|
||||
umount -l /tmp/dotvroot
|
||||
rmdir /tmp/dotvroot
|
||||
}
|
||||
|
||||
trap at_exit EXIT
|
||||
|
||||
mkdir -p /var/lib/machines/mymachine.raw.v
|
||||
|
||||
touch /var/lib/machines/mymachine.raw.v/mymachine_7.5.13.raw
|
||||
touch /var/lib/machines/mymachine.raw.v/mymachine_7.5.14_x86-64.raw
|
||||
touch /var/lib/machines/mymachine.raw.v/mymachine_7.6.0_arm64.raw
|
||||
touch /var/lib/machines/mymachine.raw.v/mymachine_7.7.0_x86-64+0-5.raw
|
||||
|
||||
mkdir -p /var/lib/machines/mytree.v
|
||||
|
||||
mkdir /var/lib/machines/mytree.v/mytree_33.4
|
||||
mkdir /var/lib/machines/mytree.v/mytree_33.5
|
||||
mkdir /var/lib/machines/mytree.v/mytree_36.0+0-5
|
||||
mkdir /var/lib/machines/mytree.v/mytree_37.0_arm64+2-3
|
||||
mkdir /var/lib/machines/mytree.v/mytree_38.0_arm64+0-5
|
||||
|
||||
ARCH="$(busctl get-property org.freedesktop.systemd1 /org/freedesktop/systemd1 org.freedesktop.systemd1.Manager Architecture | cut -d\" -f 2)"
|
||||
|
||||
export SYSTEMD_LOG_LEVEL=debug
|
||||
|
||||
if [ "$ARCH" = "x86-64" ] ; then
|
||||
test "$(systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw)" = "/var/lib/machines/mymachine.raw.v/mymachine_7.5.14_x86-64.raw"
|
||||
|
||||
test "$(systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -V 7.5.13)" = "/var/lib/machines/mymachine.raw.v/mymachine_7.5.13.raw"
|
||||
test "$(systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -V 7.5.14)" = "/var/lib/machines/mymachine.raw.v/mymachine_7.5.14_x86-64.raw"
|
||||
(! systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -V 7.6.0)
|
||||
test "$(systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -V 7.7.0)" = "/var/lib/machines/mymachine.raw.v/mymachine_7.7.0_x86-64+0-5.raw"
|
||||
|
||||
systemd-dissect --discover | grep "/var/lib/machines/mymachine.raw.v/mymachine_7.5.14_x86-64.raw"
|
||||
elif [ "$ARCH" = "arm64" ] ; then
|
||||
test "$(systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw)" = "/var/lib/machines/mymachine.raw.v/mymachine_7.6.0_arm64.raw"
|
||||
|
||||
test "$(systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -V 7.5.13)" = "/var/lib/machines/mymachine.raw.v/mymachine_7.5.13.raw"
|
||||
(! systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -V 7.5.14)
|
||||
test "$(systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -V 7.6.0)" = "/var/lib/machines/mymachine.raw.v/mymachine_7.6.0_arm64.raw"
|
||||
(! systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -V 7.7.0)
|
||||
|
||||
systemd-dissect --discover | grep "/var/lib/machines/mymachine.raw.v/mymachine_7.6.0_arm64.raw"
|
||||
else
|
||||
test "$(systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw)" = "/var/lib/machines/mymachine.raw.v/mymachine_7.5.13.raw"
|
||||
|
||||
test "$(systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -V 7.5.13)" = "/var/lib/machines/mymachine.raw.v/mymachine_7.5.13.raw"
|
||||
(! systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -V 7.5.14)
|
||||
(! systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -V 7.6.0)
|
||||
(! systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -V 7.7.0)
|
||||
|
||||
systemd-dissect --discover | grep "/var/lib/machines/mymachine.raw.v/mymachine_7.5.13.raw"
|
||||
fi
|
||||
|
||||
test "$(systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -A x86-64)" = "/var/lib/machines/mymachine.raw.v/mymachine_7.5.14_x86-64.raw"
|
||||
test "$(systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -A arm64)" = "/var/lib/machines/mymachine.raw.v/mymachine_7.6.0_arm64.raw"
|
||||
(! systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -A ia64)
|
||||
|
||||
test "$(systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -A arm64 -p version)" = "7.6.0"
|
||||
test "$(systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -A arm64 -p type)" = "reg"
|
||||
test "$(systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -A arm64 -p filename)" = "mymachine_7.6.0_arm64.raw"
|
||||
test "$(systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -A arm64 -p arch)" = "arm64"
|
||||
|
||||
test "$(systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -A arm64 -t reg)" = "/var/lib/machines/mymachine.raw.v/mymachine_7.6.0_arm64.raw"
|
||||
(! systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -A arm64 -t dir)
|
||||
(! systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -A arm64 -t fifo)
|
||||
(! systemd-vpick /var/lib/machines/mymachine.raw.v --suffix=.raw -A arm64 -t sock)
|
||||
|
||||
if [ "$ARCH" != "arm64" ] ; then
|
||||
test "$(systemd-vpick /var/lib/machines/mytree.v)" = "/var/lib/machines/mytree.v/mytree_33.5/"
|
||||
test "$(systemd-vpick /var/lib/machines/mytree.v --type=dir)" = "/var/lib/machines/mytree.v/mytree_33.5/"
|
||||
else
|
||||
test "$(systemd-vpick /var/lib/machines/mytree.v)" = "/var/lib/machines/mytree.v/mytree_37.0_arm64+2-3/"
|
||||
test "$(systemd-vpick /var/lib/machines/mytree.v --type=dir)" = "/var/lib/machines/mytree.v/mytree_37.0_arm64+2-3/"
|
||||
fi
|
||||
|
||||
(! systemd-vpick /var/lib/machines/mytree.v --type=reg)
|
||||
|
||||
mkdir /tmp/dotvroot
|
||||
mount --bind / /tmp/dotvroot
|
||||
|
||||
mkdir /var/lib/machines/testroot.v
|
||||
mkdir /var/lib/machines/testroot.v/testroot_32
|
||||
ln -s /tmp/dotvroot /var/lib/machines/testroot.v/testroot_33
|
||||
mkdir /var/lib/machines/testroot.v/testroot_34
|
||||
|
||||
ls -l /var/lib/machines/testroot.v
|
||||
|
||||
test "$(systemd-vpick /var/lib/machines/testroot.v)" = /var/lib/machines/testroot.v/testroot_34/
|
||||
test "$(systemd-vpick --resolve=yes /var/lib/machines/testroot.v)" = /var/lib/machines/testroot.v/testroot_34/
|
||||
(! systemd-run --wait -p RootDirectory=/var/lib/machines/testroot.v /bin/true)
|
||||
|
||||
find /var/lib/machines/testroot.v/testroot_34
|
||||
rm -rf /var/lib/machines/testroot.v/testroot_34
|
||||
test "$(systemd-vpick /var/lib/machines/testroot.v)" = /var/lib/machines/testroot.v/testroot_33/
|
||||
test "$(systemd-vpick --resolve=yes /var/lib/machines/testroot.v)" = /tmp/dotvroot/
|
||||
systemd-run --wait -p RootDirectory=/var/lib/machines/testroot.v /bin/true
|
||||
|
||||
rm /var/lib/machines/testroot.v/testroot_33
|
||||
test "$(systemd-vpick /var/lib/machines/testroot.v)" = /var/lib/machines/testroot.v/testroot_32/
|
||||
test "$(systemd-vpick --resolve=yes /var/lib/machines/testroot.v)" = /var/lib/machines/testroot.v/testroot_32/
|
||||
(! systemd-run --wait -p RootDirectory=/var/lib/machines/testroot.v /bin/true)
|
||||
|
||||
rm -rf /var/lib/machines/testroot.v/testroot_32
|
||||
(! systemd-vpick /var/lib/machines/testroot.v)
|
||||
(! systemd-run --wait -p RootDirectory=/var/lib/machines/testroot.v /bin/true)
|
Loading…
Reference in a new issue