mirror of
https://github.com/systemd/systemd.git
synced 2025-09-20 05:44:42 +03:00
test: Add test cases for sysext ephemeral-import mode
This commit is contained in:
@@ -1784,6 +1784,81 @@ test ! -f "${fake_root}${hierarchy}/now-is-mutable" || die "now-is-mutable did n
|
|||||||
drop_env
|
drop_env
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# extension data in /var/lib/extensions.mutable/…, read-only hierarchy,
|
||||||
|
# ephemeral import mutability, so extension data contents are imported too
|
||||||
|
#
|
||||||
|
# mutable merged
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
fake_root=${fake_roots_dir}/ephemeral-import
|
||||||
|
hierarchy=/usr
|
||||||
|
|
||||||
|
prep_root "${fake_root}" "${hierarchy}"
|
||||||
|
gen_os_release "${fake_root}"
|
||||||
|
gen_test_ext_image "${fake_root}" "${hierarchy}"
|
||||||
|
|
||||||
|
ext_data_path=$(hierarchy_ext_mut_path "${fake_root}" "${hierarchy}")
|
||||||
|
prep_ext_mut "${ext_data_path}"
|
||||||
|
|
||||||
|
prep_ro_hierarchy "${fake_root}" "${hierarchy}"
|
||||||
|
|
||||||
|
touch "${fake_root}${hierarchy}/should-fail-on-read-only-fs" && die "${fake_root}${hierarchy} is not read-only"
|
||||||
|
|
||||||
|
# run systemd-sysext
|
||||||
|
SYSTEMD_SYSEXT_HIERARCHIES="${hierarchy}" systemd-sysext --root="${fake_root}" --mutable=ephemeral-import merge
|
||||||
|
|
||||||
|
touch "${fake_root}${hierarchy}/now-is-mutable" || die "${fake_root}${hierarchy} is not mutable"
|
||||||
|
check_usual_suspects_after_merge "${fake_root}" "${hierarchy}" e h u
|
||||||
|
test ! -f "${ext_data_path}/now-is-mutable" || die "now-is-mutable should not be stored in extension data"
|
||||||
|
|
||||||
|
SYSTEMD_SYSEXT_HIERARCHIES="${hierarchy}" systemd-sysext --root="${fake_root}" unmerge
|
||||||
|
|
||||||
|
check_usual_suspects_after_unmerge "${fake_root}" "${hierarchy}" h
|
||||||
|
test ! -f "${ext_data_path}/now-is-mutable" || die "now-is-mutable should not appear in writable storage after unmerge"
|
||||||
|
test ! -f "${fake_root}${hierarchy}/now-is-mutable" || die "now-is-mutable did not disappear from hierarchy after unmerge"
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# extension data in /var/lib/extensions.mutable/…, read-only hierarchy,
|
||||||
|
# ephemeral mutability through an env var, so extension data contents are
|
||||||
|
# imported too
|
||||||
|
#
|
||||||
|
# mutable merged
|
||||||
|
#
|
||||||
|
|
||||||
|
|
||||||
|
fake_root=${fake_roots_dir}/ephemeral-import-env-var
|
||||||
|
hierarchy=/usr
|
||||||
|
|
||||||
|
prep_env "ephemeral-import"
|
||||||
|
prep_root "${fake_root}" "${hierarchy}"
|
||||||
|
gen_os_release "${fake_root}"
|
||||||
|
gen_test_ext_image "${fake_root}" "${hierarchy}"
|
||||||
|
|
||||||
|
ext_data_path=$(hierarchy_ext_mut_path "${fake_root}" "${hierarchy}")
|
||||||
|
prep_ext_mut "${ext_data_path}"
|
||||||
|
|
||||||
|
prep_ro_hierarchy "${fake_root}" "${hierarchy}"
|
||||||
|
|
||||||
|
touch "${fake_root}${hierarchy}/should-fail-on-read-only-fs" && die "${fake_root}${hierarchy} is not read-only"
|
||||||
|
|
||||||
|
# run systemd-sysext
|
||||||
|
SYSTEMD_SYSEXT_HIERARCHIES="${hierarchy}" systemd-sysext --root="${fake_root}" merge
|
||||||
|
|
||||||
|
touch "${fake_root}${hierarchy}/now-is-mutable" || die "${fake_root}${hierarchy} is not mutable"
|
||||||
|
check_usual_suspects_after_merge "${fake_root}" "${hierarchy}" e h u
|
||||||
|
test ! -f "${ext_data_path}/now-is-mutable" || die "now-is-mutable should not be stored in extension data"
|
||||||
|
|
||||||
|
SYSTEMD_SYSEXT_HIERARCHIES="${hierarchy}" systemd-sysext --root="${fake_root}" unmerge
|
||||||
|
|
||||||
|
check_usual_suspects_after_unmerge "${fake_root}" "${hierarchy}" h
|
||||||
|
test ! -f "${ext_data_path}/now-is-mutable" || die "now-is-mutable should not appear in writable storage after unmerge"
|
||||||
|
test ! -f "${fake_root}${hierarchy}/now-is-mutable" || die "now-is-mutable did not disappear from hierarchy after unmerge"
|
||||||
|
drop_env
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# done
|
# done
|
||||||
#
|
#
|
||||||
|
Reference in New Issue
Block a user