1
0
mirror of https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud.git synced 2025-12-14 19:02:45 +03:00
tiny-cloud/tests/tiny-cloud.test
2025-05-29 03:46:51 +00:00

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
}