[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH OSSTEST v3 04/15] make-flight: Run a basic test on each arm platform
Unlike x86 there is enough variation in the ARM platforms that it is worth having a basic test on each as part of a standard run. This relies on each host having an appropriate platform-$platform host flag. The existing test-ARCH-ARCH-xl test is retained as a floating test, while a new variant is added for each distinct platform present in the hostdb which is tied to that platform type. The intention is that only arm platforms will have platforms at first, although perhaps platform-intel and platform-amd could be added in the future too. There are currently no platform-* flags in the hostdb, so tested with s/platform-/equiv-/ and: ( set -ex ; source ./cri-getplatforms ; blessing=real ; export OSSTEST_CONFIG=production-config ; for p in '' `getplatforms "armhf"` ; do set +x ; echo PLATFORM: $p ; done ) which prints: PLATFORM: PLATFORM: marilith and with s/armhf/amd64/: PLATFORM: PLATFORM: rackservers-s40670 PLATFORM: r310-moth PLATFORM: rackservers-s40680 PLATFORM: dell-r310 PLATFORM: rackservers-s40679 PLATFORM: rackservers-s40663 PLATFORM: rackservers-q21011 Also tested in standalone mode with a ~/.xen-osstest/config containing: PlatformsArmhf midway cubietruck arndale Signed-off-by: Ian Campbell <ian.campbell@xxxxxxxxxx> v3: Split /\s+/ --- v2: Use platform-* prop not equiv-* Select platforms from host db --- Osstest/HostDB/Executive.pm | 28 ++++++++++++++++++++++++++++ Osstest/HostDB/Static.pm | 9 +++++++++ README | 3 +++ cri-getplatforms | 25 +++++++++++++++++++++++++ make-flight | 9 +++++++-- 5 files changed, 72 insertions(+), 2 deletions(-) create mode 100755 cri-getplatforms diff --git a/Osstest/HostDB/Executive.pm b/Osstest/HostDB/Executive.pm index b2c8dc9..6257829 100644 --- a/Osstest/HostDB/Executive.pm +++ b/Osstest/HostDB/Executive.pm @@ -67,6 +67,34 @@ END return $flags; } +sub get_arch_platforms ($$) { + my ($hd, $blessing, $arch) = @_; + + my @plats = ( ); + my $platsq = $dbh_tests->prepare(<<END); +SELECT DISTINCT hostflag + FROM hostflags h0 + WHERE EXISTS ( + SELECT * + FROM hostflags h1, hostflags h2 + WHERE h0.hostname = h1.hostname AND h1.hostname = h2.hostname + AND h1.hostflag = ? + AND h2.hostflag = ? + ) + AND hostflag like 'platform-%'; +END + + $platsq->execute("blessed-$blessing", "arch-$arch"); + + while (my ($plat) = $platsq->fetchrow_array()) { + $plat =~ s/^platform-//g or die; + push @plats, $plat; + } + + $platsq->finish(); + return @plats; +} + sub default_methods ($$) { my ($hd, $ho) = @_; diff --git a/Osstest/HostDB/Static.pm b/Osstest/HostDB/Static.pm index ad18395..60f5d3c 100644 --- a/Osstest/HostDB/Static.pm +++ b/Osstest/HostDB/Static.pm @@ -65,6 +65,15 @@ sub get_flags ($$) { #method return $flags; } +sub get_arch_platforms ($$) { + my ($hd, $blessing, $arch) = @_; + + my $prop = "Platforms".ucfirst($arch); + + return split /\s+/, $c{$prop} if $c{$prop}; + return () unless $c{$prop}; +} + sub default_methods ($$) { #method my ($hd, $ho) = @_; diff --git a/README b/README index 3fe5ecc..35532b7 100644 --- a/README +++ b/README @@ -395,6 +395,9 @@ The keys in ~/.ssh/id_{rsa,dsa}.pub and ~/.ssh/authorized_keys TestHostKeypairPath +Platforms<Arch> + List of platforms (i.e. distinct host types) to run a basic test on. + HostProp_GenEtherPrefixBase 5e:36:0e:f5 # :00:01 guest number in job appended # in standalone jobdb, ^^^^^ xor'd with low 16 bits of your uid diff --git a/cri-getplatforms b/cri-getplatforms new file mode 100755 index 0000000..067730c --- /dev/null +++ b/cri-getplatforms @@ -0,0 +1,25 @@ +# -*- bash -*- + +# This is part of "osstest", an automated testing framework for Xen. +# Copyright (C) 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/>. + +getplatforms () { + perl -e ' + use Osstest; + csreadconfig(); + print join " ", $mhostdb->get_arch_platforms("'$blessing'", "'$1'") or die $!; + ' +} diff --git a/make-flight b/make-flight index 9963a46..0814eba 100755 --- a/make-flight +++ b/make-flight @@ -27,6 +27,7 @@ buildflight=$4 flight=`./cs-flight-create $blessing $branch` . cri-common +. cri-getplatforms . ap-common . mfi-common @@ -284,10 +285,14 @@ do_passthrough_tests () { test_matrix_do_one () { # Basic PV Linux test with xl + for platform in '' `getplatforms $xenarch` ; do + suffix=${platform:+-$platform} + hostflags=${most_hostflags}${platform:+,platform-$platform} - job_create_test test-$xenarch$kern-$dom0arch-xl test-debian xl \ + job_create_test test-$xenarch$kern-$dom0arch-xl$suffix test-debian xl \ $xenarch $dom0arch \ - $debian_runvars all_hostflags=$most_hostflags + $debian_runvars all_hostflags=$hostflags + done job_create_test test-$xenarch$kern-$dom0arch-libvirt test-debian libvirt \ $xenarch $dom0arch \ -- 2.1.1 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |