[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [RFC PATCH v4 1/1] tests/vm: Add Haiku test based on their vagrant i
From: |
Thomas Huth |
Subject: |
Re: [RFC PATCH v4 1/1] tests/vm: Add Haiku test based on their vagrant images |
Date: |
Wed, 28 Oct 2020 07:02:58 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.6.0 |
On 27/10/2020 11.21, Philippe Mathieu-Daudé wrote:
> From: Alexander von Gluck IV <kallisti5@unixzen.com>
>
> Signed-off-by: Alexander von Gluck IV <kallisti5@unixzen.com>
> [PMD: Avoid recreating the image each time]
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> tests/keys/vagrant | 27 +++++++++
> tests/keys/vagrant.pub | 1 +
> tests/vm/Makefile.include | 3 +-
> tests/vm/basevm.py | 5 +-
> tests/vm/haiku.x86_64 | 116 ++++++++++++++++++++++++++++++++++++++
> 5 files changed, 149 insertions(+), 3 deletions(-)
> create mode 100644 tests/keys/vagrant
> create mode 100644 tests/keys/vagrant.pub
> create mode 100755 tests/vm/haiku.x86_64
>
> diff --git a/tests/keys/vagrant b/tests/keys/vagrant
> new file mode 100644
> index 00000000000..7d6a083909e
> --- /dev/null
> +++ b/tests/keys/vagrant
> @@ -0,0 +1,27 @@
> +-----BEGIN RSA PRIVATE KEY-----
> +MIIEogIBAAKCAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzI
> +w+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoP
> +kcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2
> +hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NO
> +Td0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcW
> +yLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQIBIwKCAQEA4iqWPJXtzZA68mKd
> +ELs4jJsdyky+ewdZeNds5tjcnHU5zUYE25K+ffJED9qUWICcLZDc81TGWjHyAqD1
> +Bw7XpgUwFgeUJwUlzQurAv+/ySnxiwuaGJfhFM1CaQHzfXphgVml+fZUvnJUTvzf
> +TK2Lg6EdbUE9TarUlBf/xPfuEhMSlIE5keb/Zz3/LUlRg8yDqz5w+QWVJ4utnKnK
> +iqwZN0mwpwU7YSyJhlT4YV1F3n4YjLswM5wJs2oqm0jssQu/BT0tyEXNDYBLEF4A
> +sClaWuSJ2kjq7KhrrYXzagqhnSei9ODYFShJu8UWVec3Ihb5ZXlzO6vdNQ1J9Xsf
> +4m+2ywKBgQD6qFxx/Rv9CNN96l/4rb14HKirC2o/orApiHmHDsURs5rUKDx0f9iP
> +cXN7S1uePXuJRK/5hsubaOCx3Owd2u9gD6Oq0CsMkE4CUSiJcYrMANtx54cGH7Rk
> +EjFZxK8xAv1ldELEyxrFqkbE4BKd8QOt414qjvTGyAK+OLD3M2QdCQKBgQDtx8pN
> +CAxR7yhHbIWT1AH66+XWN8bXq7l3RO/ukeaci98JfkbkxURZhtxV/HHuvUhnPLdX
> +3TwygPBYZFNo4pzVEhzWoTtnEtrFueKxyc3+LjZpuo+mBlQ6ORtfgkr9gBVphXZG
> +YEzkCD3lVdl8L4cw9BVpKrJCs1c5taGjDgdInQKBgHm/fVvv96bJxc9x1tffXAcj
> +3OVdUN0UgXNCSaf/3A/phbeBQe9xS+3mpc4r6qvx+iy69mNBeNZ0xOitIjpjBo2+
> +dBEjSBwLk5q5tJqHmy/jKMJL4n9ROlx93XS+njxgibTvU6Fp9w+NOFD/HvxB3Tcz
> +6+jJF85D5BNAG3DBMKBjAoGBAOAxZvgsKN+JuENXsST7F89Tck2iTcQIT8g5rwWC
> +P9Vt74yboe2kDT531w8+egz7nAmRBKNM751U/95P9t88EDacDI/Z2OwnuFQHCPDF
> +llYOUI+SpLJ6/vURRbHSnnn8a/XG+nzedGH5JGqEJNQsz+xT2axM0/W/CRknmGaJ
> +kda/AoGANWrLCz708y7VYgAtW2Uf1DPOIYMdvo6fxIB5i9ZfISgcJ/bbCUkFrhoH
> ++vq/5CIWxCPp0f85R4qxxQ5ihxJ0YDQT9Jpx4TMss4PSavPaBH3RXow5Ohe+bYoQ
> +NE5OgEXk2wVfZczCZpigBKbKZHNYcelXtTt/nP3rsCuGcM4h53s=
> +-----END RSA PRIVATE KEY-----
> diff --git a/tests/keys/vagrant.pub b/tests/keys/vagrant.pub
> new file mode 100644
> index 00000000000..b8d012d787f
> --- /dev/null
> +++ b/tests/keys/vagrant.pub
> @@ -0,0 +1 @@
> +ssh-rsa
> AAAAB3NzaC1yc2EAAAABIwAAAQEA6NF8iallvQVp22WDkTkyrtvp9eWW6A8YVr+kz4TjGYe7gHzIw+niNltGEFHzD8+v1I2YJ6oXevct1YeS0o9HZyN1Q9qgCgzUFtdOKLv6IedplqoPkcmF0aYet2PkEDo3MlTBckFXPITAMzF8dJSIFo9D8HfdOV0IAdx4O7PtixWKn5y2hMNG0zQPyUecp4pzC6kivAIhyfHilFR61RGL+GPXQ2MWZWFYbAGjyiYJnAmCP3NOTd0jMZEnDkbUvxhMmBYSdETk1rRgm+R4LOzFUGaHqHDLKLX+FIPKcF96hrucXzcWyLbIbEgE98OHlnVYCzRdK8jlqm8tehUc9c9WhQ==
> well-known vagrant key for qemu-test, do not use on any machine exposed to
> an external network
> diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include
> index 61f893ffdc0..e94d95ec541 100644
> --- a/tests/vm/Makefile.include
> +++ b/tests/vm/Makefile.include
> @@ -4,7 +4,7 @@
>
> EFI_AARCH64 = $(wildcard $(BUILD_DIR)/pc-bios/edk2-aarch64-code.fd)
>
> -IMAGES := freebsd netbsd openbsd centos fedora
> +IMAGES := freebsd netbsd openbsd centos fedora haiku.x86_64
> ifneq ($(GENISOIMAGE),)
> IMAGES += ubuntu.i386 centos
> ifneq ($(EFI_AARCH64),)
> @@ -41,6 +41,7 @@ endif
> else
> @echo " (install genisoimage to build centos/ubuntu images)"
> endif
> + @echo " vm-build-haiku.x86_64 - Build QEMU in Haiku VM"
> @echo ""
> @echo " vm-build-all - Build QEMU in all VMs"
> @echo " vm-clean-all - Clean up VM images"
> diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
> index 3fac20e929a..00f1d5ca8da 100644
> --- a/tests/vm/basevm.py
> +++ b/tests/vm/basevm.py
> @@ -44,6 +44,7 @@
> 'machine' : 'pc',
> 'guest_user' : "qemu",
> 'guest_pass' : "qemupass",
> + 'root_user' : "root",
> 'root_pass' : "qemupass",
> 'ssh_key_file' : SSH_KEY_FILE,
> 'ssh_pub_key_file': SSH_PUB_KEY_FILE,
> @@ -245,13 +246,13 @@ def ssh(self, *cmd):
> return self._ssh_do(self._config["guest_user"], cmd, False)
>
> def ssh_root(self, *cmd):
> - return self._ssh_do("root", cmd, False)
> + return self._ssh_do(self._config["root_user"], cmd, False)
>
> def ssh_check(self, *cmd):
> self._ssh_do(self._config["guest_user"], cmd, True)
>
> def ssh_root_check(self, *cmd):
> - self._ssh_do("root", cmd, True)
> + self._ssh_do(self._config["root_user"], cmd, True)
>
> def build_image(self, img):
> raise NotImplementedError
> diff --git a/tests/vm/haiku.x86_64 b/tests/vm/haiku.x86_64
> new file mode 100755
> index 00000000000..634ef774870
> --- /dev/null
> +++ b/tests/vm/haiku.x86_64
> @@ -0,0 +1,116 @@
> +#!/usr/bin/env python3
> +#
> +# Haiku VM image
> +#
> +# Copyright 2020 Haiku, Inc.
> +#
> +# Authors:
> +# Alexander von Gluck IV <kallisti5@unixzen.com>
> +#
> +# This code is licensed under the GPL version 2 or later. See
> +# the COPYING file in the top-level directory.
> +#
> +
> +import os
> +import re
> +import sys
> +import time
> +import socket
> +import subprocess
> +import basevm
> +
> +VAGRANT_KEY_FILE = os.path.join(os.path.dirname(__file__),
> + "..", "keys", "vagrant")
> +
> +VAGRANT_PUB_KEY_FILE = os.path.join(os.path.dirname(__file__),
> + "..", "keys", "vagrant.pub")
> +
> +HAIKU_CONFIG = {
> + 'cpu' : "max",
> + 'machine' : 'pc',
> + 'guest_user' : "vagrant",
> + 'guest_pass' : "",
> + 'root_user' : "vagrant",
> + 'root_pass' : "",
> + 'ssh_key_file' : VAGRANT_KEY_FILE,
> + 'ssh_pub_key_file': VAGRANT_PUB_KEY_FILE,
> + 'memory' : "4G",
> + 'extra_args' : [],
> + 'qemu_args' : "-device VGA",
> + 'dns' : "",
> + 'ssh_port' : 0,
> + 'install_cmds' : "",
> + 'boot_dev_type' : "block",
> + 'ssh_timeout' : 1,
> +}
> +
> +class HaikuVM(basevm.BaseVM):
> + name = "haiku"
> + arch = "x86_64"
> +
> + link =
> "https://app.vagrantup.com/haiku-os/boxes/r1beta2-x86_64/versions/20200702/providers/libvirt.box"
> + csum = "41c38b316e0cbdbc66b5dbaf3612b866700a4f35807cb1eb266a5bf83e9e68d5"
> +
> + poweroff = "shutdown"
> +
> + requirements = [
> + "devel:libbz2",
> + "devel:libcapstone",
> + "devel:libcurl",
> + "devel:libfdt",
> + "devel:libgcrypt",
> + "devel:libgl",
> + "devel:libglib_2.0",
> + "devel:libgnutls",
> + "devel:libgpg_error",
> + "devel:libintl",
> + "devel:libjpeg",
> + "devel:liblzo2",
> + "devel:libncursesw",
> + "devel:libnettle",
> + "devel:libpixman_1",
> + "devel:libpng16",
> + "devel:libsdl2_2.0",
> + "devel:libsnappy",
> + "devel:libssh2",
> + "devel:libtasn1",
> + "devel:libusb_1.0",
> + "devel:libz",
> + "setuptools_python3"
> + ]
When running this image, I now get:
ERROR: Cannot find Ninja
And even if I add "ninja" to the list, it fails after configuration:
make: *** No rule to make target 'qemu-img', needed by 'check-block'. Stop.
... so this needs some more fine-tuning for the new build system?
Thomas