From mboxrd@z Thu Jan 1 00:00:00 1970 From: Dario Faggioli Subject: [PATCH RFC 2/9] ts-unixbench-prep: prep the environment for running unixbench Date: Thu, 26 Jun 2014 15:02:29 +0200 Message-ID: <20140626130229.20110.53073.stgit@Solace> References: <20140626124540.20110.24159.stgit@Solace> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20140626124540.20110.24159.stgit@Solace> 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: Ian.Jackson@citrix.com, Wei Liu , Ian.Campbell@citrix.com, Stefano Stabellini List-Id: xen-devel@lists.xenproject.org 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 --- 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 . + +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= [] +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, <