#!/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 gcp nocloud oci" init_tests \ tiny_cloud_help \ 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 } 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 }