From patchwork Tue Oct 26 01:41:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Stabellini X-Patchwork-Id: 12583755 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A413EC433FE for ; Tue, 26 Oct 2021 01:42:18 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 51F0460232 for ; Tue, 26 Oct 2021 01:42:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 51F0460232 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.xenproject.org Received: from list by lists.xenproject.org with outflank-mailman.216153.375646 (Exim 4.92) (envelope-from ) id 1mfBTa-0001aC-GL; Tue, 26 Oct 2021 01:42:06 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 216153.375646; Tue, 26 Oct 2021 01:42:06 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1mfBTa-0001a5-Ct; Tue, 26 Oct 2021 01:42:06 +0000 Received: by outflank-mailman (input) for mailman id 216153; Tue, 26 Oct 2021 01:42:05 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1mfBTZ-0001Zx-Pf for xen-devel@lists.xenproject.org; Tue, 26 Oct 2021 01:42:05 +0000 Received: from mail.kernel.org (unknown [198.145.29.99]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id cad276e7-ccbb-4459-9680-8141b1dc6f86; Tue, 26 Oct 2021 01:42:04 +0000 (UTC) Received: by mail.kernel.org (Postfix) with ESMTPSA id CBA6961057; Tue, 26 Oct 2021 01:42:03 +0000 (UTC) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: cad276e7-ccbb-4459-9680-8141b1dc6f86 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1635212524; bh=RUYwi15asB7wOfxAWOMyV7/IDOyTDsG6KU/TPjlIGvg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=s8XUPMicLG5r3scOqPlya7YGhzh58wM9xME60beOxQuz5u8dzv0C/z2OQjJV/Y/f0 S5StysfqBTPbylRz4V2XWGYIGzWSl20D+4mBDSjupR4Qk/qMKZrpTY3A0v80LgjgDu 6KRSjQnWJEfv8nfDW1JmlCTurEVNuSlxtlL/yTLJMfZGc8cIVeymP+A2l92DFA4dDz +kx0YrYMldXsQV+M5VXU57rt/Mx7emBxySVPzppaGHLKhQpRLQ+SOtbkkCwl93845M O1bJFZvuQue6nJq5D7xCP/ELuipXpKJLwfWqM02FUh8UU6irFTIjiz2gA0PF5mmHE5 tdjL6wa8kf/dw== From: Stefano Stabellini To: xen-devel@lists.xenproject.org Cc: sstabellini@kernel.org, iwj@xenproject.org, cardoe@cardoe.com, wl@xen.org, andrew.cooper3@citrix.com, anthony.perard@citrix.com, Stefano Stabellini Subject: [PATCH v2 1/3] automation: add x86_64 alpine 3.12 test-artifact Date: Mon, 25 Oct 2021 18:41:58 -0700 Message-Id: <20211026014200.32102-1-sstabellini@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: From: Stefano Stabellini It is the same as the existing ARM64 alpine 3.12 test-artifact. It is used to export an Alpine rootfs for Dom0 used for testing. Also add the exporting job to build.yaml so that the binaries can be used during gitlab-ci runs. Signed-off-by: Stefano Stabellini Reviewed-by: Anthony PERARD --- Changes in 2: - remove gettext --- automation/gitlab-ci/build.yaml | 13 ++++ .../tests-artifacts/alpine/3.12.dockerfile | 66 +++++++++++++++++++ 2 files changed, 79 insertions(+) create mode 100644 automation/tests-artifacts/alpine/3.12.dockerfile diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml index d177da1710..76b73beead 100644 --- a/automation/gitlab-ci/build.yaml +++ b/automation/gitlab-ci/build.yaml @@ -596,3 +596,16 @@ qemu-system-aarch64-5.2.0-arm64-export: tags: - arm64 + +# x86_64 test artifacts + +alpine-3.12-rootfs-export: + stage: build + image: registry.gitlab.com/xen-project/xen/tests-artifacts/alpine:3.12 + script: + - mkdir binaries && cp /initrd.tar.gz binaries/initrd.tar.gz + artifacts: + paths: + - binaries/initrd.tar.gz + tags: + - x86_64 diff --git a/automation/tests-artifacts/alpine/3.12.dockerfile b/automation/tests-artifacts/alpine/3.12.dockerfile new file mode 100644 index 0000000000..b3909996b4 --- /dev/null +++ b/automation/tests-artifacts/alpine/3.12.dockerfile @@ -0,0 +1,66 @@ +FROM alpine:3.12 +LABEL maintainer.name="The Xen Project" \ + maintainer.email="xen-devel@lists.xenproject.org" + +ENV USER root + +RUN mkdir /build +WORKDIR /build + +RUN \ + # apk + apk update && \ + \ + # xen runtime deps + apk add musl && \ + apk add openrc && \ + apk add busybox && \ + apk add sudo && \ + apk add dbus && \ + apk add bash && \ + apk add python2 && \ + apk add zlib && \ + apk add ncurses && \ + apk add texinfo && \ + apk add yajl && \ + apk add libaio && \ + apk add xz-dev && \ + apk add util-linux && \ + apk add argp-standalone && \ + apk add libfdt && \ + apk add glib && \ + apk add pixman && \ + apk add curl && \ + apk add udev && \ + \ + # Xen + cd / && \ + # Minimal ramdisk environment in case of cpio output + rc-update add udev && \ + rc-update add udev-trigger && \ + rc-update add udev-settle && \ + rc-update add networking sysinit && \ + rc-update add loopback sysinit && \ + rc-update add bootmisc boot && \ + rc-update add devfs sysinit && \ + rc-update add dmesg sysinit && \ + rc-update add hostname boot && \ + rc-update add hwclock boot && \ + rc-update add hwdrivers sysinit && \ + rc-update add killprocs shutdown && \ + rc-update add modloop sysinit && \ + rc-update add modules boot && \ + rc-update add mount-ro shutdown && \ + rc-update add savecache shutdown && \ + rc-update add sysctl boot && \ + rc-update add local default && \ + cp -a /sbin/init /init && \ + echo "ttyS0" >> /etc/securetty && \ + echo "hvc0" >> /etc/securetty && \ + echo "ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100" >> /etc/inittab && \ + echo "hvc0::respawn:/sbin/getty -L hvc0 115200 vt100" >> /etc/inittab && \ + passwd -d "root" root && \ + \ + # Create rootfs + cd / && \ + tar cvzf /initrd.tar.gz bin dev etc home init lib mnt opt root sbin usr var From patchwork Tue Oct 26 01:41:59 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Stabellini X-Patchwork-Id: 12583759 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 922D2C4332F for ; Tue, 26 Oct 2021 01:42:19 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 582AB60232 for ; Tue, 26 Oct 2021 01:42:19 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 582AB60232 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.xenproject.org Received: from list by lists.xenproject.org with outflank-mailman.216155.375668 (Exim 4.92) (envelope-from ) id 1mfBTg-0002A0-1Q; Tue, 26 Oct 2021 01:42:12 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 216155.375668; Tue, 26 Oct 2021 01:42:12 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1mfBTf-00029o-Tq; Tue, 26 Oct 2021 01:42:11 +0000 Received: by outflank-mailman (input) for mailman id 216155; Tue, 26 Oct 2021 01:42:10 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1mfBTe-0001Zx-Lq for xen-devel@lists.xenproject.org; Tue, 26 Oct 2021 01:42:10 +0000 Received: from mail.kernel.org (unknown [198.145.29.99]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id c2a19dd3-c513-4b1b-80f8-6e8668b534a1; Tue, 26 Oct 2021 01:42:05 +0000 (UTC) Received: by mail.kernel.org (Postfix) with ESMTPSA id 4328160041; Tue, 26 Oct 2021 01:42:04 +0000 (UTC) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: c2a19dd3-c513-4b1b-80f8-6e8668b534a1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1635212524; bh=mvnhBoB/kIkG732gUvVDI6GT3xtvGIUsrPyx8vSP5Qo=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=D2hpE7ysQr7wrinGPFTuUj3vDE5AR5QMOmm/XRUx+0dmnDvWl2kpGqnWc+neNQIhg NDWqqD4cqh51EeCe7I+rXCPzbC2Iz8QfM7NjGjgzI6Aa9kIOumc8r5iZKWSy1e2M1Q T+UOHPADg24UOK5C7qAYepm9yunDVBv4E+4Ks6bOeRx2gaKUxb1vOohS0d1XUejnTb yPKxj/cZtF7FJ80UBKPTEjyuEhRjK2Zuresu2Q+shkz5zt9aOhJkAwIXijHK53H00x bklZ4lqZ2RyzNX+QuqBmkLO3dFGruQHjMsZQlcvbZ9JYl22vgZlMjHjS+Xh8iuvuS6 xg9n9z3PWrQVg== From: Stefano Stabellini To: xen-devel@lists.xenproject.org Cc: sstabellini@kernel.org, iwj@xenproject.org, cardoe@cardoe.com, wl@xen.org, andrew.cooper3@citrix.com, anthony.perard@citrix.com, Stefano Stabellini Subject: [PATCH v2 2/3] automation: Linux 5.10.74 test-artifact Date: Mon, 25 Oct 2021 18:41:59 -0700 Message-Id: <20211026014200.32102-2-sstabellini@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: From: Stefano Stabellini Build a 5.10 kernel to be used as Dom0 and DomU kernel for testing. This is almost the same as the existing ARM64 recipe for Linux 5.9, the only differences are: - upgrade to latest 5.10.x stable - force Xen modules to built-in (on ARM it was already done by defconfig) Also add the exporting job to build.yaml so that the binary can be used during gitlab-ci runs. Signed-off-by: Stefano Stabellini Reviewed-by: Anthony PERARD --- Note that make tinyconfig cannot be used because it doesn't boot on QEMU Changes in 2: - use two RUNs - remove apt-get cleanup earlier --- automation/gitlab-ci/build.yaml | 11 ++++++ .../tests-artifacts/kernel/5.10.74.dockerfile | 38 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 automation/tests-artifacts/kernel/5.10.74.dockerfile diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml index 76b73beead..0034c50950 100644 --- a/automation/gitlab-ci/build.yaml +++ b/automation/gitlab-ci/build.yaml @@ -609,3 +609,14 @@ alpine-3.12-rootfs-export: - binaries/initrd.tar.gz tags: - x86_64 + +kernel-5.10.74-export: + stage: build + image: registry.gitlab.com/xen-project/xen/tests-artifacts/kernel:5.10.74 + script: + - mkdir binaries && cp /bzImage binaries/bzImage + artifacts: + paths: + - binaries/bzImage + tags: + - x86_64 diff --git a/automation/tests-artifacts/kernel/5.10.74.dockerfile b/automation/tests-artifacts/kernel/5.10.74.dockerfile new file mode 100644 index 0000000000..112e27fe45 --- /dev/null +++ b/automation/tests-artifacts/kernel/5.10.74.dockerfile @@ -0,0 +1,38 @@ +FROM debian:unstable +LABEL maintainer.name="The Xen Project" \ + maintainer.email="xen-devel@lists.xenproject.org" + +ENV DEBIAN_FRONTEND=noninteractive +ENV LINUX_VERSION=5.10.74 +ENV USER root + +RUN mkdir /build +WORKDIR /build + +# build depends +RUN apt-get update && \ + apt-get --quiet --yes install \ + build-essential \ + libssl-dev \ + bc \ + curl \ + flex \ + bison \ + libelf-dev \ + && \ + apt-get autoremove -y && \ + apt-get clean && \ + rm -rf /var/lib/apt/lists* /tmp/* /var/tmp/* + +# Build the kernel +RUN curl -fsSLO https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-"$LINUX_VERSION".tar.xz && \ + tar xvJf linux-"$LINUX_VERSION".tar.xz && \ + cd linux-"$LINUX_VERSION" && \ + make defconfig && \ + make xen.config && \ + cp .config .config.orig && \ + cat .config.orig | grep XEN | grep =m |sed 's/=m/=y/g' >> .config && \ + make -j$(nproc) bzImage && \ + cp arch/x86/boot/bzImage / && \ + cd /build && \ + rm -rf linux-"$LINUX_VERSION"* From patchwork Tue Oct 26 01:42:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefano Stabellini X-Patchwork-Id: 12583757 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A1C14C433EF for ; Tue, 26 Oct 2021 01:42:18 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 5212D6023B for ; Tue, 26 Oct 2021 01:42:17 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 5212D6023B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=lists.xenproject.org Received: from list by lists.xenproject.org with outflank-mailman.216154.375656 (Exim 4.92) (envelope-from ) id 1mfBTb-0001qC-OV; Tue, 26 Oct 2021 01:42:07 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 216154.375656; Tue, 26 Oct 2021 01:42:07 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1mfBTb-0001q5-Ky; Tue, 26 Oct 2021 01:42:07 +0000 Received: by outflank-mailman (input) for mailman id 216154; Tue, 26 Oct 2021 01:42:06 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1mfBTa-0001bn-NF for xen-devel@lists.xenproject.org; Tue, 26 Oct 2021 01:42:06 +0000 Received: from mail.kernel.org (unknown [198.145.29.99]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id ec74f456-35fd-11ec-8420-12813bfff9fa; Tue, 26 Oct 2021 01:42:05 +0000 (UTC) Received: by mail.kernel.org (Postfix) with ESMTPSA id A5DAB6023B; Tue, 26 Oct 2021 01:42:04 +0000 (UTC) X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: ec74f456-35fd-11ec-8420-12813bfff9fa DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1635212524; bh=Kx4e9+ekLwMR2Kc2Ru1z1j3d1ZvwiDUM6uDgREU3a9c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tQO9I9XDiDnGpNsBda+yTd3vkdLZqNPvfNnSgwqna36qaZ+f+LKg4DQLLFanKyrcD ssd0OHY8ffpNKINQxU9ygLzkLjF0xFIqsmzGoUwdT2jT32wFjegqkA0ebUthPRadXt hISZSZQDCN40xfQicVvw5GxhN5JTalmX/igyqS8gqU6faU5Rp/r2Ie/6L3JlsEmwV9 vZozALXNktdKttsKTFwq8MRLF+y3/KN7tZwdpT/ANyAOFeXKte+1ZX+0fQOGCFChtx G6tEvYMA5NuxeCb/p7VI/wznILWRaDzl85nKpa01h4FbEIY00aBRJWMeyWIrWnWIsz zH/n/zaD1su0g== From: Stefano Stabellini To: xen-devel@lists.xenproject.org Cc: sstabellini@kernel.org, iwj@xenproject.org, cardoe@cardoe.com, wl@xen.org, andrew.cooper3@citrix.com, anthony.perard@citrix.com, Stefano Stabellini Subject: [PATCH v2 3/3] automation: add a QEMU based x86_64 Dom0/DomU test Date: Mon, 25 Oct 2021 18:42:00 -0700 Message-Id: <20211026014200.32102-3-sstabellini@kernel.org> X-Mailer: git-send-email 2.17.1 In-Reply-To: References: From: Stefano Stabellini Introduce a test based on QEMU to run Xen, Dom0 and start a DomU. This is similar to the existing qemu-alpine-arm64.sh script and test. The only differences are: - use Debian's qemu-system-x86_64 (on ARM we build our own) - use ipxe instead of u-boot and ImageBuilder Signed-off-by: Stefano Stabellini Reviewed-by: Anthony PERARD --- apt-get is not entirely removed yet as we need cpio and busybox-static. I am in favor of keeping them as apt-get packages because they are not needed in the build container. At the same time I see that being small they wouldn't increase the build container by much. Changes in v2: - remove curl - add comments - add set -x - use debian:stretch and remove qemu --- automation/gitlab-ci/test.yaml | 24 ++++++ automation/scripts/qemu-alpine-x86_64.sh | 95 ++++++++++++++++++++++++ 2 files changed, 119 insertions(+) create mode 100755 automation/scripts/qemu-alpine-x86_64.sh diff --git a/automation/gitlab-ci/test.yaml b/automation/gitlab-ci/test.yaml index 91a10febbf..43d248a604 100644 --- a/automation/gitlab-ci/test.yaml +++ b/automation/gitlab-ci/test.yaml @@ -47,6 +47,30 @@ qemu-alpine-arm64-gcc: - /^coverity-tested\/.*/ - /^stable-.*/ +qemu-alpine-x86_64-gcc: + stage: test + image: registry.gitlab.com/xen-project/xen/${CONTAINER} + variables: + CONTAINER: debian:stretch + script: + - ./automation/scripts/qemu-alpine-x86_64.sh 2>&1 | tee qemu-smoke-arm64.log + dependencies: + - alpine-3.12-gcc + - alpine-3.12-rootfs-export + - kernel-5.10.74-export + artifacts: + paths: + - smoke.serial + - '*.log' + when: always + tags: + - x86_64 + except: + - master + - smoke + - /^coverity-tested\/.*/ + - /^stable-.*/ + qemu-smoke-arm64-gcc: stage: test image: registry.gitlab.com/xen-project/xen/${CONTAINER} diff --git a/automation/scripts/qemu-alpine-x86_64.sh b/automation/scripts/qemu-alpine-x86_64.sh new file mode 100755 index 0000000000..2e9625109c --- /dev/null +++ b/automation/scripts/qemu-alpine-x86_64.sh @@ -0,0 +1,95 @@ +#!/bin/bash + +set -ex + +apt-get -qy update +apt-get -qy install --no-install-recommends cpio \ + busybox-static + +# DomU Busybox +cd binaries +mkdir -p initrd +mkdir -p initrd/bin +mkdir -p initrd/sbin +mkdir -p initrd/etc +mkdir -p initrd/dev +mkdir -p initrd/proc +mkdir -p initrd/sys +mkdir -p initrd/lib +mkdir -p initrd/var +mkdir -p initrd/mnt +cp /bin/busybox initrd/bin/busybox +initrd/bin/busybox --install initrd/bin +echo "#!/bin/sh + +mount -t proc proc /proc +mount -t sysfs sysfs /sys +mount -t devtmpfs devtmpfs /dev +/bin/sh" > initrd/init +chmod +x initrd/init +# DomU rootfs +cd initrd +find . | cpio --create --format='newc' | gzip > ../initrd.cpio.gz +cd .. + +# initrd.tar.gz is Dom0 rootfs +mkdir -p rootfs +cd rootfs +tar xvzf ../initrd.tar.gz +mkdir proc +mkdir run +mkdir srv +mkdir sys +rm var/run +cp -ar ../dist/install/* . +mv ../initrd.cpio.gz ./root +cp ../bzImage ./root +echo "name=\"test\" +memory=512 +vcpus=1 +kernel=\"/root/bzImage\" +ramdisk=\"/root/initrd.cpio.gz\" +extra=\"console=hvc0 root=/dev/ram0 rdinit=/bin/sh\" +" > root/test.cfg +echo "#!/bin/bash + +set -x + +export LD_LIBRARY_PATH=/usr/local/lib +bash /etc/init.d/xencommons start + +xl list + +xl create -c /root/test.cfg + +" > etc/local.d/xen.start +chmod +x etc/local.d/xen.start +echo "rc_verbose=yes" >> etc/rc.conf +# rebuild Dom0 rootfs +find . |cpio -H newc -o|gzip > ../xen-rootfs.cpio.gz +cd ../.. + +cat >> binaries/pxelinux.0 << EOF +#!ipxe + +kernel xen console=com1 +module bzImage console=hvc0 +module xen-rootfs.cpio.gz +boot +EOF + +# Run the test +rm -f smoke.serial +set +e +timeout -k 1 720 \ +qemu-system-x86_64 \ + -cpu qemu64,+svm \ + -m 2G -smp 2 \ + -monitor none -serial stdio \ + -nographic \ + -device virtio-net-pci,netdev=n0 \ + -netdev user,id=n0,tftp=binaries,bootfile=/pxelinux.0 |& tee smoke.serial + +set -e +(grep -q "Domain-0" smoke.serial && grep -q "BusyBox" smoke.serial) || exit 1 +exit 0