From patchwork Tue Sep 19 07:27:06 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fam Zheng X-Patchwork-Id: 815296 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=nongnu.org (client-ip=2001:4830:134:3::11; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Received: from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3xxDxs33rbz9sBZ for ; Tue, 19 Sep 2017 17:28:23 +1000 (AEST) Received: from localhost ([::1]:40435 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duCx9-0001ea-8c for incoming@patchwork.ozlabs.org; Tue, 19 Sep 2017 03:28:19 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38223) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1duCwV-0001eL-PD for qemu-devel@nongnu.org; Tue, 19 Sep 2017 03:27:41 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1duCwT-0007jJ-14 for qemu-devel@nongnu.org; Tue, 19 Sep 2017 03:27:39 -0400 Received: from mx1.redhat.com ([209.132.183.28]:43350) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1duCwS-0007iO-Na for qemu-devel@nongnu.org; Tue, 19 Sep 2017 03:27:36 -0400 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id A5E7B81DE6; Tue, 19 Sep 2017 07:27:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com A5E7B81DE6 Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=famz@redhat.com Received: from lemon.redhat.com (ovpn-12-162.pek2.redhat.com [10.72.12.162]) by smtp.corp.redhat.com (Postfix) with ESMTP id B1C745D6A4; Tue, 19 Sep 2017 07:27:20 +0000 (UTC) From: Fam Zheng To: qemu-devel@nongnu.org Date: Tue, 19 Sep 2017 15:27:06 +0800 Message-Id: <20170919072719.11815-1-famz@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Tue, 19 Sep 2017 07:27:34 +0000 (UTC) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] [fuzzy] X-Received-From: 209.132.183.28 Subject: [Qemu-devel] [PATCH v9 00/13] tests: Add VM based build tests (for non-x86_64 and/or non-Linux) X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Peter Maydell , Fam Zheng , =?utf-8?q?Philippe_Mathieu-Daud=C3=A9?= , Kamil Rytarowski , pbonzini@redhat.com, stefanha@redhat.com, Cleber Rosa , =?utf-8?q?Alex_Benn=C3=A9e?= Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" v9: Don't use 'set -e' in archive-source.sh. [Eric] Add tests/keys/README. [Eric] Fix direct invocation of ./netbsd etc. [Alex] Add a note about test image well-known ssh key. [Eric] v8: Fix typo in code "od" => "os". QEMU to listen on 127.0.0.1 to be more secure. Update README. v7: Add Alex's rev-by to patch 2. GPLv2 => GPLv2+ for all new files. [Peter] Add more description in file header to archive-source.sh for the intended usage. [Peter] "output tarball" in usage. [Alex] Add quotes to "$1". [Peter] Put generated keys in separate files. [Alex] Use os.devnull. [Alex] More error info when launching QEMU fails. [Alex] v6: Add license to new file. [Philippe] Change tests/.gitignore. [Philippe] v5: Generate source tar file with a script. Fix tmpdir, use pwd. Reduce default -j to half cores. v4: Drop unused imports and parameters. [Cleber] Use --exclude-vcs (still no --exclude-vcs-ignores because it's too new). [Philippe] Use gtar if available. [Philippe, Kamil] /dev/ld1a -> /dev/rld1a for netbsd. [Kamil] Only use '-enable-kvm' if /dev/kvm is there. [Kamil] Grammar fixes of README. [Stefan] Rename image on the server to include version and arch. [Kamil] Just ignore *.tmp. [Philippe] v3: Drop RFC. Add Stefan's and Kamil's reviewed-bys. Use optparse. [Stefan] Drop the VGA patch. [Paolo, Stefan] Improve exit/exit code/doc. [Stefan] Drop unused line from basevm.py. [Stefan] Drop "--target-list" form Makefile. More intelligent '-j'. Add README. [Stefan] v2: - Add docstring. [Stefan] - Call self._load_io_lod. [Stefan] - Use "info usernet" and dynamic ssh_port forwarding. [Stefan] - Add image checksum. - Use os.rename() and os.makedirs(). [Stefan] - Fix NetBSD URL. [Kamil] Build tests in one 32 bit Linux guest and three BSD images are defined in this series. This is a more managable way than the manually maintained virtual machines in patchew. Also, one big advantage of ephemeral VMs over long running guests is the reduced RAM usage of host, which makes it possible to have one host test all these BSD variants and probably more. The BSD guest templates are manually prepared following https://wiki.qemu.org/Hosts/BSD as it is not easy to automate. (The ideal approach is like the ubuntu.i386 script, which configures the guest on top of an official released image, fully automatically.) Need for help: "gmake check" in the added OpenBSD image fails with -ENOMEM errors, even if I change "-m 2G" to "-m 8G" when starting VM. Ideas? And there is a warning from ./configure about OpenBSD going to be unsupported in coming releases, is it still the case? Fam Fam Zheng (13): gitignore: Ignore vm test images qemu.py: Add "wait()" method scripts: Add archive-source.sh tests: Add a test key pair tests: Add vm test lib tests: Add ubuntu.i386 image tests: Add FreeBSD image tests: Add NetBSD image tests: Add OpenBSD image Makefile: Add rules to run vm tests MAINTAINERS: Add tests/vm entry tests: Add README for vm tests docker: Use archive-source.py .gitignore | 1 + MAINTAINERS | 1 + Makefile | 2 + configure | 2 +- scripts/archive-source.sh | 46 ++++++++ scripts/qemu.py | 7 ++ tests/.gitignore | 1 + tests/docker/Makefile.include | 15 +-- tests/docker/run | 8 +- tests/keys/README | 6 + tests/keys/id_rsa | 27 +++++ tests/keys/id_rsa.pub | 1 + tests/vm/Makefile.include | 42 +++++++ tests/vm/README | 89 ++++++++++++++ tests/vm/basevm.py | 262 ++++++++++++++++++++++++++++++++++++++++++ tests/vm/freebsd | 42 +++++++ tests/vm/netbsd | 42 +++++++ tests/vm/openbsd | 43 +++++++ tests/vm/ubuntu.i386 | 88 ++++++++++++++ 19 files changed, 704 insertions(+), 21 deletions(-) create mode 100755 scripts/archive-source.sh create mode 100644 tests/keys/README create mode 100644 tests/keys/id_rsa create mode 100644 tests/keys/id_rsa.pub create mode 100644 tests/vm/Makefile.include create mode 100644 tests/vm/README create mode 100755 tests/vm/basevm.py create mode 100755 tests/vm/freebsd create mode 100755 tests/vm/netbsd create mode 100755 tests/vm/openbsd create mode 100755 tests/vm/ubuntu.i386