From mboxrd@z Thu Jan 1 00:00:00 1970 From: Stefano Stabellini Subject: [PATCH v3] OSSTEST: introduce a raisin build test Date: Fri, 8 May 2015 13:36:05 +0100 Message-ID: <1431088565-28310-1-git-send-email-stefano.stabellini@eu.citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: wei.liu2@citrix.com, ian.jackson@eu.citrix.com, ian.campbell@citrix.com, stefano.stabellini@eu.citrix.com List-Id: xen-devel@lists.xenproject.org Signed-off-by: Stefano Stabellini --- Changes in v3: - use $raisindir throughout ts-raisin-build - do not specify ENABLED_COMPONENTS so that empty REVISION variables can be used to disable building a raisin component Changes in v2: - set revision_* variables in mfi-common; - in ts-raisin-build set the *_REVISION config options based on the revision_* variables; - in ts-raisin-build, call store_revision appropriately; - divide the output in an hypervisor and a tools tarball. --- ap-common | 5 ++ mfi-common | 25 +++++++++ sg-run-job | 5 ++ ts-raisin-build | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 196 insertions(+) create mode 100755 ts-raisin-build diff --git a/ap-common b/ap-common index 64749e3..985eeec 100644 --- a/ap-common +++ b/ap-common @@ -47,13 +47,18 @@ # rumpsrc-related runvars needed only for old rumpuser-xen # (ie ones which need $bodges=1 in ts-rumpuserxen-build) +: ${TREE_RAISIN:=git://xenbits.xen.org/people/sstabellini/raisin.git} +: ${DEFAULT_REVISION_RAISIN:=master} + : ${TREE_SEABIOS_UPSTREAM:=git://git.seabios.org/seabios.git} : ${PUSH_TREE_SEABIOS:=$XENBITS:/home/xen/git/osstest/seabios.git} : ${BASE_TREE_SEABIOS:=git://xenbits.xen.org/osstest/seabios.git} +: ${TREE_SEABIOS:=$TREE_SEABIOS_UPSTREAM} : ${TREE_OVMF_UPSTREAM:=https://github.com/tianocore/edk2.git} : ${PUSH_TREE_OVMF:=$XENBITS:/home/xen/git/osstest/ovmf.git} : ${BASE_TREE_OVMF:=git://xenbits.xen.org/osstest/ovmf.git} +: ${TREE_OVMF:=$TREE_OVMF_UPSTREAM} : ${TREE_LINUXFIRMWARE:=git://xenbits.xen.org/osstest/linux-firmware.git} : ${PUSH_TREE_LINUXFIRMWARE:=$XENBITS:/home/osstest/ext/linux-firmware.git} diff --git a/mfi-common b/mfi-common index 16fc8c5..57bbf1c 100644 --- a/mfi-common +++ b/mfi-common @@ -215,6 +215,31 @@ create_build_jobs () { fi + if [ "x$REVISION_RAISIN" != xdisable ]; then + + ./cs-job-create $flight build-$arch-raisin build-raisin \ + arch=$arch \ + tree_xen=$TREE_XEN \ + $RUNVARS $BUILD_RUNVARS $BUILD_RAISIN_RUNVARS $arch_runvars \ + $suite_runvars \ + host_hostflags=$build_hostflags \ + buildjob=${bfi}build-$arch \ + tree_raisin=$TREE_RAISIN \ + tree_qemuu=$TREE_QEMU_UPSTREAM \ + tree_qemu=$TREE_QEMU \ + tree_seabios=$TREE_SEABIOS \ + tree_libvirt=$TREE_LIBVIRT \ + tree_ovmf=$TREE_OVMF \ + revision_xen=${REVISION_XEN:-master} \ + revision_qemu=${REVISION_QEMU:-master} \ + revision_qemuu=${REVISION_QEMU_UPSTREAM:-master} \ + revision_seabios=${REVISION_SEABIOS:-master} \ + revision_ovmf=${REVISION_OVMF:-master} \ + revision_libvirt=${REVISION_LIBVIRT:-master} \ + revision_raisin=${REVISION_RAISIN:-${DEFAULT_REVISION_RAISIN}}\ + + fi + if branch_wants_rumpkernel_tests; then case $arch in diff --git a/sg-run-job b/sg-run-job index eae159d..449118d 100755 --- a/sg-run-job +++ b/sg-run-job @@ -346,6 +346,7 @@ proc need-hosts/build {} { return BUILD } proc need-hosts/build-kern {} { return BUILD } proc need-hosts/build-libvirt {} { return BUILD } proc need-hosts/build-rumpuserxen {} { return BUILD } +proc need-hosts/build-raisin {} { return BUILD } proc run-job/build {} { run-ts . = ts-xen-build @@ -364,6 +365,10 @@ proc run-job/build-rumpuserxen {} { run-ts . = ts-xen-build + host tools } +proc run-job/build-raisin {} { + run-ts . = ts-raisin-build +} + proc prepare-build-host {} { global jobinfo run-ts broken = ts-hosts-allocate + host diff --git a/ts-raisin-build b/ts-raisin-build new file mode 100755 index 0000000..94c6447 --- /dev/null +++ b/ts-raisin-build @@ -0,0 +1,161 @@ +#!/usr/bin/perl -w +# This is part of "osstest", an automated testing framework for Xen. +# Copyright (C) 2009-2013 Citrix Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +use strict qw(vars); +use DBI; +use Osstest; +use File::Path; +use POSIX; +use Osstest::TestSupport; +use Osstest::BuildSupport; + +tsreadconfig(); +selectbuildhost(\@ARGV); +# remaining arguments are passed as targets to "make" +builddirsprops(); + +my $raisindir="$builddir/raisin"; + +sub checkout () { + prepbuilddirs(); + build_clone($ho, 'raisin', $builddir, 'raisin'); + + target_cmd_build($ho, 100, $builddir, <config + + echo >>config MAKE=\\"make $makeflags\\" + echo >>config PREFIX=\\"/usr\\" + echo >>config DESTDIR=dist + + echo >>config XEN_URL=\\"$r{tree_xen}\\" + echo >>config QEMU_URL=\\"$r{tree_qemuu}\\" + echo >>config QEMU_TRADITIONAL_URL=\\"$r{tree_qemu}\\" + echo >>config SEABIOS_URL=\\"$r{tree_seabios}\\" + echo >>config LIBVIRT_URL=\\"$r{tree_libvirt}\\" + echo >>config OVMF_URL=\\"$r{tree_ovmf}\\" + + echo >>config XEN_REVISION=\\"$r{revision_xen}\\" + echo >>config QEMU_REVISION=\\"$r{revision_qemuu}\\" + echo >>config QEMU_TRADITIONAL_REVISION=\\"$r{revision_qemu}\\" + echo >>config SEABIOS_REVISION=\\"$r{revision_seabios}\\" + echo >>config LIBVIRT_REVISION=\\"$r{revision_libvirt}\\" + echo >>config OVMF_REVISION=\\"$r{revision_ovmf}\\" +END +#/; +} + +sub build () { + target_cmd_root($ho, <(); 1; }; + if (!$tok) { push @probs, $@; print STDERR "failure (trapped): $@\n"; } +} + +checkout(); +trapping(\&build); +trapping(\&checkoutput); +trapping(\&collectversions); +divide(); +stash(); + +die "*** something failed:\n\n".(join "\n\n",@probs)."\n** something failed" + if @probs; + -- 1.7.10.4