mirror of
https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud.git
synced 2025-12-14 19:02:45 +03:00
93 lines
2.0 KiB
Bash
Executable File
93 lines
2.0 KiB
Bash
Executable File
#!/usr/bin/env atf-sh
|
|
# vim:set filetype=sh:
|
|
# shellcheck shell=sh
|
|
|
|
. $(atf_get_srcdir)/test_env.sh
|
|
|
|
export PREFIX="$srcdir"
|
|
export MOCK=echo
|
|
PROVIDERS="alpine aws azure digitalocean gcp incus hetzner nocloud oci scaleway"
|
|
|
|
init_tests \
|
|
tiny_cloud_help \
|
|
tiny_cloud_disabled \
|
|
no_metadata_boot \
|
|
no_userdata_early \
|
|
no_userdata_main \
|
|
no_userdata_final
|
|
|
|
tiny_cloud_help_body() {
|
|
for provider in $PROVIDERS; do
|
|
CLOUD="$provider" atf_check -s not-exit:0 \
|
|
-e match:"Usage" \
|
|
tiny-cloud --invalid
|
|
|
|
CLOUD="$provider" atf_check -s exit:0 \
|
|
-o match:"Usage" \
|
|
tiny-cloud --help
|
|
done
|
|
}
|
|
|
|
tiny_cloud_disabled_body() {
|
|
mkdir -p etc
|
|
touch etc/tiny-cloud.disabled
|
|
for provider in $PROVIDERS; do
|
|
CLOUD="$provider" atf_check -s exit:0 \
|
|
-e match:"tiny-cloud disabled" \
|
|
tiny-cloud early
|
|
done
|
|
}
|
|
|
|
no_metadata_boot_body() {
|
|
for provider in $PROVIDERS; do
|
|
CLOUD="$provider" atf_check \
|
|
-e not-match:"unknown" \
|
|
-e not-match:"not found" \
|
|
-e not-match:"o such file" \
|
|
-o match:"rc-update add.*sshd" \
|
|
-e not-match:"mount:" \
|
|
tiny-cloud boot
|
|
done
|
|
}
|
|
|
|
no_userdata_early_body() {
|
|
for provider in $PROVIDERS; do
|
|
CLOUD="$provider" atf_check \
|
|
-e not-match:"unknown" \
|
|
-e match:"save_userdata.*done" \
|
|
-e not-match:"mount:" \
|
|
tiny-cloud early
|
|
done
|
|
}
|
|
|
|
no_userdata_main_body() {
|
|
for provider in $PROVIDERS; do
|
|
# we should not set empty hostname
|
|
# we should not create .ssh dir for non-existing user
|
|
CLOUD="$provider" atf_check \
|
|
-e not-match:"mount:" \
|
|
-e not-match:"failed" \
|
|
-e not-match:"unknown" \
|
|
-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() {
|
|
for provider in $PROVIDERS; do
|
|
CLOUD="$provider" atf_check \
|
|
-e not-match:"unknown" \
|
|
-e match:"bootstrap_complete: done" \
|
|
tiny-cloud final
|
|
CLOUD="$provider" atf_check \
|
|
-e match:"bootstrap marked incomplete" \
|
|
tiny-cloud --bootstrap incomplete
|
|
done
|
|
}
|