diff --git a/src/test/test-execute.c b/src/test/test-execute.c index 92efc09371..1ef6bb4efa 100644 --- a/src/test/test-execute.c +++ b/src/test/test-execute.c @@ -341,6 +341,13 @@ static void test_exec_dynamicuser(Manager *m) { test(m, "exec-dynamicuser-fixeduser-one-supplementarygroup.service", 0, CLD_EXITED); test(m, "exec-dynamicuser-supplementarygroups.service", 0, CLD_EXITED); test(m, "exec-dynamicuser-statedir.service", 0, CLD_EXITED); + + test(m, "exec-dynamicuser-statedir-migrate-step1.service", 0, CLD_EXITED); + test(m, "exec-dynamicuser-statedir-migrate-step2.service", 0, CLD_EXITED); + (void) rm_rf("/var/lib/test-dynamicuser-migrate", REMOVE_ROOT|REMOVE_PHYSICAL); + (void) rm_rf("/var/lib/test-dynamicuser-migrate2", REMOVE_ROOT|REMOVE_PHYSICAL); + (void) rm_rf("/var/lib/private/test-dynamicuser-migrate", REMOVE_ROOT|REMOVE_PHYSICAL); + (void) rm_rf("/var/lib/private/test-dynamicuser-migrate2", REMOVE_ROOT|REMOVE_PHYSICAL); } static void test_exec_environment(Manager *m) { diff --git a/test/meson.build b/test/meson.build index cd00186266..c50757a46b 100644 --- a/test/meson.build +++ b/test/meson.build @@ -56,6 +56,8 @@ test_data_files = ''' test-execute/exec-capabilityboundingset-simple.service test-execute/exec-dynamicuser-fixeduser-one-supplementarygroup.service test-execute/exec-dynamicuser-fixeduser.service + test-execute/exec-dynamicuser-statedir-migrate-step1.service + test-execute/exec-dynamicuser-statedir-migrate-step2.service test-execute/exec-dynamicuser-statedir.service test-execute/exec-dynamicuser-supplementarygroups.service test-execute/exec-environment-empty.service diff --git a/test/test-execute/exec-dynamicuser-statedir-migrate-step1.service b/test/test-execute/exec-dynamicuser-statedir-migrate-step1.service new file mode 100644 index 0000000000..83bdfb311a --- /dev/null +++ b/test/test-execute/exec-dynamicuser-statedir-migrate-step1.service @@ -0,0 +1,16 @@ +[Unit] +Description=Test DynamicUser= migrate StateDirectory= (preparation) + +[Service] +ExecStart=/bin/sh -c 'test -w /var/lib/test-dynamicuser-migrate' +ExecStart=/bin/sh -c 'test -w /var/lib/test-dynamicuser-migrate2/hoge' +ExecStart=/bin/sh -c 'test ! -L /var/lib/test-dynamicuser-migrate' +ExecStart=/bin/sh -c 'test ! -L /var/lib/test-dynamicuser-migrate2/hoge' +ExecStart=/bin/sh -c 'test -d /var/lib/test-dynamicuser-migrate' +ExecStart=/bin/sh -c 'test -d /var/lib/test-dynamicuser-migrate2/hoge' +ExecStart=/bin/sh -c 'touch /var/lib/test-dynamicuser-migrate/yay' +ExecStart=/bin/sh -c 'touch /var/lib/test-dynamicuser-migrate2/hoge/yayyay' + +Type=oneshot +DynamicUser=no +StateDirectory=test-dynamicuser-migrate test-dynamicuser-migrate2/hoge diff --git a/test/test-execute/exec-dynamicuser-statedir-migrate-step2.service b/test/test-execute/exec-dynamicuser-statedir-migrate-step2.service new file mode 100644 index 0000000000..8154922a2f --- /dev/null +++ b/test/test-execute/exec-dynamicuser-statedir-migrate-step2.service @@ -0,0 +1,24 @@ +[Unit] +Description=Test DynamicUser= migrate StateDirectory= (preparation) + +[Service] +ExecStart=/bin/sh -c 'test -w /var/lib/test-dynamicuser-migrate' +ExecStart=/bin/sh -c 'test -w /var/lib/test-dynamicuser-migrate2/hoge' +ExecStart=/bin/sh -c 'test -L /var/lib/test-dynamicuser-migrate' +ExecStart=/bin/sh -c 'test -L /var/lib/test-dynamicuser-migrate2/hoge' +ExecStart=/bin/sh -c 'test -d /var/lib/test-dynamicuser-migrate' +ExecStart=/bin/sh -c 'test -d /var/lib/test-dynamicuser-migrate2/hoge' +ExecStart=/bin/sh -c 'test -f /var/lib/test-dynamicuser-migrate/yay' +ExecStart=/bin/sh -c 'test -f /var/lib/test-dynamicuser-migrate2/hoge/yayyay' +ExecStart=/bin/sh -c 'test -d /var/lib/private/test-dynamicuser-migrate' +ExecStart=/bin/sh -c 'test -d /var/lib/private/test-dynamicuser-migrate2/hoge' +ExecStart=/bin/sh -c 'test -f /var/lib/private/test-dynamicuser-migrate/yay' +ExecStart=/bin/sh -c 'test -f /var/lib/private/test-dynamicuser-migrate2/hoge/yayyay' +ExecStart=/bin/sh -c 'touch /var/lib/test-dynamicuser-migrate/yay' +ExecStart=/bin/sh -c 'touch /var/lib/test-dynamicuser-migrate2/hoge/yayyay' +ExecStart=/bin/sh -c 'touch /var/lib/private/test-dynamicuser-migrate/yay' +ExecStart=/bin/sh -c 'touch /var/lib/private/test-dynamicuser-migrate2/hoge/yayyay' + +Type=oneshot +DynamicUser=yes +StateDirectory=test-dynamicuser-migrate test-dynamicuser-migrate2/hoge