[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH RFC 2/9] ts-unixbench-prep: 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. XXX: I see it useful that this works for the host too, as at some point we may want to run benchmarks on dom0 or even bare metal. Signed-off-by: Dario Faggioli <dario.faggioli@xxxxxxxxxx> --- ts-unixbench-prep | 79 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100755 ts-unixbench-prep diff --git a/ts-unixbench-prep b/ts-unixbench-prep new file mode 100755 index 0000000..607d1a8 --- /dev/null +++ b/ts-unixbench-prep @@ -0,0 +1,79 @@ +#!/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 <http://www.gnu.org/licenses/>. + +use strict qw(vars); +use DBI; +use Osstest; +use Osstest::TestSupport; +use File::Basename; + +use feature 'switch'; + +tsreadconfig(); + +# what we expect as argument list is: +# host=<somehost> [<someguest>] +our $ho= selecthost($ARGV[0]); shift @ARGV; +our $gho= $ho; +if ( (0+@ARGV) == 1) { + $gho= selectguest($ARGV[0], $ho); + my $err= guest_check_ip($gho); + die "$err $gho->{Name}" if defined $err; +} + +logm("Prep the environment for running unixbench"); + +# packages needed to build and run +target_install_packages_norec($gho, qw(build-essential libx11-dev + libgl1-mesa-dev libxext-dev)); + +# Ship the benchmark to the target machine. 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'}. +# +# We also assume we're dealing with a tarball, and we try to figure out +# whether or not it is compressed, and if yes, how. Check is rather basic, +# relying only on the file extension. +# +my $unixbench_file= (defined($r{'unixbench_file'})) ? $r{'unixbench_file'} : + "$c{Images}/benchs/unixbench.tgz"; +target_putfile_root($gho, 60, "$unixbench_file", "/root"); + +my @exts= qw(.tar .tgz .tbz2. .bz2 .gzip); +my $extract_cmd= 'xf'; +my ($name, $dir, $ext) = fileparse($unixbench_file, @exts); + +given ($ext) { + $extract_cmd= 'xf' when ('.tar'); + $extract_cmd= 'zxf' when ['.tgz', '.gzip']; + $extract_cmd= 'jxf' when ['.tbz2', '.bz2']; + default { die "unrecognised file extension $ext" } +} + +# Prepare the target, by installing dependencies, and build the benchmark +target_install_packages_norec($gho, qw(build-essential libx11-dev + libgl1-mesa-dev libxext-dev + x11-apps)); +target_cmd_root($gho, <<END, 200); + set -ex + rm -rf /root/unixbench/ + mkdir /root/unixbench + tar $extract_cmd /root/$name$ext -C /root/unixbench --strip-components=1 + cd /root/unixbench + sed -e "s/^# GRAPHIC_TESTS =/GRAPHIC_TESTS =/" -i Makefile + make +END _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |