mirror of
https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud.git
synced 2025-12-14 19:02:45 +03:00
60 lines
1.5 KiB
Bash
Executable File
60 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env atf-sh
|
|
# vim:set ft=sh
|
|
# shellcheck shell=sh
|
|
|
|
. $(atf_get_srcdir)/test_env.sh
|
|
|
|
export PREFIX="$srcdir"
|
|
export MOCK=echo
|
|
lib="$srcdir"/lib/tiny-cloud/init
|
|
PROVIDERS="alpine aws azure gcp nocloud oci"
|
|
|
|
init_tests \
|
|
userdata_type \
|
|
run_userdata
|
|
|
|
|
|
userdata_type_body() {
|
|
mkdir -p var/lib/cloud
|
|
for c in $PROVIDERS; do
|
|
rm -f var/lib/cloud/user-data
|
|
CLOUD="$c" atf_check \
|
|
-o match:"missing" \
|
|
sh -c ". \"$lib\"; userdata_type"
|
|
|
|
echo "#tiny-cloud-config" > var/lib/cloud/user-data
|
|
CLOUD="$c" atf_check \
|
|
-o match:"tiny-cloud-config" \
|
|
sh -c ". \"$lib\"; userdata_type"
|
|
|
|
echo "no-content-type" > var/lib/cloud/user-data
|
|
CLOUD="$c" atf_check \
|
|
-o match:"unknown" \
|
|
sh -c ". \"$lib\"; userdata_type"
|
|
|
|
echo "#alpine-config" > var/lib/cloud/user-data
|
|
CLOUD="$c" atf_check \
|
|
-o match:"alpine-config" \
|
|
sh -c ". \"$lib\"; userdata_type"
|
|
|
|
echo "#!/bin/sh" > var/lib/cloud/user-data
|
|
CLOUD="$c" atf_check -s exit:0 \
|
|
-o match:"script" \
|
|
sh -c ". \"$lib\"; userdata_type"
|
|
done
|
|
}
|
|
|
|
run_userdata_body() {
|
|
fake_userdata_nocloud <<-EOF
|
|
#!/bin/sh
|
|
echo "hello from user-data"
|
|
EOF
|
|
CLOUD="nocloud" atf_check -e match:"NoCloud 'meta-data' is empty" \
|
|
sh -c ". \"$lib\"; init__save_userdata"
|
|
CLOUD="nocloud" atf_check \
|
|
-o match:"hello from user-data" \
|
|
sh -c ". \"$lib\"; init__run_userdata"
|
|
grep "hello from user-data" var/log/user-data.log || atf_fail "user-data.log failed"
|
|
grep -w "0" var/log/user-data.exit || atf_fail "user-data.exit failed"
|
|
}
|