mirror of
https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud.git
synced 2026-02-04 04:22:43 +03:00
Consolidate init-*.test into init.test
The separate init-early, init-main and init-final were consolidated in commit 81869cefccd3 (Consolidate init functionality in /sbin/tiny-cloud) Do the same with the unit tests for those functions. No functional changes.
This commit is contained in:
parent
3ca6b74a48
commit
a042bf8cf1
@ -1,38 +0,0 @@
|
||||
#!/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
|
||||
|
||||
init_tests \
|
||||
save_userdata_plain \
|
||||
save_userdata_compressed
|
||||
|
||||
save_userdata_plain_body() {
|
||||
fake_userdata_nocloud <<-EOF
|
||||
#userdata
|
||||
EOF
|
||||
CLOUD="nocloud" atf_check -e match:"NoCloud 'meta-data' is empty" \
|
||||
sh -c ". \"$lib\"; init__save_userdata"
|
||||
atf_check -o match:"^#userdata" cat var/lib/cloud/user-data
|
||||
}
|
||||
|
||||
save_userdata_compressed_body() {
|
||||
for comp in gzip bzip2 xz lzma lzop lz4 zstd; do
|
||||
# fake_userdata_nocloud will set PATH so dont run it in a subshell
|
||||
printf "%s\n" "#userdata" | $comp -c > tmpfile
|
||||
fake_userdata_nocloud < tmpfile
|
||||
|
||||
CLOUD="nocloud" atf_check \
|
||||
-e 'ignore' \
|
||||
sh -c ". \"$lib\"; init__save_userdata"
|
||||
|
||||
if ! grep "^#userdata" var/lib/cloud/user-data; then
|
||||
atf_fail "$comp failed"
|
||||
fi
|
||||
done
|
||||
}
|
||||
@ -1,59 +0,0 @@
|
||||
#!/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"
|
||||
}
|
||||
@ -1,64 +0,0 @@
|
||||
#!/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
|
||||
|
||||
init_tests \
|
||||
set_hostname \
|
||||
set_ssh_keys
|
||||
|
||||
set_nocloud_meta() {
|
||||
local metadata="$(cat)"
|
||||
fake_bin mount <<-EOF
|
||||
#!/bin/sh
|
||||
# find last arg which is the mount dir
|
||||
while ! [ -d "\$1" ]; do
|
||||
shift
|
||||
done
|
||||
printf "%s" "$metadata" \
|
||||
> "\$1"/meta-data
|
||||
EOF
|
||||
|
||||
fake_bin umount <<-EOF
|
||||
#!/bin/sh
|
||||
while ! [ -d "\$1" ]; do
|
||||
shift
|
||||
done
|
||||
rm -f "\$1"/meta-data
|
||||
EOF
|
||||
mkdir -p mnt
|
||||
}
|
||||
|
||||
set_hostname_body() {
|
||||
set_nocloud_meta <<-EOF
|
||||
hostname: myhostname
|
||||
EOF
|
||||
|
||||
CLOUD="nocloud" atf_check \
|
||||
-o match:"hostname.*-F $PWD/etc/hostname" \
|
||||
sh -c ". \"$lib\"; init__set_hostname"
|
||||
atf_check -o match:"^myhostname$" cat etc/hostname
|
||||
}
|
||||
|
||||
set_ssh_keys_body() {
|
||||
fake_bin getent <<-EOF
|
||||
#!/bin/sh
|
||||
echo "alpine:x:1000:1000:Linux User,,,:/home/alpine:/bin/sh"
|
||||
EOF
|
||||
set_nocloud_meta user-data <<-EOF
|
||||
public-keys:
|
||||
- openssh-key: ssh-ed25519 keydata
|
||||
- openssh-key: ssh-rsa foobar
|
||||
EOF
|
||||
CLOUD="nocloud" atf_check \
|
||||
-o match:"chown.*/\.ssh" \
|
||||
sh -c ". \"$lib\"; init__set_ssh_keys"
|
||||
atf_check -o match:"^ssh-ed25519 keydata" \
|
||||
-o match:"^ssh-rsa foobar" \
|
||||
cat home/alpine/.ssh/authorized_keys
|
||||
}
|
||||
@ -17,7 +17,13 @@ init_tests \
|
||||
auto_detect_ethernet_interface \
|
||||
set_default_interfaces \
|
||||
enable_sshd \
|
||||
create_default_user
|
||||
create_default_user \
|
||||
save_userdata_plain \
|
||||
save_userdata_compressed \
|
||||
set_hostname \
|
||||
set_ssh_keys \
|
||||
userdata_type \
|
||||
run_userdata
|
||||
|
||||
PROVIDERS="alpine aws azure gcp nocloud oci"
|
||||
|
||||
@ -125,3 +131,123 @@ create_default_user_body() {
|
||||
-o match:"chpasswd -e" \
|
||||
sh -c ". $lib; init__create_default_user"
|
||||
}
|
||||
|
||||
save_userdata_plain_body() {
|
||||
fake_userdata_nocloud <<-EOF
|
||||
#userdata
|
||||
EOF
|
||||
CLOUD="nocloud" atf_check -e match:"NoCloud 'meta-data' is empty" \
|
||||
sh -c ". \"$lib\"; init__save_userdata"
|
||||
atf_check -o match:"^#userdata" cat var/lib/cloud/user-data
|
||||
}
|
||||
|
||||
save_userdata_compressed_body() {
|
||||
for comp in gzip bzip2 xz lzma lzop lz4 zstd; do
|
||||
# fake_userdata_nocloud will set PATH so dont run it in a subshell
|
||||
printf "%s\n" "#userdata" | $comp -c > tmpfile
|
||||
fake_userdata_nocloud < tmpfile
|
||||
|
||||
CLOUD="nocloud" atf_check \
|
||||
-e 'ignore' \
|
||||
sh -c ". \"$lib\"; init__save_userdata"
|
||||
|
||||
if ! grep "^#userdata" var/lib/cloud/user-data; then
|
||||
atf_fail "$comp failed"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
set_nocloud_meta() {
|
||||
local metadata="$(cat)"
|
||||
fake_bin mount <<-EOF
|
||||
#!/bin/sh
|
||||
# find last arg which is the mount dir
|
||||
while ! [ -d "\$1" ]; do
|
||||
shift
|
||||
done
|
||||
printf "%s" "$metadata" \
|
||||
> "\$1"/meta-data
|
||||
EOF
|
||||
|
||||
fake_bin umount <<-EOF
|
||||
#!/bin/sh
|
||||
while ! [ -d "\$1" ]; do
|
||||
shift
|
||||
done
|
||||
rm -f "\$1"/meta-data
|
||||
EOF
|
||||
mkdir -p mnt
|
||||
}
|
||||
|
||||
set_hostname_body() {
|
||||
set_nocloud_meta <<-EOF
|
||||
hostname: myhostname
|
||||
EOF
|
||||
|
||||
CLOUD="nocloud" atf_check \
|
||||
-o match:"hostname.*-F $PWD/etc/hostname" \
|
||||
sh -c ". \"$lib\"; init__set_hostname"
|
||||
atf_check -o match:"^myhostname$" cat etc/hostname
|
||||
}
|
||||
|
||||
set_ssh_keys_body() {
|
||||
fake_bin getent <<-EOF
|
||||
#!/bin/sh
|
||||
echo "alpine:x:1000:1000:Linux User,,,:/home/alpine:/bin/sh"
|
||||
EOF
|
||||
set_nocloud_meta user-data <<-EOF
|
||||
public-keys:
|
||||
- openssh-key: ssh-ed25519 keydata
|
||||
- openssh-key: ssh-rsa foobar
|
||||
EOF
|
||||
CLOUD="nocloud" atf_check \
|
||||
-o match:"chown.*/\.ssh" \
|
||||
sh -c ". \"$lib\"; init__set_ssh_keys"
|
||||
atf_check -o match:"^ssh-ed25519 keydata" \
|
||||
-o match:"^ssh-rsa foobar" \
|
||||
cat home/alpine/.ssh/authorized_keys
|
||||
}
|
||||
|
||||
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"
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user