1
0
mirror of https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud.git synced 2025-12-15 11:22:43 +03:00

Add test for empty or no config

for all providers
This commit is contained in:
Natanael Copa 2023-05-08 21:54:52 +02:00
parent f46b6b24d8
commit 468407db05
3 changed files with 71 additions and 21 deletions

View File

@ -30,31 +30,20 @@ aws_set_fake_meta() {
| 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
fake_netcat
aws_set_fake_meta hostname myhostname
CLOUD=aws atf_check -o match:"myhostname" imds @hostname
}
imds_aws_local_hostname_body() {
aws_create_fake_nc
fake_netcat
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
fake_netcat
aws_set_fake_meta public-keys 0=testuser
aws_set_fake_meta public-keys/0/openssh-key "ssh-ed25519 keydata"

View File

@ -72,3 +72,14 @@ fake_interfaces() {
n=$((n+1))
done
}
fake_netcat() {
fake_bin nc <<-EOF
#!/bin/sh
input="\$(cat)"
case "\$input" in
-*) echo "nc: bad input: \$input" >&2; exit 1;;
esac
echo "token-foo"
EOF
}

View File

@ -4,16 +4,66 @@
export PREFIX="$srcdir"
export MOCK=echo
PROVIDERS="alpine aws azure gcp nocloud oci"
init_tests \
tiny_cloud_help
tiny_cloud_help \
no_metadata_early \
no_userdata_main \
no_userdata_final
tiny_cloud_help_body() {
CLOUD=nocloud atf_check -s not-exit:0 \
-e match:"Usage" \
tiny-cloud --invalid
for provider in $PROVIDERS; do
CLOUD="$provider" atf_check -s not-exit:0 \
-e match:"Usage" \
tiny-cloud --invalid
CLOUD=nocloud atf_check -s exit:0 \
-o match:"Usage" \
tiny-cloud --help
CLOUD="$provider" atf_check -s exit:0 \
-o match:"Usage" \
tiny-cloud --help
done
}
no_metadata_early_body() {
fake_netcat
for provider in $PROVIDERS; do
# TODO: -e not-match:"UNKNOWN" \
CLOUD="$provider" atf_check \
-e not-match:"not found" \
-e not-match:"o such file" \
-o match:"rc-update add.*sshd" \
tiny-cloud early
done
}
no_userdata_main_body() {
fake_netcat
for provider in $PROVIDERS; do
# we should not set empty hostname
# we should not create .ssh dir for non-existing user
# TODO: -e not-match:"UNKNOWN" \
CLOUD="$provider" atf_check \
-e ignore \
-o not-match:"hostname.*-F" \
-o not-match:"chown.*/\.ssh" \
tiny-cloud main
for i in etc/hostname .ssh; do
if [ -e "$i" ]; then
atf_fail "$i should not have been created"
fi
done
done
}
no_userdata_final_body() {
fake_netcat
for provider in $PROVIDERS; do
# TODO: -e not-match:"UNKNOWN" \
CLOUD="$provider" atf_check \
-e match:"bootstrap_complete .*" \
tiny-cloud final
CLOUD="$provider" atf_check \
-e match:"bootstrap marked.*incomplete" \
tiny-cloud --bootstrap incomplete
done
}