test: add simple test for validating some of the unit specifiers we support

(Also, sort list of test unit files in meson.build alphabetically, to
make future additions more systematic)
This commit is contained in:
Lennart Poettering 2017-10-11 14:07:51 +02:00
parent 14068e17f3
commit 9672b58398
3 changed files with 126 additions and 105 deletions

View File

@ -468,6 +468,10 @@ static void test_exec_unset_environment(Manager *m) {
test(m, "exec-unset-environment.service", 0, CLD_EXITED);
}
static void test_exec_specifier(Manager *m) {
test(m, "exec-specifier.service", 0, CLD_EXITED);
}
static int run_tests(UnitFileScope scope, const test_function_t *tests) {
const test_function_t *test = NULL;
Manager *m = NULL;
@ -529,6 +533,7 @@ int main(int argc, char *argv[]) {
static const test_function_t system_tests[] = {
test_exec_systemcall_system_mode_with_user,
test_exec_dynamic_user,
test_exec_specifier,
NULL,
};
int r;

View File

@ -1,18 +1,21 @@
test_data_files = '''
a.service
basic.target
b.service
basic.target
c.service
daughter.service
d.service
end.service
daughter.service
e.service
end.service
f.service
grandchild.service
g.service
grandchild.service
h.service
hello-after-sleep.target
hello.service
h.service
hwdb/10-bad.hwdb
journal-data/journal-1.txt
journal-data/journal-2.txt
parent-deep.slice
parent.slice
sched_idle_bad.service
@ -25,113 +28,111 @@ test_data_files = '''
sockets.target
son.service
sysinit.target
testsuite.target
timers.target
unstoppable.service
test-path/paths.target
test-path/basic.target
test-path/sysinit.target
test-path/path-changed.service
test-path/path-directorynotempty.service
test-path/path-existsglob.service
test-path/path-exists.service
test-path/path-makedirectory.service
test-path/path-modified.service
test-path/path-mycustomunit.service
test-path/path-service.service
test-path/path-changed.path
test-path/path-directorynotempty.path
test-path/path-existsglob.path
test-path/path-exists.path
test-path/path-makedirectory.path
test-path/path-modified.path
test-path/path-unit.path
test-execute/exec-bind-paths.service
test-execute/exec-environment-empty.service
test-execute/exec-environment-multiple.service
test-execute/exec-environment.service
test-execute/exec-passenvironment-absent.service
test-execute/exec-passenvironment-empty.service
test-execute/exec-passenvironment-repeated.service
test-execute/exec-passenvironment.service
test-execute/exec-group.service
test-execute/exec-group-nfsnobody.service
test-execute/exec-supplementarygroups.service
test-execute/exec-supplementarygroups-single-group.service
test-execute/exec-supplementarygroups-single-group-user.service
test-execute/exec-supplementarygroups-multiple-groups-default-group-user.service
test-execute/exec-supplementarygroups-multiple-groups-withgid.service
test-execute/exec-supplementarygroups-multiple-groups-withuid.service
test-execute/exec-dynamicuser-fixeduser.service
test-execute/exec-dynamicuser-fixeduser-one-supplementarygroup.service
test-execute/exec-dynamicuser-supplementarygroups.service
test-execute/exec-dynamicuser-state-dir.service
test-execute/exec-ignoresigpipe-no.service
test-execute/exec-ignoresigpipe-yes.service
test-execute/exec-personality-x86-64.service
test-execute/exec-personality-x86.service
test-execute/exec-personality-s390.service
test-execute/exec-personality-ppc64.service
test-execute/exec-personality-ppc64le.service
test-execute/exec-personality-aarch64.service
test-execute/exec-privatedevices-no.service
test-execute/exec-privatedevices-yes.service
test-execute/exec-privatedevices-no-capability-mknod.service
test-execute/exec-privatedevices-yes-capability-mknod.service
test-execute/exec-protectkernelmodules-no-capabilities.service
test-execute/exec-protectkernelmodules-yes-capabilities.service
test-execute/exec-protectkernelmodules-yes-mount-propagation.service
test-execute/exec-privatetmp-no.service
test-execute/exec-privatetmp-yes.service
test-execute/exec-readonlypaths.service
test-execute/exec-readonlypaths-mount-propagation.service
test-execute/exec-readwritepaths-mount-propagation.service
test-execute/exec-inaccessiblepaths-mount-propagation.service
test-execute/exec-inaccessiblepaths-proc.service
test-execute/exec-spec-interpolation.service
test-execute/exec-systemcallerrornumber.service
test-execute/exec-systemcallfilter-failing2.service
test-execute/exec-systemcallfilter-failing.service
test-execute/exec-systemcallfilter-not-failing2.service
test-execute/exec-systemcallfilter-not-failing.service
test-execute/exec-systemcallfilter-system-user.service
test-execute/exec-systemcallfilter-system-user-nfsnobody.service
test-execute/exec-unset-environment.service
test-execute/exec-user.service
test-execute/exec-user-nfsnobody.service
test-execute/exec-workingdirectory.service
test-execute/exec-umask-0177.service
test-execute/exec-umask-default.service
test-execute/exec-privatenetwork-yes.service
test-execute/exec-environmentfile.service
test-execute/exec-oomscoreadjust-positive.service
test-execute/exec-oomscoreadjust-negative.service
test-execute/exec-ioschedulingclass-best-effort.service
test-execute/exec-ioschedulingclass-idle.service
test-execute/exec-ioschedulingclass-none.service
test-execute/exec-ioschedulingclass-realtime.service
test-execute/exec-capabilityambientset-merge-nfsnobody.service
test-execute/exec-capabilityambientset-merge.service
test-execute/exec-capabilityambientset-nfsnobody.service
test-execute/exec-capabilityambientset.service
test-execute/exec-capabilityboundingset-invert.service
test-execute/exec-capabilityboundingset-merge.service
test-execute/exec-capabilityboundingset-reset.service
test-execute/exec-capabilityboundingset-simple.service
test-execute/exec-capabilityambientset.service
test-execute/exec-capabilityambientset-nfsnobody.service
test-execute/exec-capabilityambientset-merge.service
test-execute/exec-capabilityambientset-merge-nfsnobody.service
test-execute/exec-runtimedirectory.service
test-execute/exec-runtimedirectory-mode.service
test-execute/exec-runtimedirectory-owner.service
test-execute/exec-runtimedirectory-owner-nfsnobody.service
test-execute/exec-dynamicuser-fixeduser-one-supplementarygroup.service
test-execute/exec-dynamicuser-fixeduser.service
test-execute/exec-dynamicuser-state-dir.service
test-execute/exec-dynamicuser-supplementarygroups.service
test-execute/exec-environment-empty.service
test-execute/exec-environment-multiple.service
test-execute/exec-environment.service
test-execute/exec-environmentfile.service
test-execute/exec-group-nfsnobody.service
test-execute/exec-group.service
test-execute/exec-ignoresigpipe-no.service
test-execute/exec-ignoresigpipe-yes.service
test-execute/exec-inaccessiblepaths-mount-propagation.service
test-execute/exec-inaccessiblepaths-proc.service
test-execute/exec-ioschedulingclass-best-effort.service
test-execute/exec-ioschedulingclass-idle.service
test-execute/exec-ioschedulingclass-none.service
test-execute/exec-ioschedulingclass-realtime.service
test-execute/exec-oomscoreadjust-negative.service
test-execute/exec-oomscoreadjust-positive.service
test-execute/exec-passenvironment-absent.service
test-execute/exec-passenvironment-empty.service
test-execute/exec-passenvironment-repeated.service
test-execute/exec-passenvironment.service
test-execute/exec-personality-aarch64.service
test-execute/exec-personality-ppc64.service
test-execute/exec-personality-ppc64le.service
test-execute/exec-personality-s390.service
test-execute/exec-personality-x86-64.service
test-execute/exec-personality-x86.service
test-execute/exec-privatedevices-no-capability-mknod.service
test-execute/exec-privatedevices-no-capability-sys-rawio.service
test-execute/exec-privatedevices-no.service
test-execute/exec-privatedevices-yes-capability-mknod.service
test-execute/exec-privatedevices-yes-capability-sys-rawio.service
test-execute/exec-privatedevices-yes.service
test-execute/exec-privatenetwork-yes.service
test-execute/exec-privatetmp-no.service
test-execute/exec-privatetmp-yes.service
test-execute/exec-protectkernelmodules-no-capabilities.service
test-execute/exec-protectkernelmodules-yes-capabilities.service
test-execute/exec-protectkernelmodules-yes-mount-propagation.service
test-execute/exec-read-only-path-succeed.service
test-execute/exec-readonlypaths-mount-propagation.service
test-execute/exec-readonlypaths.service
test-execute/exec-readwritepaths-mount-propagation.service
test-execute/exec-restrict-namespaces-mnt-blacklist.service
test-execute/exec-restrict-namespaces-mnt.service
test-execute/exec-restrict-namespaces-no.service
test-execute/exec-restrict-namespaces-yes.service
test-execute/exec-restrict-namespaces-mnt.service
test-execute/exec-restrict-namespaces-mnt-blacklist.service
test-execute/exec-read-only-path-succeed.service
test-execute/exec-privatedevices-yes-capability-sys-rawio.service
test-execute/exec-privatedevices-no-capability-sys-rawio.service
hwdb/10-bad.hwdb
journal-data/journal-1.txt
journal-data/journal-2.txt
test-execute/exec-runtimedirectory-mode.service
test-execute/exec-runtimedirectory-owner-nfsnobody.service
test-execute/exec-runtimedirectory-owner.service
test-execute/exec-runtimedirectory.service
test-execute/exec-spec-interpolation.service
test-execute/exec-specifier.service
test-execute/exec-supplementarygroups-multiple-groups-default-group-user.service
test-execute/exec-supplementarygroups-multiple-groups-withgid.service
test-execute/exec-supplementarygroups-multiple-groups-withuid.service
test-execute/exec-supplementarygroups-single-group-user.service
test-execute/exec-supplementarygroups-single-group.service
test-execute/exec-supplementarygroups.service
test-execute/exec-systemcallerrornumber.service
test-execute/exec-systemcallfilter-failing.service
test-execute/exec-systemcallfilter-failing2.service
test-execute/exec-systemcallfilter-not-failing.service
test-execute/exec-systemcallfilter-not-failing2.service
test-execute/exec-systemcallfilter-system-user-nfsnobody.service
test-execute/exec-systemcallfilter-system-user.service
test-execute/exec-umask-0177.service
test-execute/exec-umask-default.service
test-execute/exec-unset-environment.service
test-execute/exec-user-nfsnobody.service
test-execute/exec-user.service
test-execute/exec-workingdirectory.service
test-path/basic.target
test-path/path-changed.path
test-path/path-changed.service
test-path/path-directorynotempty.path
test-path/path-directorynotempty.service
test-path/path-exists.path
test-path/path-exists.service
test-path/path-existsglob.path
test-path/path-existsglob.service
test-path/path-makedirectory.path
test-path/path-makedirectory.service
test-path/path-modified.path
test-path/path-modified.service
test-path/path-mycustomunit.service
test-path/path-service.service
test-path/path-unit.path
test-path/paths.target
test-path/sysinit.target
testsuite.target
timers.target
unstoppable.service
'''.split()
if conf.get('ENABLE_RESOLVE') == 1

View File

@ -0,0 +1,15 @@
[Service]
Type=oneshot
ExecStart=/usr/bin/test %n = exec-specifier.service
ExecStart=/usr/bin/test %N = exec-specifier
ExecStart=/usr/bin/test %p = exec-specifier
ExecStart=/usr/bin/test %P = exec/specifier
ExecStart=/usr/bin/test %f = /exec/specifier
ExecStart=/usr/bin/test %t = /run
ExecStart=/usr/bin/test %S = /var/lib
ExecStart=/usr/bin/test %C = /var/cache
ExecStart=/usr/bin/test %L = /var/log
ExecStart=/usr/bin/test %U = 0
# We don't test the other specifiers here, since they migh resolve to different
# things in different test environments