diff options
Diffstat (limited to 'test/TEST-54-CREDS')
l--------- | test/TEST-54-CREDS/Makefile | 1 | ||||
-rwxr-xr-x | test/TEST-54-CREDS/test.sh | 67 |
2 files changed, 68 insertions, 0 deletions
diff --git a/test/TEST-54-CREDS/Makefile b/test/TEST-54-CREDS/Makefile new file mode 120000 index 0000000..e9f93b1 --- /dev/null +++ b/test/TEST-54-CREDS/Makefile @@ -0,0 +1 @@ +../TEST-01-BASIC/Makefile
\ No newline at end of file diff --git a/test/TEST-54-CREDS/test.sh b/test/TEST-54-CREDS/test.sh new file mode 100755 index 0000000..c0a9d7a --- /dev/null +++ b/test/TEST-54-CREDS/test.sh @@ -0,0 +1,67 @@ +#!/usr/bin/env bash +# SPDX-License-Identifier: LGPL-2.1-or-later +set -e + +TEST_DESCRIPTION="test credentials" + +NSPAWN_CREDS=( + "--set-credential=mynspawncredential:strangevalue" +) +NSPAWN_ARGUMENTS="${NSPAWN_ARGUMENTS:-} ${NSPAWN_CREDS[*]}" + +QEMU_CREDS=( + "-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" +) +QEMU_OPTIONS="${QEMU_OPTIONS:-} ${QEMU_CREDS[*]}" + +KERNEL_CREDS=( + "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" +) +KERNEL_APPEND="${KERNEL_APPEND:-} ${KERNEL_CREDS[*]}" + +# shellcheck source=test/test-functions +. "${TEST_BASE_DIR:?}/test-functions" + +test_append_files() { + instmods qemu_fw_cfg + if get_bool "$LOOKS_LIKE_SUSE"; then + instmods dmi-sysfs + fi + generate_module_dependencies +} + +run_qemu_hook() { + local td="$WORKDIR"/initrd.extra."$RANDOM" + mkdir -m 755 "$td" + add_at_exit_handler "rm -rf $td" + mkdir -m 755 "$td/etc" "$td"/etc/systemd "$td"/etc/systemd/system "$td"/etc/systemd/system/initrd.target.wants + + cat > "$td"/etc/systemd/system/initrdcred.service <<EOF +[Unit] +Description=populate initrd credential dir + +[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" +EOF + ln -s ../initrdcred.service "$td"/etc/systemd/system/initrd.target.wants/initrdcred.service + + ( cd "$td" && find . | cpio -o -H newc -R root:root > "$td".cpio ) + add_at_exit_handler "rm $td.cpio" + + INITRD_EXTRA="$td.cpio" +} + +do_test "$@" |