From 263803475e9290d890cecbd57b72c3e7b503786a Mon Sep 17 00:00:00 2001 From: Natanael Copa Date: Mon, 8 Jun 2026 19:27:53 +0000 Subject: [PATCH] Fix regression introduced with autodetect --- lib/tiny-cloud/common | 1 + tests/init.test | 82 +++++++++++++++++++++---------------------- 2 files changed, 42 insertions(+), 41 deletions(-) diff --git a/lib/tiny-cloud/common b/lib/tiny-cloud/common index 1269a9a..f4eda41 100644 --- a/lib/tiny-cloud/common +++ b/lib/tiny-cloud/common @@ -68,6 +68,7 @@ cloud_hint() { return } done + return 0 } cloud_autodetect() { diff --git a/tests/init.test b/tests/init.test index d60e82d..fdb86d7 100755 --- a/tests/init.test +++ b/tests/init.test @@ -52,7 +52,7 @@ expand_root_body() { for provider in $PROVIDERS; do CLOUD="$provider" atf_check \ -o match:"resize2fs /dev/xvda" \ - sh -c ". $lib; init__expand_root" + sh -e -c ". $lib; init__expand_root" done } @@ -70,7 +70,7 @@ expand_root_partition_body() { -o match:"sfdisk .*/dev/nvme0n1" \ -o match:"partx .*/dev/nvme0n1" \ -o match:"resize2fs /dev/nvme0n1p2" \ - sh -c ". $lib; init__expand_root" + sh -e -c ". $lib; init__expand_root" done } @@ -106,7 +106,7 @@ expand_root_lvm_partition_body() { -o match:"pvresize /dev/vda2" \ -o match:"lvextend -l \\+85%VG /dev/mapper/vg0-root" \ -o match:"resize2fs /dev/mapper/vg0-root" \ - sh -c ". $lib; init__expand_root" + sh -e -c ". $lib; init__expand_root" done } @@ -139,7 +139,7 @@ expand_root_lvm_whole_disk_body() { -o match:"resize2fs /dev/mapper/vg1-root" \ -o not-match:"sfdisk" \ -o not-match:"partx" \ - sh -c ". $lib; init__expand_root" + sh -e -c ". $lib; init__expand_root" done } @@ -152,7 +152,7 @@ ethernets_body() { -o match:"eth0 eth2 eth11" \ -o not-match:"br0" \ -o not-match:"lo" \ - sh -c ". $lib; ethernets | tr '\n' ' '" + sh -e -c ". $lib; ethernets | tr '\n' ' '" } find_first_interface_up_body() { @@ -161,7 +161,7 @@ find_first_interface_up_body() { atf_check \ -o match:"eth1" \ - sh -c ". $lib; find_first_interface_up eth0 eth1" + sh -e -c ". $lib; find_first_interface_up eth0 eth1" } auto_detect_ethernet_interface_body() { @@ -170,13 +170,13 @@ auto_detect_ethernet_interface_body() { atf_check \ -o match:"^eth1$" \ - sh -c ". $lib; auto_detect_ethernet_interface" + sh -e -c ". $lib; auto_detect_ethernet_interface" # test that we pick first if all are down echo down > sys/class/net/eth1/operstate atf_check \ -o match:"^eth0$" \ - sh -c ". $lib; TINY_CLOUD_LINK_WAIT_MAX=1; auto_detect_ethernet_interface" + sh -e -c ". $lib; TINY_CLOUD_LINK_WAIT_MAX=1; auto_detect_ethernet_interface" } set_default_interfaces_body() { @@ -184,7 +184,7 @@ set_default_interfaces_body() { echo up > sys/class/net/eth1/operstate atf_check \ - sh -c ". $lib; init__set_default_interfaces" + sh -e -c ". $lib; init__set_default_interfaces" atf_check \ -o match:"auto lo" \ -o match:"iface eth1" \ @@ -197,7 +197,7 @@ enable_sshd_body() { CLOUD="$provider" atf_check \ -o match:"rc-update.* add sshd default" \ -o match:"rc-update.* --update" \ - sh -c ". $lib; init__enable_sshd" + sh -e -c ". $lib; init__enable_sshd" done } @@ -207,7 +207,7 @@ create_default_user_body() { -o match:"adduser.*alpine" \ -o match:"addgroup alpine wheel" \ -o match:"chpasswd -e" \ - sh -c ". $lib; init__create_default_user" + sh -e -c ". $lib; init__create_default_user" } save_userdata_plain_body() { @@ -215,7 +215,7 @@ save_userdata_plain_body() { #userdata EOF CLOUD="nocloud" atf_check -e match:"NoCloud 'meta-data' is empty" \ - sh -c ". \"$lib\"; init__save_userdata" + sh -e -c ". \"$lib\"; init__save_userdata" atf_check -o match:"^#userdata" cat var/lib/cloud/user-data } @@ -227,7 +227,7 @@ save_userdata_compressed_body() { CLOUD="nocloud" atf_check \ -e 'ignore' \ - sh -c ". \"$lib\"; init__save_userdata" + sh -e -c ". \"$lib\"; init__save_userdata" if ! grep "^#userdata" var/lib/cloud/user-data; then atf_fail "$comp failed" @@ -242,7 +242,7 @@ set_hostname_body() { CLOUD="nocloud" atf_check \ -o match:"hostname.*-F $PWD/etc/hostname" \ - sh -c ". \"$lib\"; init__set_hostname" + sh -e -c ". \"$lib\"; init__set_hostname" atf_check -o match:"^myhostname$" cat etc/hostname } @@ -258,7 +258,7 @@ set_ssh_keys_body() { EOF CLOUD="nocloud" atf_check \ -o match:"chown.*/\.ssh" \ - sh -c ". \"$lib\"; init__set_ssh_keys" + sh -e -c ". \"$lib\"; init__set_ssh_keys" atf_check -o match:"^ssh-ed25519 keydata" \ -o match:"^ssh-rsa foobar" \ cat home/alpine/.ssh/authorized_keys @@ -289,7 +289,7 @@ set_ssh_keys_gcp_body() { -e ignore \ -o match:"chown -R bar:1001 .*\\.ssh" \ -o not-match:"no SSH keys found for alpine" \ - sh -c ". \"$lib\"; init__set_ssh_keys" + sh -e -c ". \"$lib\"; init__set_ssh_keys" atf_check -o match:"^ssh-ed25519 foobar1 alpine" \ -o match:"^ssh-rsa foobar5 google-ssh" \ -o not-match:"foobar4" \ @@ -305,32 +305,32 @@ userdata_type_body() { rm -f var/lib/cloud/user-data CLOUD="$c" atf_check \ -o match:"missing" \ - sh -c ". \"$lib\"; userdata_type" + sh -e -c ". \"$lib\"; userdata_type" touch var/lib/cloud/user-data CLOUD="$c" atf_check \ -o match:"empty" \ - sh -c ". \"$lib\"; userdata_type" + sh -e -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" + sh -e -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" + sh -e -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" + sh -e -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" + sh -e -c ". \"$lib\"; userdata_type" done } @@ -340,10 +340,10 @@ run_userdata_body() { echo "hello from user-data" EOF CLOUD="nocloud" atf_check -e match:"NoCloud 'meta-data' is empty" \ - sh -c ". \"$lib\"; init__save_userdata" + sh -e -c ". \"$lib\"; init__save_userdata" CLOUD="nocloud" atf_check \ -o match:"hello from user-data" \ - sh -c ". \"$lib\"; init__run_userdata" + sh -e -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" } @@ -351,7 +351,7 @@ run_userdata_body() { autodetect_unknown_body() { atf_check \ -o match:"unknown" \ - sh -c ". \"$lib\"; echo \$CLOUD" + sh -e -c ". \"$lib\"; echo \$CLOUD" } autodetect_config_overrides_cmdline_body() { @@ -359,7 +359,7 @@ autodetect_config_overrides_cmdline_body() { echo "quiet ds=scaleway console=ttyS0" > proc/cmdline CLOUD=aws atf_check \ -o match:"aws" \ - sh -c ". \"$lib\"; echo \$CLOUD" + sh -e -c ". \"$lib\"; echo \$CLOUD" } autodetect_cache_overrides_cmdline_body() { @@ -368,7 +368,7 @@ autodetect_cache_overrides_cmdline_body() { echo "quiet ds=scaleway console=ttyS0" > proc/cmdline atf_check \ -o match:"aws" \ - sh -c ". \"$lib\"; echo \$CLOUD" + sh -e -c ". \"$lib\"; echo \$CLOUD" } autodetect_aws_cmdline_body() { @@ -376,7 +376,7 @@ autodetect_aws_cmdline_body() { echo "quiet tinycloud=cloud=aws console=ttyS0" > proc/cmdline atf_check \ -o match:"aws" \ - sh -c ". \"$lib\"; echo \$CLOUD" + sh -e -c ". \"$lib\"; echo \$CLOUD" } autodetect_aws_nitro_body() { @@ -386,7 +386,7 @@ autodetect_aws_nitro_body() { EOT atf_check \ -o match:"aws" \ - sh -c ". \"$lib\"; echo \$CLOUD" + sh -e -c ". \"$lib\"; echo \$CLOUD" } autodetect_aws_xen_body() { @@ -396,7 +396,7 @@ autodetect_aws_xen_body() { EOT atf_check \ -o match:"aws" \ - sh -c ". \"$lib\"; echo \$CLOUD" + sh -e -c ". \"$lib\"; echo \$CLOUD" } autodetect_azure_body() { @@ -406,7 +406,7 @@ autodetect_azure_body() { EOT atf_check \ -o match:"azure" \ - sh -c ". \"$lib\"; echo \$CLOUD" + sh -e -c ". \"$lib\"; echo \$CLOUD" } autodetect_digitalocean_body() { @@ -416,7 +416,7 @@ autodetect_digitalocean_body() { EOT atf_check \ -o match:"digitalocean" \ - sh -c ". \"$lib\"; echo \$CLOUD" + sh -e -c ". \"$lib\"; echo \$CLOUD" } autodetect_gcp_body() { @@ -426,7 +426,7 @@ autodetect_gcp_body() { EOT atf_check \ -o match:"gcp" \ - sh -c ". \"$lib\"; echo \$CLOUD" + sh -e -c ". \"$lib\"; echo \$CLOUD" } autodetect_hetzner_body() { @@ -436,7 +436,7 @@ autodetect_hetzner_body() { EOT atf_check \ -o match:"hetzner" \ - sh -c ". \"$lib\"; echo \$CLOUD" + sh -e -c ". \"$lib\"; echo \$CLOUD" } autodetect_incus_body() { @@ -444,7 +444,7 @@ autodetect_incus_body() { touch dev/incus/sock atf_check \ -o match:"incus" \ - sh -c ". \"$lib\"; echo \$CLOUD" + sh -e -c ". \"$lib\"; echo \$CLOUD" } autodetect_nocloud_cmdline_body() { @@ -452,7 +452,7 @@ autodetect_nocloud_cmdline_body() { echo "quiet ds=nocloud;s=https://10.42.42.42/ console=ttyS0" > proc/cmdline atf_check \ -o match:"nocloud" \ - sh -c ". \"$lib\"; echo \$CLOUD" + sh -e -c ". \"$lib\"; echo \$CLOUD" } autodetect_nocloud_dmi_body() { @@ -460,7 +460,7 @@ autodetect_nocloud_dmi_body() { echo "ds=nocloud;s=https://10.42.42.42/" > sys/class/dmi/id/product_serial atf_check \ -o match:"nocloud" \ - sh -c ". \"$lib\"; echo \$CLOUD" + sh -e -c ". \"$lib\"; echo \$CLOUD" } autodetect_nocloud_volume_body() { @@ -475,7 +475,7 @@ autodetect_nocloud_volume_body() { atf_check \ -o match:"nocloud" \ - sh -c ". \"$lib\"; echo \$CLOUD" + sh -e -c ". \"$lib\"; echo \$CLOUD" } autodetect_oci_body() { @@ -483,7 +483,7 @@ autodetect_oci_body() { echo OracleCloud.com > sys/class/dmi/id/chassis_asset_tag atf_check \ -o match:"oci" \ - sh -c ". \"$lib\"; echo \$CLOUD" + sh -e -c ". \"$lib\"; echo \$CLOUD" } autodetect_scaleway_cmdline_body() { @@ -491,7 +491,7 @@ autodetect_scaleway_cmdline_body() { echo "quiet ds=scaleway console=ttyS0" > proc/cmdline atf_check \ -o match:"scaleway" \ - sh -c ". \"$lib\"; echo \$CLOUD" + sh -e -c ". \"$lib\"; echo \$CLOUD" } autodetect_scaleway_body() { @@ -501,5 +501,5 @@ autodetect_scaleway_body() { EOT atf_check \ -o match:"scaleway" \ - sh -c ". \"$lib\"; echo \$CLOUD" + sh -e -c ". \"$lib\"; echo \$CLOUD" }