1
0
mirror of https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud.git synced 2025-12-15 11:22:43 +03:00
tiny-cloud/tests/imds.test
Jake Buchholz Göktürk 3894cd9f8d Support "local-hostname"
2023-04-30 23:23:54 +00:00

95 lines
2.0 KiB
Plaintext
Executable File

#!/usr/bin/env atf-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
}
aws_set_fake_meta() {
local key="$1" value="$2"
echo "$value" > $(echo 169.254.169.254/latest/meta-data/"$key" \
| tr '/' '_')
}
aws_create_fake_nc() {
fake_bin nc <<-EOF
#!/bin/sh
input="\$(cat)"
case "\$input" in
-*) echo "nc: bad input: \$input" >&2; exit 1;;
esac
echo "token-foo"
EOF
}
imds_aws_hostname_body() {
aws_create_fake_nc
aws_set_fake_meta hostname myhostname
CLOUD=aws atf_check -o match:"myhostname" imds @hostname
}
imds_aws_local_hostname_body() {
aws_create_fake_nc
aws_set_fake_meta local-hostname myhostname
CLOUD=aws atf_check -o match:"myhostname" imds @local-hostname
}
imds_aws_ssh_keys_body() {
aws_create_fake_nc
aws_set_fake_meta public-keys 0=testuser
aws_set_fake_meta public-keys/0/openssh-key "ssh-ed25519 keydata"
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
}