mirror of
https://github.com/theupriser/steamify-cachyos-live-iso.git
synced 2026-10-02 15:10:26 +02:00
For some reason, this does not have right match, and the next step will already fail if calamares has not started for some reason, so it's fine to replace it with simple timer. Signed-off-by: Vasiliy Stelmachenok <ventureo@cachyos.org>
246 lines
6.3 KiB
Plaintext
246 lines
6.3 KiB
Plaintext
# Install CachyOS daily live
|
|
|
|
function test_description() {
|
|
cat << EOF
|
|
Do a clean install of CachyOS using all the defaults
|
|
EOF
|
|
}
|
|
|
|
function test_setup() {
|
|
test_user="cachyos"
|
|
test_password="ILoveCandy"
|
|
}
|
|
|
|
function qt_wait_else() {
|
|
local test_name="$1"
|
|
local fallback="$2"
|
|
local text="$3"
|
|
local retries=$4
|
|
local interval=$5
|
|
|
|
for c in $( seq 1 $retries ); do
|
|
qt_echo "🔁 $c / $retries «$text» "
|
|
qt_screenshot_ppm "$test_name"
|
|
# We only ever OCR the most recent image, so we just send the text name and the screenshot count
|
|
if qt_search_screenshot "$test_name" "$text"; then
|
|
return 0
|
|
fi
|
|
qt_wait_for_seconds "$interval"
|
|
done
|
|
|
|
"$fallback" "$test_name"
|
|
|
|
qt_test_fail "Coulnd't find text «$text» in screenshot «$QT_SCREENSHOT_COUNT» after $retries retries"
|
|
}
|
|
|
|
function test_post_boot_grub() {
|
|
qt_wait_for_seconds 5
|
|
qt_wait_for_text "$FUNCNAME" "GNU GRUB" 3 5
|
|
qt_screenshot_ppm "$FUNCNAME"
|
|
qt_send_key "return"
|
|
}
|
|
|
|
function test_launch_calamares() {
|
|
qt_wait_for_text "$FUNCNAME" "Welcome to CachyOS!" 3 60
|
|
qt_screenshot_ppm "$FUNCNAME"
|
|
qt_send_key_combo "alt-f2"
|
|
qt_wait_for_seconds 2
|
|
qt_screenshot_ppm "$FUNCNAME"
|
|
qt_send_string_tab "CALAMARES_SKIP_GEOIP=1 sudo -E dbus-launch calamares -D6"
|
|
qt_screenshot_ppm "$FUNCNAME"
|
|
qt_wait_for_seconds 1
|
|
qt_screenshot_ppm "$FUNCNAME"
|
|
qt_send_key_combo "tab"
|
|
qt_send_key_combo "tab"
|
|
qt_send_key_combo "tab"
|
|
qt_send_key "return"
|
|
qt_screenshot_ppm "$FUNCNAME"
|
|
qt_wait_for_seconds 20
|
|
}
|
|
|
|
function test_calamares_welcome() {
|
|
qt_wait_for_text "$FUNCNAME" "$text_calamares_welcome" 10 5
|
|
qt_send_key_combo "tab"
|
|
qt_send_key_combo "tab"
|
|
qt_send_key_combo "spc"
|
|
}
|
|
|
|
function test_calamares_location() {
|
|
qt_wait_for_text "$FUNCNAME" "$text_calamares_language" 10 5
|
|
qt_send_key_combo "tab"
|
|
qt_send_key_combo "tab"
|
|
qt_send_key_combo "tab"
|
|
qt_send_key_combo "tab"
|
|
qt_send_key_combo "tab"
|
|
qt_send_key_combo "tab"
|
|
qt_send_key_combo "spc"
|
|
}
|
|
|
|
function test_calamares_keyboard() {
|
|
qt_wait_for_text "$FUNCNAME" "$text_calamares_keyboard" 10 5
|
|
qt_send_key_combo "spc"
|
|
qt_screenshot_ppm "$FUNCNAME"
|
|
}
|
|
|
|
function test_calamares_bootloader() {
|
|
qt_wait_for_text "$FUNCNAME" "$text_calamares_bootloader" 10 5
|
|
qt_send_key_combo "shift-tab"
|
|
qt_send_key_combo "shift-tab"
|
|
qt_send_key_combo "shift-tab"
|
|
qt_send_key_combo "spc"
|
|
|
|
for ((i=0; i < bootloader_index; i++)); do
|
|
qt_send_key_combo "down"
|
|
done
|
|
|
|
qt_send_key_combo "shift-tab"
|
|
qt_send_key_combo "shift-tab"
|
|
qt_screenshot_ppm "$FUNCNAME"
|
|
qt_send_key_combo "spc"
|
|
}
|
|
|
|
function test_calamares_partitions() {
|
|
qt_wait_for_text "$FUNCNAME" "$text_calamares_partitions" 10 5
|
|
qt_send_key_combo "tab"
|
|
qt_send_key_combo "tab"
|
|
qt_send_key_combo "tab"
|
|
qt_send_key_combo "spc"
|
|
qt_send_key_combo "tab"
|
|
qt_send_key_combo "spc"
|
|
|
|
for ((i=0; i < filesystem_index; i++)); do
|
|
qt_send_key_combo "down"
|
|
done
|
|
|
|
qt_send_key "enter"
|
|
qt_wait_for_seconds 2
|
|
qt_send_key_combo "shift-tab"
|
|
qt_send_key_combo "shift-tab"
|
|
qt_send_key_combo "shift-tab"
|
|
qt_send_key_combo "shift-tab"
|
|
qt_send_key_combo "shift-tab"
|
|
qt_send_key_combo "shift-tab"
|
|
qt_screenshot_ppm "$FUNCNAME"
|
|
qt_send_key_combo "spc"
|
|
}
|
|
|
|
function test_calamares_desktop() {
|
|
qt_wait_for_text "$FUNCNAME" "$text_calamares_desktop" 10 5
|
|
qt_send_key_combo "spc"
|
|
qt_screenshot_ppm "$FUNCNAME"
|
|
}
|
|
|
|
function test_calamares_packages() {
|
|
qt_wait_for_text "$FUNCNAME" "$text_calamares_packages" 10 5
|
|
qt_screenshot_ppm "$FUNCNAME"
|
|
qt_send_key_combo "tab"
|
|
qt_send_key_combo "tab"
|
|
qt_send_key_combo "tab"
|
|
qt_send_key_combo "spc"
|
|
qt_screenshot_ppm "$FUNCNAME"
|
|
}
|
|
|
|
function test_calamares_users() {
|
|
qt_wait_for_text "$FUNCNAME" "$text_calamares_users" 10 5
|
|
qt_send_string_tab "$test_user"
|
|
qt_send_key_combo "tab"
|
|
qt_send_key_combo "tab"
|
|
qt_send_string_tab "$test_password"
|
|
qt_send_string_tab "$test_password"
|
|
qt_send_key_combo "tab"
|
|
qt_send_key_combo "tab"
|
|
qt_send_key_combo "tab"
|
|
qt_send_key_combo "spc"
|
|
qt_screenshot_ppm "$FUNCNAME"
|
|
}
|
|
|
|
function test_calamares_summary() {
|
|
qt_wait_for_text "$FUNCNAME" "$text_calamares_summary" 10 5
|
|
qt_send_key_combo "spc"
|
|
qt_screenshot_ppm "$FUNCNAME"
|
|
}
|
|
|
|
function test_calamares_install() {
|
|
qt_wait_for_text "$FUNCNAME" "$text_calamares_install" 10 30
|
|
qt_send_key_combo "spc"
|
|
qt_screenshot_ppm "$FUNCNAME"
|
|
}
|
|
|
|
function test_calamares_failed() {
|
|
qt_send_key_combo "spc"
|
|
qt_wait_for_seconds 2
|
|
qt_screenshot_ppm "$FUNCNAME"
|
|
}
|
|
|
|
function test_calamares_finished() {
|
|
qt_wait_else "$FUNCNAME" "test_calamares_failed" "$text_calamares_finished" 30 60
|
|
qt_send_key_combo "spc"
|
|
qt_screenshot_ppm "$FUNCNAME"
|
|
}
|
|
|
|
function test_power_off_vm() {
|
|
qt_poweroff_vm
|
|
}
|
|
|
|
function test_input_validation() {
|
|
local -Ar bootloaders=(
|
|
["grub"]="0"
|
|
["refind"]="1"
|
|
["refind-ai"]="2"
|
|
["systemd-boot"]="3"
|
|
["limine"]="4"
|
|
)
|
|
|
|
local -Ar filesystems=(
|
|
["btrfs"]="0"
|
|
["xfs"]="1"
|
|
["ext4"]="2"
|
|
["f2fs"]="3"
|
|
["zfs"]="4"
|
|
)
|
|
|
|
local bootloader="${TEST_BOOTLOADER:-Limine}"
|
|
local -g bootloader_index="${bootloaders[$bootloader]}"
|
|
|
|
if [ -z "$bootloader_index" ]; then
|
|
qt_echo "🚨 Unknown bootloader passed: $bootloader"
|
|
exit 1
|
|
else
|
|
qt_echo "✅ Selected bootloader is $bootloader ($bootloader_index)"
|
|
fi
|
|
|
|
local filesystem="${TEST_FILESYSTEM:-btrfs}"
|
|
local -g filesystem_index="${filesystems[$filesystem]}"
|
|
|
|
if [ -z "$filesystem_index" ]; then
|
|
qt_echo "🚨 Unknown filesystem passed: $filesystem"
|
|
exit 1
|
|
else
|
|
qt_echo "✅ Selected filesystem is $filesystem ($filesystem_index)"
|
|
fi
|
|
|
|
qt_echo "✅ Validation passed"
|
|
}
|
|
|
|
function test_install_calamares() {
|
|
test_input_validation
|
|
test_setup
|
|
test_post_boot_grub
|
|
test_launch_calamares
|
|
test_calamares_welcome
|
|
test_calamares_location
|
|
test_calamares_keyboard
|
|
test_calamares_bootloader
|
|
test_calamares_partitions
|
|
test_calamares_desktop
|
|
test_calamares_packages
|
|
test_calamares_users
|
|
test_calamares_summary
|
|
test_calamares_install
|
|
test_calamares_finished
|
|
test_power_off_vm
|
|
}
|
|
|
|
test_description
|
|
|