]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
test: Enable TEST-54-CREDS on mkosi
authorDaan De Meyer <daan.j.demeyer@gmail.com>
Tue, 14 May 2024 20:14:27 +0000 (22:14 +0200)
committerDaan De Meyer <daan.j.demeyer@gmail.com>
Tue, 14 May 2024 21:19:28 +0000 (23:19 +0200)
mkosi.images/system/initrd/mkosi.extra/usr/lib/systemd/system/initrdcred.service [new file with mode: 0644]
mkosi.images/system/mkosi.conf
test/TEST-54-CREDS/meson.build
test/TEST-54-CREDS/systemd.extra-unit.my-service.service [new file with mode: 0644]
test/TEST-54-CREDS/systemd.unit-dropin.my-service.service [new file with mode: 0644]
test/TEST-54-CREDS/systemd.unit-dropin.my-service.service~30-named.service [new file with mode: 0644]
test/TEST-55-OOMD/meson.build
test/meson.build

diff --git a/mkosi.images/system/initrd/mkosi.extra/usr/lib/systemd/system/initrdcred.service b/mkosi.images/system/initrd/mkosi.extra/usr/lib/systemd/system/initrdcred.service
new file mode 100644 (file)
index 0000000..2c709bc
--- /dev/null
@@ -0,0 +1,9 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+[Unit]
+Description=populate initrd credential dir for TEST-54-CREDS
+
+[Service]
+Type=oneshot
+RemainAfterExit=yes
+ExecStart=sh -c "mkdir -m 0755 -p /run/credentials && mkdir -m 0700 /run/credentials/@initrd && umask 0077 && echo guatemala > /run/credentials/@initrd/myinitrdcred"
index 4d3d2d9aa161a1ee340d2963d7264dfb77f30b41..65e5de379fe7d14e8645250b61a1346bcac569df 100644 (file)
@@ -6,6 +6,9 @@ Dependencies=
         minimal-0
         minimal-1
 
+InitrdInclude=
+        initrd/
+
 [Output]
 @Format=directory
 RepartDirectories=mkosi.repart
index d53dbe562c5bc84ce37286a9d2b3536d48ecb428..8edb043a512623244b30a551e6f7c8b1ab2d95b9 100644 (file)
@@ -3,6 +3,29 @@
 integration_tests += [
         integration_test_template + {
                 'name' : fs.name(meson.current_source_dir()),
-                'enabled' : false,
+                'cmdline' : integration_test_template['cmdline'] + [
+                        'systemd.set_credential=kernelcmdlinecred:uff',
+                        'systemd.set_credential=sysctl.extra:kernel.domainname=sysctltest',
+                        'systemd.set_credential=login.motd:hello',
+                        'systemd.set_credential=login.issue:welcome',
+                        'systemd.set_credential_binary=waldi:d29vb29mZmZ3dWZmZnd1ZmYK',
+                        'rd.systemd.import_credentials=no',
+                        'rd.systemd.wants=initrdcred.service',
+                ],
+                'credentials' : integration_test_template['credentials'] + [
+                        'mynspawncredential=strangevalue',
+                        files('systemd.extra-unit.my-service.service'),
+                        files('systemd.unit-dropin.my-service.service'),
+                        files('systemd.unit-dropin.my-service.service~30-named.service'),
+                ],
+                'qemu-args' : integration_test_template['qemu-args'] + [
+                        '-fw_cfg', 'name=opt/io.systemd.credentials/myqemucredential,string=othervalue',
+                        '-smbios', 'type=11,value=io.systemd.credential:smbioscredential=magicdata',
+                        '-smbios', 'type=11,value=io.systemd.credential.binary:binarysmbioscredential=bWFnaWNiaW5hcnlkYXRh',
+                        '-smbios', 'type=11,value=io.systemd.credential.binary:sysusers.extra=dSBjcmVkdGVzdHVzZXIK',
+                        '-smbios', 'type=11,value=io.systemd.credential.binary:tmpfiles.extra=ZiAvdG1wL3NvdXJjZWRmcm9tY3JlZGVudGlhbCAtIC0gLSAtIHRtcGZpbGVzc2VjcmV0Cg==',
+                        '-smbios', 'type=11,value=io.systemd.credential.binary:fstab.extra=aW5qZWN0ZWQgL2luamVjdGVkIHRtcGZzIFgtbW91bnQubWtkaXIgMCAwCg==',
+                        '-smbios', 'type=11,value=io.systemd.credential:getty.ttys.container=idontexist',
+                ],
         },
 ]
diff --git a/test/TEST-54-CREDS/systemd.extra-unit.my-service.service b/test/TEST-54-CREDS/systemd.extra-unit.my-service.service
new file mode 100644 (file)
index 0000000..e29d0ee
--- /dev/null
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+[Service]
+Type=oneshot
+ExecStart=touch /tmp/unit-cred
diff --git a/test/TEST-54-CREDS/systemd.unit-dropin.my-service.service b/test/TEST-54-CREDS/systemd.unit-dropin.my-service.service
new file mode 100644 (file)
index 0000000..279a941
--- /dev/null
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+[Service]
+ExecStart=touch /tmp/unit-dropin
diff --git a/test/TEST-54-CREDS/systemd.unit-dropin.my-service.service~30-named.service b/test/TEST-54-CREDS/systemd.unit-dropin.my-service.service~30-named.service
new file mode 100644 (file)
index 0000000..67d87ca
--- /dev/null
@@ -0,0 +1,4 @@
+# SPDX-License-Identifier: LGPL-2.1-or-later
+
+[Service]
+ExecStart=touch /tmp/unit-named-dropin
index 9aef9165cfda3a24954109f329b7b5e96cb9d026..71014a3158a59aa0975fef7c267f998cf92c291b 100644 (file)
@@ -3,8 +3,8 @@
 integration_tests += [
         integration_test_template + {
                 'name' : fs.name(meson.current_source_dir()),
-                'mkosi-args' : integration_test_template['mkosi-args'] + [
-                        '--credential=@0@'.format(meson.current_source_dir() / 'systemd.unit-dropin.init.scope')
+                'credentials' : integration_test_template['credentials'] + [
+                        files('systemd.unit-dropin.init.scope'),
                 ]
         },
 ]
index 60d42efee6574997c46983fda3d522a09eb1dd73..2a07d120faf756acec366dcc688ae6453b5f9a9b 100644 (file)
@@ -290,6 +290,8 @@ integration_test_template = {
                 'after' : '',
         },
         'cmdline' : [],
+        'credentials' : [],
+        'qemu-args' : [],
 }
 testdata_subdirs = [
         'auxv',
@@ -410,6 +412,14 @@ foreach integration_test : integration_tests
                 ]
         endif
 
+        foreach credential : integration_test['credentials']
+                integration_test_args += ['--credential', credential]
+        endforeach
+
+        if integration_test['qemu-args'].length() > 0
+                integration_test_args += ['--qemu-args=@0@'.format(' '.join(integration_test['qemu-args']))]
+        endif
+
         integration_test_args += integration_test['mkosi-args']
 
         integration_test_env = {}