mirror of
https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud.git
synced 2025-12-15 11:22:43 +03:00
93 lines
1.8 KiB
Plaintext
Executable File
93 lines
1.8 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_ssh_keys \
|
|
imds_nocloud_cmdline_hostname \
|
|
imds_nocloud_cidata_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_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_hostname_body() {
|
|
atf_require_prog yx
|
|
mkdir proc
|
|
for key in h hostname; do
|
|
echo "BOOT_IMAGE=/boot/vmlinuz-lts ro ds=nocloud;$key=myhostname" > proc/cmdline
|
|
CLOUD=nocloud atf_check \
|
|
-o match:'^myhostname$' \
|
|
imds @hostname
|
|
done
|
|
}
|
|
|
|
imds_nocloud_cidata_hostname_body() {
|
|
atf_require_prog yx
|
|
fake_bin mount <<-EOF
|
|
#!/bin/sh
|
|
# find last arg which is the mount dir
|
|
while ! [ -d "\$1" ]; do
|
|
shift
|
|
done
|
|
printf "#cloud-config\nhostname: myhostname\n" \
|
|
> "\$1"/meta-data
|
|
EOF
|
|
|
|
fake_bin umount <<-EOF
|
|
#!/bin/sh
|
|
while ! [ -d "\$1" ]; do
|
|
shift
|
|
done
|
|
rm -f "\$1"/meta-data
|
|
EOF
|
|
mkdir -p mnt
|
|
|
|
CLOUD=nocloud atf_check \
|
|
-o match:'^myhostname$' \
|
|
imds @hostname
|
|
}
|
|
|