#!/usr/bin/env atf-sh # shellcheck shell=sh . $(atf_get_srcdir)/test_env.sh export PREFIX="$srcdir" init_tests \ imds_help \ imds_space \ imds_aws_hostname \ imds_aws_local_hostname \ imds_aws_ssh_keys \ imds_nocloud_cmdline_local_hostname \ imds_nocloud_cidata_hostname \ imds_nocloud_cidata_local_hostname imds_help_body() { atf_check -o match:"Usage: imds" imds -h } imds_space_body() { CLOUD=nocloud atf_check -o match:'^ $' imds +s CLOUD=nocloud atf_check -o match:'^\t$' imds +t CLOUD=nocloud atf_check -o match:'^$' imds +n } imds_aws_hostname_body() { fake_metadata_aws <<-EOF hostname: myhostname EOF CLOUD=aws atf_check -o match:"myhostname" imds @hostname } imds_aws_local_hostname_body() { fake_metadata_aws <<-EOF local-hostname: myhostname EOF CLOUD=aws atf_check -o match:"myhostname" imds @local-hostname } imds_aws_ssh_keys_body() { fake_metadata_aws <<-EOF public-keys: 0=testuser: 0: openssh-key: ssh-ed25519 keydata EOF CLOUD=aws atf_check -o match:"ssh-ed25519 keydata" imds @ssh-keys } imds_nocloud_cmdline_local_hostname_body() { atf_require_prog yx mkdir proc for key in h local-hostname; do echo "BOOT_IMAGE=/boot/vmlinuz-lts ro ds=nocloud;$key=myhostname" > proc/cmdline CLOUD=nocloud atf_check \ -o match:'^myhostname$' \ imds @local-hostname done } imds_nocloud_cidata_hostname_body() { atf_require_prog yx fake_metadata_nocloud <<-EOF hostname: myhostname EOF CLOUD=nocloud atf_check \ -o match:'^myhostname$' \ imds @hostname } imds_nocloud_cidata_local_hostname_body() { atf_require_prog yx fake_metadata_nocloud <<-EOF local-hostname: my-local-hostname EOF CLOUD=nocloud atf_check \ -o match:'^my-local-hostname$' \ imds @local-hostname }