From patchwork Thu Aug 31 06:42:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fam Zheng X-Patchwork-Id: 808041 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 3xjXs82RLYz9s7F for ; Thu, 31 Aug 2017 16:43:56 +1000 (AEST) Received: from localhost ([::1]:54153 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dnJCk-0006iT-9j for incoming@patchwork.ozlabs.org; Thu, 31 Aug 2017 02:43:54 -0400 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51842) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dnJC8-0006gw-Si for qemu-devel@nongnu.org; Thu, 31 Aug 2017 02:43:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dnJC5-0006O6-Mm for qemu-devel@nongnu.org; Thu, 31 Aug 2017 02:43:16 -0400 Received: from mx1.redhat.com ([209.132.183.28]:34688) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1dnJC5-0006Nh-DT for qemu-devel@nongnu.org; Thu, 31 Aug 2017 02:43:13 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 4A5B44E4C8; Thu, 31 Aug 2017 06:43:12 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 4A5B44E4C8 Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx09.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=famz@redhat.com Received: from lemon.redhat.com (ovpn-12-59.pek2.redhat.com [10.72.12.59]) by smtp.corp.redhat.com (Postfix) with ESMTP id 45240A2A7E; Thu, 31 Aug 2017 06:43:03 +0000 (UTC) From: Fam Zheng To: qemu-devel@nongnu.org Date: Thu, 31 Aug 2017 14:42:50 +0800 Message-Id: <20170831064302.14427-1-famz@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.38]); Thu, 31 Aug 2017 06:43:12 +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 v5 00/12] 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" 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 (12): gitignore: Ignore vm test images qemu.py: Add "wait()" method scripts: Add archive-source.sh 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 | 2 + MAINTAINERS | 1 + Makefile | 2 + configure | 2 +- scripts/archive-source.sh | 29 +++++ scripts/qemu.py | 7 ++ tests/docker/Makefile.include | 15 +-- tests/docker/run | 8 +- tests/vm/Makefile.include | 42 +++++++ tests/vm/README | 63 ++++++++++ tests/vm/basevm.py | 276 ++++++++++++++++++++++++++++++++++++++++++ tests/vm/freebsd | 42 +++++++ tests/vm/netbsd | 42 +++++++ tests/vm/openbsd | 43 +++++++ tests/vm/ubuntu.i386 | 88 ++++++++++++++ 15 files changed, 641 insertions(+), 21 deletions(-) create mode 100755 scripts/archive-source.sh 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