diff --git a/lib/common.sh b/lib/common.sh index 4c674c7..8c020e0 100644 --- a/lib/common.sh +++ b/lib/common.sh @@ -62,12 +62,6 @@ in_flatpak() { [ -f /.flatpak-info ] || [ -n "${FLATPAK_ID:-}" ] } -# Whether QEMU has the display the smoketest's VMs start with (-vga virtio). -# Arch packages it apart from qemu-base, as qemu-hw-display-virtio-vga. -qemu_has_virtio_vga() { - [[ "$(qemu-system-x86_64 -device help 2> /dev/null)" == *'name "virtio-vga"'* ]] -} - # This project's folder sibling_dir() { cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd diff --git a/lib/doctor.sh b/lib/doctor.sh index 464d6f4..812929d 100644 --- a/lib/doctor.sh +++ b/lib/doctor.sh @@ -50,15 +50,6 @@ cmd_doctor() { problem "not installed: ${missing[*]}" "fix: bash $(sibling_dir)/update.sh" fi - if command -v qemu-system-x86_64 &> /dev/null; then - if qemu_has_virtio_vga; then - ok "QEMU has the virtio-vga display the smoketest's VMs use" - else - problem "QEMU has no virtio-vga display, so the smoketest's VMs won't start" \ - "fix: bash $(sibling_dir)/update.sh" - fi - fi - if [ -r /dev/kvm ] && [ -w /dev/kvm ]; then ok "KVM is available for the smoketest's virtual machines" else diff --git a/lib/smoketest.sh b/lib/smoketest.sh index 29dde45..bfc4c32 100644 --- a/lib/smoketest.sh +++ b/lib/smoketest.sh @@ -56,8 +56,6 @@ require_vm_tools() { command -v "$tool" &> /dev/null \ || die "$tool isn't installed. Install coredesktop-dev's packages: bash $(sibling_dir)/update.sh" done - qemu_has_virtio_vga \ - || die "QEMU has no virtio-vga display. Install coredesktop-dev's packages: bash $(sibling_dir)/update.sh" [ -r "$KVM_DEVICE" ] && [ -w "$KVM_DEVICE" ] \ || die "Can't use $KVM_DEVICE. Turn on virtualization (VT-x/AMD-V) in the firmware settings." } diff --git a/lib/vm.sh b/lib/vm.sh index 79d20de..0f5ff7f 100644 --- a/lib/vm.sh +++ b/lib/vm.sh @@ -76,7 +76,7 @@ vm_start() { -drive "file=$disk,if=virtio,format=qcow2,discard=unmap" \ -nic "user,model=virtio-net-pci,hostfwd=tcp:127.0.0.1:$VM_PORT-:22" \ -virtfs "local,path=$PKG_CACHE,mount_tag=pkgcache,security_model=mapped-xattr" \ - -vga virtio \ + -vga std \ "${display[@]}" \ -serial "file:$VM_DIR/serial.log" \ -pidfile "$VM_DIR/qemu.pid" \ diff --git a/tests/doctor.bats b/tests/doctor.bats index 36aeba8..fae5db6 100644 --- a/tests/doctor.bats +++ b/tests/doctor.bats @@ -71,15 +71,3 @@ load test_helper [[ "$output" == *"Usage: coredesktop-dev doctor"* ]] not_called flatpak-spawn } - -@test "doctor reports QEMU without the virtio-vga display" { - make_working_copy - stub qemu-system-x86_64 'echo "name \"VGA\", bus PCI"' - run cdd doctor - [ "$status" -eq 1 ] - [[ "$output" == *"PROBLEM QEMU has no virtio-vga display"* ]] - - stub qemu-system-x86_64 'echo "name \"virtio-vga\", bus PCI"' - run cdd doctor - [[ "$output" == *"ok QEMU has the virtio-vga display"* ]] -} diff --git a/tests/install.bats b/tests/install.bats index 77641b4..16e6e56 100644 --- a/tests/install.bats +++ b/tests/install.bats @@ -14,7 +14,7 @@ config() { [[ "$output" == *"is the deployed copy"* ]] [ "$(config)" = "WORKING_COPY=$(printf '%q' "$WC")" ] [ "$(readlink "$HOME/.local/bin/coredesktop-dev")" = "$PROJECT/bin/coredesktop-dev" ] - called install_packages shellcheck bats tea qemu-base qemu-hw-display-virtio-vga libisoburn + called install_packages shellcheck bats tea qemu-base libisoburn } @test "install refuses the deployed copy however it's spelled" { diff --git a/tests/smoketest.bats b/tests/smoketest.bats index 5091108..73f965f 100644 --- a/tests/smoketest.bats +++ b/tests/smoketest.bats @@ -18,8 +18,7 @@ setup() { git -C "$WC" rev-parse HEAD > "$STATE/images/installed.ref" # A VM is a sleep that lets go of bats' output pipes - stub qemu-system-x86_64 '[ "$*" = "-device help" ] && { echo "name \"virtio-vga\", bus PCI"; exit; } - while [ $# -gt 0 ]; do [ "$1" = -pidfile ] && pidfile="$2"; shift; done + stub qemu-system-x86_64 'while [ $# -gt 0 ]; do [ "$1" = -pidfile ] && pidfile="$2"; shift; done /usr/bin/sleep 300 > /dev/null 2>&1 3>&- & echo $! > "$pidfile"' stub qemu-img 'touch "${@: -1}"' @@ -99,16 +98,7 @@ last_run() { run cdd smoketest run 10 nosuch [ "$status" -eq 1 ] [[ "$output" == *"No scenario called nosuch"* ]] - # Only the check for the virtio-vga display, no VM - [ -z "$(grep '^qemu-system-x86_64 ' "$STUB_LOG" | grep -v -- '-device help')" ] -} - -@test "run stops before any VM when QEMU has no virtio-vga display" { - stub qemu-system-x86_64 'echo "name \"VGA\", bus PCI"' - run cdd smoketest run 10 - [ "$status" -eq 1 ] - [[ "$output" == *"QEMU has no virtio-vga display"* ]] - [ "$(grep -c '^qemu-system-x86_64 ' "$STUB_LOG")" -eq 1 ] + not_called qemu-system-x86_64 } @test "each variant runs in its own VM" { @@ -116,7 +106,7 @@ last_run() { [ "$status" -eq 0 ] [[ "$output" == *"PASS 30-variants @ one"* ]] [[ "$output" == *"PASS 30-variants @ two"* ]] - [ "$(grep '^qemu-system-x86_64 ' "$STUB_LOG" | grep -vc -- '-device help')" -eq 2 ] + [ "$(grep -c '^qemu-system-x86_64 ' "$STUB_LOG")" -eq 2 ] grep -q "variant two" "$(last_run)/30-variants@two/scenario.log" } diff --git a/tests/update.bats b/tests/update.bats index 9d279a4..080636c 100644 --- a/tests/update.bats +++ b/tests/update.bats @@ -7,7 +7,7 @@ HOOK_MARKER="# Installed by coredesktop-dev; remove with: coredesktop-dev hooks @test "update installs the packages and links the command, without asking anything" { run bash "$PROJECT/update.sh" < /dev/null [ "$status" -eq 0 ] - called install_packages shellcheck bats tea qemu-base qemu-hw-display-virtio-vga libisoburn + called install_packages shellcheck bats tea qemu-base libisoburn [ "$(readlink "$HOME/.local/bin/coredesktop-dev")" = "$PROJECT/bin/coredesktop-dev" ] } diff --git a/update.sh b/update.sh index f559dac..0eff59d 100644 --- a/update.sh +++ b/update.sh @@ -16,7 +16,6 @@ PACKAGES=( bats # make test tea # Gitea's CLI, for pull requests qemu-base # the smoketest's virtual machines - qemu-hw-display-virtio-vga # the VM's -vga virtio (qemu-base leaves it out) libisoburn # xorriso, for the smoketest VM's cloud-init disk )