[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 06/27] ts-unixbench-build: prep the environment for running unixbench
by installing some dependencies, shipping the archive, untaring and building the sources. This accepts two parametrs, in the form 'host=somehost someguest', as most of the ts-guest-xxx scripts. If only the first one is provided, it must be 'host=somehost', and the script will prep the host. As this installs some packages, troubles may arise if running on a shered test host. This is not a too big deal, as hosts used for benchmarking should not be shared anyway. In any case, this patch from Ian Campbell will make the issue go away: http://lists.xen.org/archives/html/xen-devel/2014-04/msg02978.html Signed-off-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx> Cc: Wei Liu <wei.liu2@xxxxxxxxxx> Cc: Ian Campbell <Ian.Campbell@xxxxxxxxxx> Cc: Ian Jackson <Ian.Jackson@xxxxxxxxxxxxx> --- Changes from RFCv1: * make selecthost() interact directly with @ARGV, as requested during review; * renamed to -build (from -prep), as suggested during review; * use 'xaf' for automatic archive type detection, as suggested during review. --- ts-unixbench-build | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100755 ts-unixbench-build diff --git a/ts-unixbench-build b/ts-unixbench-build new file mode 100755 index 0000000..4852609 --- /dev/null +++ b/ts-unixbench-build @@ -0,0 +1,77 @@ +#!/usr/bin/perl -w +# This is part of "osstest", an automated testing framework for Xen. +# Copyright (C) 2009-2014 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 <http://www.gnu.org/licenses/>. + +use strict qw(vars); +use DBI; +use Osstest; +use Osstest::TestSupport; +use File::Basename; + +tsreadconfig(); + +# what we expect as argument list is: +# host=<somehost> [<someguest>] +our ($whhost,$gn) = @ARGV; +$whhost ||= 'host'; +our $ho= selecthost($whhost); + +our $gho= $ho; +if (defined $gn and $gn ne "") { + $gho= selectguest($gn, $ho); + my $err= guest_check_ip($gho); + die "$err $gho->{Name}" if defined $err; +} + +# By default, we expect to find UnixBench 5.1.3, stored in +# $c{Images}/benchs/unixbench.tgz. To use something different, define +# r{'unixbench_file'}. +our $unixbench_file= (defined($r{'unixbench_file'})) ? + $r{'unixbench_file'} : "$c{Images}/benchs/unixbench.tgz"; + +# Prepare the target, by installing dependencies, and building the benchmark +sub install_deps() { + target_install_packages_norec($gho, qw(build-essential libx11-dev + libgl1-mesa-dev libxext-dev + x11-apps)); +} + +# Ship the benchmark to the target machine +sub ship() { + logm("Shipping and extracting $unixbench_file"); + target_putfile_root($gho, 60, "$unixbench_file", "/root"); + + our $unixbench_filename= basename $unixbench_file; + target_cmd_root($gho, <<END, 200); + set -ex + rm -rf /root/unixbench/ + mkdir /root/unixbench + tar xaf /root/$unixbench_filename -C /root/unixbench --strip-components=1 +END +} + +sub build() { + target_cmd_root($gho, <<END, 200); + set -ex + cd /root/unixbench + sed -e "s/^# GRAPHIC_TESTS =/GRAPHIC_TESTS =/" -i Makefile + make +END +} + +install_deps(); +ship(); +build(); _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |