configure | 2 +- .travis.yml | 42 ++++++++++++++++++++++++++++ tests/docker/dockerfiles/centos7.docker | 6 ++-- tests/docker/dockerfiles/debian-amd64.docker | 1 + tests/docker/dockerfiles/fedora.docker | 10 +++++-- tests/vm/basevm.py | 23 +++++++++------ tests/vm/fedora | 1 + tests/vm/freebsd | 5 ++-- tests/vm/netbsd | 24 +++++----------- tests/vm/openbsd | 1 + tests/vm/ubuntu.i386 | 5 +++- 11 files changed, 85 insertions(+), 35 deletions(-)
The following changes since commit 736cf607e40674776d752acc201f565723e86045: Update version for v5.0.0-rc0 release (2020-03-24 17:50:00 +0000) are available in the Git repository at: https://github.com/stsquad/qemu.git tags/pull-testing-250320-1 for you to fetch changes up to 6a5970988e7c9ce7f9fa9747397b63e8455144c6: .travis.yml: Add a KVM-only s390x job (2020-03-25 14:40:14 +0000) ---------------------------------------------------------------- Testing updates: - docker updates (various dependencies) - travis updates (s390x KVM build) - test/vm updates (NetBSD -> 9.0, FreeBSD -> 12.1) - disable MTTCG for mips64/mips64el ---------------------------------------------------------------- Alex Bennée (2): tests/vm: fix basevm config configure: disable MTTCG for MIPS guests Gerd Hoffmann (4): tests/vm: write raw console log tests/vm: move vga setup tests/vm: update FreeBSD to 12.1 tests/vm: update NetBSD to 9.0 Philippe Mathieu-Daudé (5): tests/docker: Keep package list sorted tests/docker: Install gcrypt devel package in Debian image tests/docker: Use Python3 PyYAML in the Fedora image tests/docker: Add libepoxy and libudev packages to the Fedora image .travis.yml: Add a KVM-only s390x job configure | 2 +- .travis.yml | 42 ++++++++++++++++++++++++++++ tests/docker/dockerfiles/centos7.docker | 6 ++-- tests/docker/dockerfiles/debian-amd64.docker | 1 + tests/docker/dockerfiles/fedora.docker | 10 +++++-- tests/vm/basevm.py | 23 +++++++++------ tests/vm/fedora | 1 + tests/vm/freebsd | 5 ++-- tests/vm/netbsd | 24 +++++----------- tests/vm/openbsd | 1 + tests/vm/ubuntu.i386 | 5 +++- 11 files changed, 85 insertions(+), 35 deletions(-) -- 2.20.1
On Wed, 25 Mar 2020 at 15:15, Alex Bennée <alex.bennee@linaro.org> wrote: > > The following changes since commit 736cf607e40674776d752acc201f565723e86045: > > Update version for v5.0.0-rc0 release (2020-03-24 17:50:00 +0000) > > are available in the Git repository at: > > https://github.com/stsquad/qemu.git tags/pull-testing-250320-1 > > for you to fetch changes up to 6a5970988e7c9ce7f9fa9747397b63e8455144c6: > > .travis.yml: Add a KVM-only s390x job (2020-03-25 14:40:14 +0000) > > ---------------------------------------------------------------- > Testing updates: > > - docker updates (various dependencies) > - travis updates (s390x KVM build) > - test/vm updates (NetBSD -> 9.0, FreeBSD -> 12.1) > - disable MTTCG for mips64/mips64el This produces some new warnings for the freebsd test: In file included from /home/qemu/qemu-test.XaCd3t/src/net/netmap.c:36: In file included from /home/qemu/qemu-test.XaCd3t/src/include/sysemu/sysemu.h:5: In file included from /home/qemu/qemu-test.XaCd3t/src/include/qemu/timer.h:4: In file included from /home/qemu/qemu-test.XaCd3t/src/include/qemu/bitops.h:17: /home/qemu/qemu-test.XaCd3t/src/include/qemu/atomic.h:211:9: warning: 'atomic_fetch_add' macro redefined [-Wmacro-redefined] #define atomic_fetch_add(ptr, n) __atomic_fetch_add(ptr, n, __ATOMIC_SEQ_CST) ^ /usr/include/stdatomic.h:350:9: note: previous definition is here #define atomic_fetch_add(object, operand) \ ^ In file included from /home/qemu/qemu-test.XaCd3t/src/net/netmap.c:36: In file included from /home/qemu/qemu-test.XaCd3t/src/include/sysemu/sysemu.h:5: In file included from /home/qemu/qemu-test.XaCd3t/src/include/qemu/timer.h:4: In file included from /home/qemu/qemu-test.XaCd3t/src/include/qemu/bitops.h:17: /home/qemu/qemu-test.XaCd3t/src/include/qemu/atomic.h:212:9: warning: 'atomic_fetch_sub' macro redefined [-Wmacro-redefined] #define atomic_fetch_sub(ptr, n) __atomic_fetch_sub(ptr, n, __ATOMIC_SEQ_CST) ^ /usr/include/stdatomic.h:356:9: note: previous definition is here #define atomic_fetch_sub(object, operand) \ ^ (similarly for _and, _or, _xor). thanks -- PMM
From: Gerd Hoffmann <kraxel@redhat.com> Run "tail -f /var/tmp/*/qemu*console.raw" in another terminal to watch the install console. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20200310083218.26355-2-kraxel@redhat.com> Message-Id: <20200323161514.23952-2-alex.bennee@linaro.org> diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py index 8400b0e07f6..c53fd354d95 100644 --- a/tests/vm/basevm.py +++ b/tests/vm/basevm.py @@ -213,6 +213,9 @@ class BaseVM(object): def console_init(self, timeout = 120): vm = self._guest vm.console_socket.settimeout(timeout) + self.console_raw_path = os.path.join(vm._temp_dir, + vm._name + "-console.raw") + self.console_raw_file = open(self.console_raw_path, 'wb') def console_log(self, text): for line in re.split("[\r\n]", text): @@ -234,6 +237,9 @@ class BaseVM(object): while True: try: chars = vm.console_socket.recv(1) + if self.console_raw_file: + self.console_raw_file.write(chars) + self.console_raw_file.flush() except socket.timeout: sys.stderr.write("console: *** read timeout ***\n") sys.stderr.write("console: waiting for: '%s'\n" % expect) -- 2.20.1
From: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20200310083218.26355-4-kraxel@redhat.com> Message-Id: <20200323161514.23952-4-alex.bennee@linaro.org> diff --git a/tests/vm/freebsd b/tests/vm/freebsd index 58166766d91..298967fe9cf 100755 --- a/tests/vm/freebsd +++ b/tests/vm/freebsd @@ -24,8 +24,8 @@ class FreeBSDVM(basevm.BaseVM): name = "freebsd" arch = "x86_64" - link = "https://download.freebsd.org/ftp/releases/ISO-IMAGES/12.0/FreeBSD-12.0-RELEASE-amd64-disc1.iso.xz" - csum = "1d40015bea89d05b8bd13e2ed80c40b522a9ec1abd8e7c8b80954fb485fb99db" + link = "https://download.freebsd.org/ftp/releases/ISO-IMAGES/12.1/FreeBSD-12.1-RELEASE-amd64-disc1.iso.xz" + csum = "7394c3f60a1e236e7bd3a05809cf43ae39a3b8e5d42d782004cf2f26b1cfcd88" size = "20G" pkgs = [ # build tools -- 2.20.1
From: Gerd Hoffmann <kraxel@redhat.com> The installer supports GPT now, so the install workflow has changed a bit. Also: run without VGA device. This works around a bug in the seabios sercon code and makes the bootloader menu show up on the serial line, so we can drop the quirk for that. Signed-off-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-Id: <20200310083218.26355-5-kraxel@redhat.com> Message-Id: <20200323161514.23952-5-alex.bennee@linaro.org> diff --git a/tests/vm/netbsd b/tests/vm/netbsd index f3257bc245a..b10c9d429de 100755 --- a/tests/vm/netbsd +++ b/tests/vm/netbsd @@ -22,8 +22,8 @@ class NetBSDVM(basevm.BaseVM): name = "netbsd" arch = "x86_64" - link = "https://cdn.netbsd.org/pub/NetBSD/NetBSD-8.1/images/NetBSD-8.1-amd64.iso" - csum = "718f275b7e0879599bdac95630c5e3f2184700032fdb6cdebf3bdd63687898c48ff3f08f57b89f4437a86cdd8ea07c01a39d432dbb37e1e4b008f4985f98da3f" + link = "https://cdn.netbsd.org/pub/NetBSD/NetBSD-9.0/images/NetBSD-9.0-amd64.iso" + csum = "34da4882ee61bdbf69f241195a8933dc800949d30b43fc6988da853d57fc2b8cac50cf97a0d2adaf93250b4e329d189c1a8b83c33bd515226f37745d50c33369" size = "20G" pkgs = [ # tools @@ -86,42 +86,31 @@ class NetBSDVM(basevm.BaseVM): self.boot(img_tmp, extra_args = [ "-bios", "pc-bios/bios-256k.bin", "-machine", "graphics=off", - "-device", "VGA", "-cdrom", iso ]) self.console_init() - self.console_wait("Primary Bootstrap") - - # serial console boot menu output doesn't work for some - # reason, so we have to fly blind ... - for char in list("5consdev com0\n"): - time.sleep(0.2) - self.console_send(char) - self.console_consume() + self.console_wait_send("3. Drop to boot prompt", "3") + self.console_wait_send("> ", "consdev com0\n") self.console_wait_send("> ", "boot\n") self.console_wait_send("Terminal type", "xterm\n") self.console_wait_send("a: Installation messages", "a\n") - self.console_wait_send("b: US-English", "b\n") self.console_wait_send("a: Install NetBSD", "a\n") self.console_wait("Shall we continue?") self.console_wait_send("b: Yes", "b\n") self.console_wait_send("a: ld0", "a\n") + self.console_wait_send("a: Guid Partition Table", "a\n") self.console_wait_send("a: This is the correct", "a\n") - self.console_wait_send("b: Use the entire disk", "b\n") - self.console_wait("NetBSD bootcode") - self.console_wait_send("a: Yes", "a\n") - self.console_wait_send("b: Use existing part", "b\n") + self.console_wait_send("b: Use default part", "b\n") self.console_wait_send("x: Partition sizes ok", "x\n") - self.console_wait_send("for your NetBSD disk", "\n") self.console_wait("Shall we continue?") self.console_wait_send("b: Yes", "b\n") self.console_wait_send("b: Use serial port com0", "b\n") self.console_wait_send("f: Set serial baud rate", "f\n") self.console_wait_send("a: 9600", "a\n") - self.console_wait_send("x: Exit", "x\n") + self.console_wait_send("x: Continue", "x\n") self.console_wait_send("a: Full installation", "a\n") self.console_wait_send("a: CD-ROM", "a\n") -- 2.20.1
When the patch was merged it was part of a longer series which had already merged the config changes. Semu-revert the config related changes for now so things will build. Fixes: b081986c85fd2 Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20200323161514.23952-6-alex.bennee@linaro.org> diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py index cffe7c4600e..756ccf7acae 100644 --- a/tests/vm/basevm.py +++ b/tests/vm/basevm.py @@ -358,23 +358,23 @@ class BaseVM(object): "local-hostname: {}-guest\n".format(name)]) mdata.close() udata = open(os.path.join(cidir, "user-data"), "w") - print("guest user:pw {}:{}".format(self._config['guest_user'], - self._config['guest_pass'])) + print("guest user:pw {}:{}".format(self.GUEST_USER, + self.GUEST_PASS)) udata.writelines(["#cloud-config\n", "chpasswd:\n", " list: |\n", - " root:%s\n" % self._config['root_pass'], - " %s:%s\n" % (self._config['guest_user'], - self._config['guest_pass']), + " root:%s\n" % self.ROOT_PASS, + " %s:%s\n" % (self.GUEST_USER, + self.GUEST_PASS), " expire: False\n", "users:\n", - " - name: %s\n" % self._config['guest_user'], + " - name: %s\n" % self.GUEST_USER, " sudo: ALL=(ALL) NOPASSWD:ALL\n", " ssh-authorized-keys:\n", - " - %s\n" % self._config['ssh_pub_key'], + " - %s\n" % SSH_PUB_KEY, " - name: root\n", " ssh-authorized-keys:\n", - " - %s\n" % self._config['ssh_pub_key'], + " - %s\n" % SSH_PUB_KEY, "locale: en_US.UTF-8\n"]) proxy = os.environ.get("http_proxy") if not proxy is None: -- 2.20.1
While debugging check-acceptance failures I found an instability in the mips64el test case. Briefly the test case: retry.py -n 100 -c -- ./mips64el-softmmu/qemu-system-mips64el \ -display none -vga none -serial mon:stdio \ -machine malta -kernel ./vmlinux-4.7.0-rc1.I6400 \ -cpu I6400 -smp 8 -vga std \ -append "printk.time=0 clocksource=GIC console=tty0 console=ttyS0 panic=-1" \ --no-reboot Reports about a 9% failure rate: Results summary: 0: 91 times (91.00%), avg time 5.547 (0.45 varience/0.67 deviation) -6: 9 times (9.00%), avg time 3.394 (0.02 varience/0.13 deviation) Ran command 100 times, 91 passes When re-run with "--accel tcg,thread=single" the instability goes away. Results summary: 0: 100 times (100.00%), avg time 17.318 (249.76 varience/15.80 deviation) Ran command 100 times, 100 passes Which seems to indicate there is some aspect of the MIPS MTTCG fixes that has been missed. Ideally we would fix that but I'm afraid I don't have time to investigate and am not super familiar with the architecture anyway. In lieu of someone tracking down the failure lets disable it for now. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Acked-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Acked-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Aleksandar Markovic <aleksandar.qemu.devel@gmail.com> Cc: Aurelien Jarno <aurelien@aurel32.net> Cc: Aleksandar Rikalo <aleksandar.rikalo@rt-rk.com> Message-Id: <20200323161514.23952-7-alex.bennee@linaro.org> diff --git a/configure b/configure index da09c358957..6e274a993b9 100755 --- a/configure +++ b/configure @@ -7885,7 +7885,7 @@ case "$target_name" in TARGET_SYSTBL_ABI=n32 ;; mips64|mips64el) - mttcg="yes" + mttcg="no" TARGET_ARCH=mips64 TARGET_BASE_ARCH=mips echo "TARGET_ABI_MIPSN64=y" >> $config_target_mak -- 2.20.1
From: Philippe Mathieu-Daudé <philmd@redhat.com> In commit 6f8bbb374be we enabled building with the gcrypt library on the the Debian 'x86 host', which was based on Debian Stretch. Later in commit 698a71edbed we upgraded the Debian base image to Buster. Apparently Debian Stretch was listing gcrypt as a QEMU dependency, but this is not the case anymore in Buster, so we need to install it manually (it it not listed by 'apt-get -s build-dep qemu' in the common debian10.docker anymore). This fixes: $ ../configure $QEMU_CONFIGURE_OPTS ERROR: User requested feature gcrypt configure was not able to find it. Install gcrypt devel >= 1.5.0 Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20200322120104.21267-3-philmd@redhat.com> Message-Id: <20200323161514.23952-9-alex.bennee@linaro.org> diff --git a/tests/docker/dockerfiles/debian-amd64.docker b/tests/docker/dockerfiles/debian-amd64.docker index d4849f509f4..957f0bc2e79 100644 --- a/tests/docker/dockerfiles/debian-amd64.docker +++ b/tests/docker/dockerfiles/debian-amd64.docker @@ -16,6 +16,7 @@ RUN apt update && \ apt install -y --no-install-recommends \ libbz2-dev \ liblzo2-dev \ + libgcrypt20-dev \ librdmacm-dev \ libsasl2-dev \ libsnappy-dev \ -- 2.20.1
From: Philippe Mathieu-Daudé <philmd@redhat.com> The Python2 PyYAML is now pointless, switch to the Python3 version. Fixes: bcbf27947 (docker: move tests from python2 to python3) Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20200322120104.21267-4-philmd@redhat.com> Message-Id: <20200323161514.23952-10-alex.bennee@linaro.org> diff --git a/tests/docker/dockerfiles/fedora.docker b/tests/docker/dockerfiles/fedora.docker index 019eb12dcb1..174979c7af4 100644 --- a/tests/docker/dockerfiles/fedora.docker +++ b/tests/docker/dockerfiles/fedora.docker @@ -79,8 +79,8 @@ ENV PACKAGES \ perl-Test-Harness \ pixman-devel \ python3 \ + python3-PyYAML \ python3-sphinx \ - PyYAML \ rdma-core-devel \ SDL2-devel \ snappy-devel \ -- 2.20.1
From: Philippe Mathieu-Daudé <philmd@redhat.com> Install optional dependencies of QEMU to get better coverage. Suggested-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20200322120104.21267-5-philmd@redhat.com> Message-Id: <20200323161514.23952-11-alex.bennee@linaro.org> diff --git a/tests/docker/dockerfiles/fedora.docker b/tests/docker/dockerfiles/fedora.docker index 174979c7af4..4bd2c953af8 100644 --- a/tests/docker/dockerfiles/fedora.docker +++ b/tests/docker/dockerfiles/fedora.docker @@ -29,6 +29,7 @@ ENV PACKAGES \ libblockdev-mpath-devel \ libcap-ng-devel \ libcurl-devel \ + libepoxy-devel \ libfdt-devel \ libiscsi-devel \ libjpeg-devel \ @@ -38,6 +39,7 @@ ENV PACKAGES \ libseccomp-devel \ libssh-devel \ libubsan \ + libudev-devel \ libusbx-devel \ libxml2-devel \ libzstd-devel \ -- 2.20.1
From: Philippe Mathieu-Daudé <philmd@redhat.com> Add a job to build QEMU on s390x with TCG disabled, so this configuration won't bitrot over time. This job is quick, running check-unit: Ran for 5 min 30 sec https://travis-ci.org/github/philmd/qemu/jobs/665456423 Acked-by: Cornelia Huck <cohuck@redhat.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20200322154015.25358-1-philmd@redhat.com> Message-Id: <20200323161514.23952-12-alex.bennee@linaro.org> diff --git a/.travis.yml b/.travis.yml index 5672d129ec6..e0c72210b7a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -525,6 +525,48 @@ jobs: $(exit $BUILD_RC); fi + - name: "[s390x] GCC check (KVM)" + arch: s390x + dist: bionic + addons: + apt_packages: + - libaio-dev + - libattr1-dev + - libbrlapi-dev + - libcap-ng-dev + - libgcrypt20-dev + - libgnutls28-dev + - libgtk-3-dev + - libiscsi-dev + - liblttng-ust-dev + - libncurses5-dev + - libnfs-dev + - libnss3-dev + - libpixman-1-dev + - libpng-dev + - librados-dev + - libsdl2-dev + - libseccomp-dev + - liburcu-dev + - libusb-1.0-0-dev + - libvdeplug-dev + - libvte-2.91-dev + # Tests dependencies + - genisoimage + env: + - TEST_CMD="make check-unit" + - CONFIG="--disable-containers --disable-tcg --enable-kvm --disable-tools" + script: + - ( cd ${SRC_DIR} ; git submodule update --init roms/SLOF ) + - BUILD_RC=0 && make -j${JOBS} || BUILD_RC=$? + - | + if [ "$BUILD_RC" -eq 0 ] ; then + mv pc-bios/s390-ccw/*.img pc-bios/ ; + ${TEST_CMD} ; + else + $(exit $BUILD_RC); + fi + # Release builds # The make-release script expect a QEMU version, so our tag must start with a 'v'. # This is the case when release candidate tags are created. -- 2.20.1
© 2016 - 2024 Red Hat, Inc.