mirror of
https://github.com/systemd/systemd.git
synced 2025-02-23 13:57:33 +03:00
test: exercise systemd-dissect --mount in TEST-50-DISSECT
This commit is contained in:
parent
42165319b1
commit
6939873412
@ -25,7 +25,9 @@ test_create_image() {
|
|||||||
instmods loop =block
|
instmods loop =block
|
||||||
instmods squashfs =squashfs
|
instmods squashfs =squashfs
|
||||||
instmods dm_verity =md
|
instmods dm_verity =md
|
||||||
|
install_dmevent
|
||||||
generate_module_dependencies
|
generate_module_dependencies
|
||||||
|
inst_binary md5sum
|
||||||
inst_binary mksquashfs
|
inst_binary mksquashfs
|
||||||
inst_binary veritysetup
|
inst_binary veritysetup
|
||||||
)
|
)
|
||||||
|
@ -4,27 +4,50 @@
|
|||||||
set -ex
|
set -ex
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
|
cleanup()
|
||||||
|
{
|
||||||
|
if [ -z "${image_dir}" ]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
rm -rf "${image_dir}"
|
||||||
|
}
|
||||||
|
|
||||||
cd /tmp
|
cd /tmp
|
||||||
|
|
||||||
image=$(mktemp -d -t -p /tmp tmp.XXXXXX)
|
image_dir="$(mktemp -d -t -p /tmp tmp.XXXXXX)"
|
||||||
if [ -z "${image}" ] || [ ! -d "${image}" ]; then
|
if [ -z "${image_dir}" ] || [ ! -d "${image_dir}" ]; then
|
||||||
echo "Could not create temporary directory with mktemp under /tmp"
|
echo "mktemp under /tmp failed"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
trap cleanup EXIT
|
||||||
|
|
||||||
|
image="${image_dir}/img"
|
||||||
mkdir -p ${image}/usr/lib ${image}/etc
|
mkdir -p ${image}/usr/lib ${image}/etc
|
||||||
cp /usr/lib/os-release ${image}/usr/lib/
|
cp /usr/lib/os-release ${image}/usr/lib/
|
||||||
cp /etc/machine-id /etc/os-release ${image}/etc/
|
cp /etc/machine-id /etc/os-release ${image}/etc/
|
||||||
mksquashfs ${image} ${image}.raw
|
mksquashfs ${image} ${image}.raw
|
||||||
veritysetup format ${image}.raw ${image}.verity | grep '^Root hash:' | cut -f2 | tr -d '\n' > ${image}.roothash
|
veritysetup format ${image}.raw ${image}.verity | grep '^Root hash:' | cut -f2 | tr -d '\n' > ${image}.roothash
|
||||||
|
roothash="$(cat ${image}.roothash)"
|
||||||
|
|
||||||
/usr/lib/systemd/systemd-dissect ${image}.raw | grep -q -F "Found read-only 'root' partition of type squashfs with verity"
|
/usr/lib/systemd/systemd-dissect ${image}.raw | grep -q -F "Found read-only 'root' partition of type squashfs with verity"
|
||||||
/usr/lib/systemd/systemd-dissect ${image}.raw | grep -q -F -f /usr/lib/os-release
|
/usr/lib/systemd/systemd-dissect ${image}.raw | grep -q -F -f /usr/lib/os-release
|
||||||
|
|
||||||
mv ${image}.verity ${image}.fooverity
|
mv ${image}.verity ${image}.fooverity
|
||||||
mv ${image}.roothash ${image}.foohash
|
mv ${image}.roothash ${image}.foohash
|
||||||
/usr/lib/systemd/systemd-dissect ${image}.raw --root-hash=`cat ${image}.foohash` --verity-data=${image}.fooverity | grep -q -F "Found read-only 'root' partition of type squashfs with verity"
|
/usr/lib/systemd/systemd-dissect ${image}.raw --root-hash=${roothash} --verity-data=${image}.fooverity | grep -q -F "Found read-only 'root' partition of type squashfs with verity"
|
||||||
/usr/lib/systemd/systemd-dissect ${image}.raw --root-hash=`cat ${image}.foohash` --verity-data=${image}.fooverity | grep -q -F -f /usr/lib/os-release
|
/usr/lib/systemd/systemd-dissect ${image}.raw --root-hash=${roothash} --verity-data=${image}.fooverity | grep -q -F -f /usr/lib/os-release
|
||||||
|
mv ${image}.fooverity ${image}.verity
|
||||||
|
mv ${image}.foohash ${image}.roothash
|
||||||
|
|
||||||
|
mkdir -p ${image_dir}/mount
|
||||||
|
/usr/lib/systemd/systemd-dissect --mount ${image}.raw ${image_dir}/mount
|
||||||
|
pushd ${image_dir}/mount/etc/
|
||||||
|
(cd /etc; md5sum os-release) | md5sum -c
|
||||||
|
cd ../usr/lib
|
||||||
|
(cd /usr/lib; md5sum os-release) | md5sum -c
|
||||||
|
popd
|
||||||
|
umount ${image_dir}/mount
|
||||||
|
|
||||||
echo OK > /testok
|
echo OK > /testok
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user