* [OSSTEST PATCH 00/26] rump kernels: Fix build
@ 2016-09-05 14:02 Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 01/26] Executive: Do update flights_harness_touched for play flights Ian Jackson
` (25 more replies)
0 siblings, 26 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel
This series fixes the rump kernel build, and the test plumbing. The
tests still fail because they xenbus driver in rump kernel upstream
has rotted. I'm working on that...
Ian.
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 01/26] Executive: Do update flights_harness_touched for play flights
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 02/26] Executive: Allow out-of-order manipulations of flights intended play Ian Jackson
` (24 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
Have \bplay\b simply bypass the blessing check, but not the harness
revision update which follows.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
Osstest/JobDB/Executive.pm | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/Osstest/JobDB/Executive.pm b/Osstest/JobDB/Executive.pm
index c0af21c..51c1ebb 100644
--- a/Osstest/JobDB/Executive.pm
+++ b/Osstest/JobDB/Executive.pm
@@ -108,9 +108,11 @@ END
die "modifying flight $fl but flight not found\n"
unless defined $bless;
- return if $bless =~ m/\bplay\b/;
- die "modifying flight $fl blessing $bless expected @$flok\n"
- unless grep { $_ eq $bless } @$flok;
+
+ unless ($bless =~ m/\bplay\b/) {
+ die "modifying flight $fl blessing $bless expected @$flok\n"
+ unless grep { $_ eq $bless } @$flok;
+ }
my $rev = get_harness_rev();
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 02/26] Executive: Allow out-of-order manipulations of flights intended play
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 01/26] Executive: Do update flights_harness_touched for play flights Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 03/26] TestSupport: Produce stack trace for undef tfileex Ian Jackson
` (23 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
Flights being operated on by a developer hacking about with the code,
which were created with intended blessing `play', are usually blessed
`running' or `broken' or something. So the safety catch bypass needs
to look at the intended blessing too.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
Osstest/JobDB/Executive.pm | 6 +++---
README.dev | 3 ++-
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/Osstest/JobDB/Executive.pm b/Osstest/JobDB/Executive.pm
index 51c1ebb..c21eba7 100644
--- a/Osstest/JobDB/Executive.pm
+++ b/Osstest/JobDB/Executive.pm
@@ -102,14 +102,14 @@ sub dbfl_check ($$) { #method
}
die unless ref($flok) eq 'ARRAY';
- my ($bless) = $dbh_tests->selectrow_array(<<END, {}, $fl);
- SELECT blessing FROM flights WHERE flight=?
+ my ($bless, $intended) = $dbh_tests->selectrow_array(<<END, {}, $fl);
+ SELECT blessing, intended FROM flights WHERE flight=?
END
die "modifying flight $fl but flight not found\n"
unless defined $bless;
- unless ($bless =~ m/\bplay\b/) {
+ unless ($bless =~ m/\bplay\b/ || $intended =~ m/\bplay\b/) {
die "modifying flight $fl blessing $bless expected @$flok\n"
unless grep { $_ eq $bless } @$flok;
}
diff --git a/README.dev b/README.dev
index 351cd25..a5b23b0 100644
--- a/README.dev
+++ b/README.dev
@@ -341,4 +341,5 @@ they crashed, are simply left with whatever blessing they had at the
time.
There is a special exception to the tools' flight status checks: any
-flight whose blessing contains `play' can be operated on out of order.
+flight whose blessing (or intended blessing) contains `play' can be
+operated on out of order.
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 03/26] TestSupport: Produce stack trace for undef tfileex
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 01/26] Executive: Do update flights_harness_touched for play flights Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 02/26] Executive: Allow out-of-order manipulations of flights intended play Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 04/26] rumprun: Rename all `rumpuserxen' to `rumprun' Ian Jackson
` (22 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
Use `confess' to see where an undef $rfile came from. I think there
will probably be lots more of this pattern.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
Osstest/TestSupport.pm | 3 +++
1 file changed, 3 insertions(+)
diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm
index d0d6ef3..a6ab18f 100644
--- a/Osstest/TestSupport.pm
+++ b/Osstest/TestSupport.pm
@@ -31,6 +31,7 @@ use Osstest::Logtailer;
use File::Copy;
use File::Basename;
use IO::Handle;
+use Carp;
BEGIN {
use Exporter ();
@@ -523,6 +524,8 @@ sub teditfileex {
my $code= pop @_;
my ($ho,$rfile,$lleaf,$rdest) = @_;
+ confess unless defined $rfile;
+
if (!defined $rdest) {
$rdest= $rfile;
}
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 04/26] rumprun: Rename all `rumpuserxen' to `rumprun'
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (2 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 03/26] TestSupport: Produce stack trace for undef tfileex Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 05/26] rumprun: Fetch source from new upstream Ian Jackson
` (21 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
The names have changed upstream.
Since upstream is no longer compatible and these tests have been
failing since then, we are going to treat this as an entirely new test
series.
In this patch we rename everything mechanically. More interesting
changes will come later.
git-mv -f ts-rumpuserxen-build ts-rumprun-build
git-mv -f ts-rumpuserxen-demo-setup ts-rumprun-demo-setup
git-mv -f ts-rumpuserxen-demo-xenstorels ts-rumprun-demo-xenstorels
git-ls-files | xargs perl -i~ -pe 's/rumpuserxen/rumprun/g'
git-ls-files | xargs perl -i~ -pe 's/(_|\b)rumpuserxen(_|\b)/$1rumprun$2/g'
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
allow.all | 4 +-
allow.rumpuserxen | 2 +-
ap-common | 16 +++---
ap-fetch-version | 6 +-
ap-fetch-version-old | 8 +--
ap-print-url | 4 +-
ap-push | 8 +--
cr-daily-branch | 12 ++--
cri-common | 2 +-
crontab | 4 +-
make-flight | 14 ++---
mfi-common | 16 +++---
sg-run-job | 18 +++---
ts-rumprun-build | 126 +++++++++++++++++++++++++++++++++++++++++
ts-rumprun-demo-setup | 92 ++++++++++++++++++++++++++++++
ts-rumprun-demo-xenstorels | 124 ++++++++++++++++++++++++++++++++++++++++
ts-rumpuserxen-build | 126 -----------------------------------------
ts-rumpuserxen-demo-setup | 92 ------------------------------
ts-rumpuserxen-demo-xenstorels | 124 ----------------------------------------
19 files changed, 399 insertions(+), 399 deletions(-)
create mode 100755 ts-rumprun-build
create mode 100755 ts-rumprun-demo-setup
create mode 100755 ts-rumprun-demo-xenstorels
delete mode 100755 ts-rumpuserxen-build
delete mode 100755 ts-rumpuserxen-demo-setup
delete mode 100755 ts-rumpuserxen-demo-xenstorels
diff --git a/allow.all b/allow.all
index 785d0b2..c4a2854 100644
--- a/allow.all
+++ b/allow.all
@@ -2,6 +2,6 @@ test-@@-rtds@@
build-@@ logs-capture@@
test-@@-pcipt@@
test-@@-qemuu-@@ guest-localmigrate
-test-@@-rumpuserxen@@ rumpuserxen-demo-xenstorels/xenstorels
+test-@@-rumprun@@ rumprun-demo-xenstorels/xenstorels
test-@@-win7-@@ guest-stop
-test-@@-rumpuserxen-@@ rumpuserxen-demo-xenstorels/xenstorels.repeat
+test-@@-rumprun-@@ rumprun-demo-xenstorels/xenstorels.repeat
diff --git a/allow.rumpuserxen b/allow.rumpuserxen
index d9034a2..436417b 100644
--- a/allow.rumpuserxen
+++ b/allow.rumpuserxen
@@ -1 +1 @@
-!test-@@-rumpuserxen-@@ rumpuserxen-demo-xenstorels/xenstorels.repeat
+!test-@@-rumprun-@@ rumprun-demo-xenstorels/xenstorels.repeat
diff --git a/ap-common b/ap-common
index 19c7580..6fe3b78 100644
--- a/ap-common
+++ b/ap-common
@@ -37,15 +37,15 @@
: ${PUSH_TREE_LIBVIRT:=$XENBITS:/home/xen/git/libvirt.git}
: ${BASE_TREE_LIBVIRT:=git://xenbits.xen.org/libvirt.git}
-: ${TREE_RUMPUSERXEN:=https://github.com/rumpkernel/rumprun-xen}
-: ${TREEVCS_RUMPUSERXEN:=git}
-: ${BASE_TREE_RUMPUSERXEN:=git://xenbits.xen.org/rumpuser-xen.git}
-: ${PUSH_TREE_RUMPUSERXEN:=$XENBITS:/home/xen/git/rumpuser-xen.git}
+: ${TREE_RUMPRUN:=https://github.com/rumpkernel/rumprun-xen}
+: ${TREEVCS_RUMPRUN:=git}
+: ${BASE_TREE_RUMPRUN:=git://xenbits.xen.org/rumpuser-xen.git}
+: ${PUSH_TREE_RUMPRUN:=$XENBITS:/home/xen/git/rumpuser-xen.git}
-: ${TREE_RUMPUSERXEN_RUMPSRC:=$(besteffort_repo https://github.com/rumpkernel/rumpkernel-netbsd-src)}
-: ${TREEVCS_RUMPUSERXEN_RUMPSRC:=git}
+: ${TREE_RUMPRUN_RUMPSRC:=$(besteffort_repo https://github.com/rumpkernel/rumpkernel-netbsd-src)}
+: ${TREEVCS_RUMPRUN_RUMPSRC:=git}
# rumpsrc-related runvars needed only for old rumpuser-xen
-# (ie ones which need $bodges=1 in ts-rumpuserxen-build)
+# (ie ones which need $bodges=1 in ts-rumprun-build)
: ${TREE_SEABIOS_UPSTREAM:=git://git.seabios.org/seabios.git}
: ${PUSH_TREE_SEABIOS:=$XENBITS:/home/xen/git/osstest/seabios.git}
@@ -79,7 +79,7 @@ fi
: ${LOCALREV_XEN:=daily-cron.$branch}
: ${LOCALREV_LINUX:=daily-cron.$branch}
: ${LOCALREV_LIBVIRT:=daily-cron.$branch}
-: ${LOCALREV_RUMPUSERXEN:=daily-cron.$branch}
+: ${LOCALREV_RUMPRUN:=daily-cron.$branch}
: ${LOCALREV_SEABIOS:=daily-cron.$branch}
: ${LOCALREV_OVMF:=daily-cron.$branch}
diff --git a/ap-fetch-version b/ap-fetch-version
index f26d60a..8562159 100755
--- a/ap-fetch-version
+++ b/ap-fetch-version
@@ -90,9 +90,9 @@ libvirt)
repo_tree_rev_fetch_git libvirt \
$TREE_LIBVIRT master $LOCALREV_LIBVIRT
;;
-rumpuserxen)
- repo_tree_rev_fetch_git rumpuserxen \
- $TREE_RUMPUSERXEN master $LOCALREV_RUMPUSERXEN
+rumprun)
+ repo_tree_rev_fetch_git rumprun \
+ $TREE_RUMPRUN master $LOCALREV_RUMPRUN
;;
seabios)
repo_tree_rev_fetch_git seabios \
diff --git a/ap-fetch-version-old b/ap-fetch-version-old
index 7cc31a3..5d44add 100755
--- a/ap-fetch-version-old
+++ b/ap-fetch-version-old
@@ -30,7 +30,7 @@ check_ap_fetch_placeholders
: ${BASE_TAG_LINUX2639:=tested/2.6.39.x}
: ${BASE_LOCALREV_LINUX:=daily-cron.$branch.old}
: ${BASE_LOCALREV_LIBVIRT:=daily-cron.$branch.old}
-: ${BASE_LOCALREV_RUMPUSERXEN:=daily-cron.$branch.old}
+: ${BASE_LOCALREV_RUMPRUN:=daily-cron.$branch.old}
: ${BASE_LOCALREV_SEABIOS:=daily-cron.$branch.old}
: ${BASE_LOCALREV_OVMF:=daily-cron.$branch.old}
: ${BASE_TAG_LIBVIRT:=xen-tested-master}
@@ -97,9 +97,9 @@ libvirt)
repo_tree_rev_fetch_git libvirt \
$BASE_TREE_LIBVIRT $BASE_TAG_LIBVIRT $BASE_LOCALREV_LIBVIRT
;;
-rumpuserxen)
- repo_tree_rev_fetch_git rumpuserxen \
- $BASE_TREE_RUMPUSERXEN xen-tested-master $BASE_LOCALREV_RUMPUSERXEN
+rumprun)
+ repo_tree_rev_fetch_git rumprun \
+ $BASE_TREE_RUMPRUN xen-tested-master $BASE_LOCALREV_RUMPRUN
;;
seabios)
repo_tree_rev_fetch_git seabios \
diff --git a/ap-print-url b/ap-print-url
index 4088852..8a41e70 100755
--- a/ap-print-url
+++ b/ap-print-url
@@ -52,8 +52,8 @@ linuxfirmware)
libvirt)
echo $TREE_LIBVIRT
;;
-rumpuserxen)
- echo $TREE_RUMPUSERXEN
+rumprun)
+ echo $TREE_RUMPRUN
;;
seabios)
echo $TREE_SEABIOS_UPSTREAM
diff --git a/ap-push b/ap-push
index e33a803..7d3d473 100755
--- a/ap-push
+++ b/ap-push
@@ -37,7 +37,7 @@ TREE_LINUX=$PUSH_TREE_LINUX
TREE_QEMU_UPSTREAM=$PUSH_TREE_QEMU_UPSTREAM
TREE_XEN=$PUSH_TREE_XEN
TREE_LIBVIRT=$PUSH_TREE_LIBVIRT
-TREE_RUMPUSERXEN=$PUSH_TREE_RUMPUSERXEN
+TREE_RUMPRUN=$PUSH_TREE_RUMPRUN
TREE_SEABIOS=$PUSH_TREE_SEABIOS
TREE_OVMF=$PUSH_TREE_OVMF
@@ -112,9 +112,9 @@ libvirt)
cd $repos/libvirt
git push $TREE_LIBVIRT $revision:refs/heads/xen-tested-master
;;
-rumpuserxen)
- cd $repos/rumpuserxen
- git push $TREE_RUMPUSERXEN $revision:refs/heads/xen-tested-master
+rumprun)
+ cd $repos/rumprun
+ git push $TREE_RUMPRUN $revision:refs/heads/xen-tested-master
;;
seabios)
cd $repos/seabios
diff --git a/cr-daily-branch b/cr-daily-branch
index 21780b8..7d49439 100755
--- a/cr-daily-branch
+++ b/cr-daily-branch
@@ -195,9 +195,9 @@ if [ "x$REVISION_LIBVIRT" = x ]; then
determine_version REVISION_LIBVIRT libvirt LIBVIRT
export REVISION_LIBVIRT
fi
-if [ "x$REVISION_RUMPUSERXEN" = x ]; then
- determine_version REVISION_RUMPUSERXEN rumpuserxen RUMPUSERXEN
- export REVISION_RUMPUSERXEN
+if [ "x$REVISION_RUMPRUN" = x ]; then
+ determine_version REVISION_RUMPRUN rumprun RUMPRUN
+ export REVISION_RUMPRUN
fi
if [ "x$REVISION_LINUXFIRMWARE" = x ]; then
determine_version REVISION_LINUXFIRMWARE linuxfirmware LINUXFIRMWARE
@@ -238,9 +238,9 @@ libvirt)
realtree=libvirt
NEW_REVISION=$REVISION_LIBVIRT
;;
-rumpuserxen)
- realtree=rumpuserxen
- NEW_REVISION=$REVISION_RUMPUSERXEN
+rumprun)
+ realtree=rumprun
+ NEW_REVISION=$REVISION_RUMPRUN
export REVISION_LINUX_OLD=disable
export REVISION_LIBVIRT=disable
;;
diff --git a/cri-common b/cri-common
index cdee48d..6e555a6 100644
--- a/cri-common
+++ b/cri-common
@@ -76,7 +76,7 @@ select_xenbranch () {
linux-*) tree=linux; xenbranch=xen-unstable ;;
linuxfirmware) tree=linuxfirmware; xenbranch=xen-unstable ;;
libvirt) tree=libvirt; xenbranch=xen-unstable ;;
- rumpuserxen) tree=rumpuserxen; xenbranch=xen-unstable ;;
+ rumprun) tree=rumprun; xenbranch=xen-unstable ;;
seabios) tree=seabios; xenbranch=xen-unstable ;;
ovmf) tree=ovmf; xenbranch=xen-unstable ;;
distros-*) tree=none; xenbranch=xen-unstable ;;
diff --git a/crontab b/crontab
index 6ddc2b8..f1ba2e5 100755
--- a/crontab
+++ b/crontab
@@ -8,8 +8,8 @@ MAILTO=ian.jackson@citrix.com,ian.campbell@eu.citrix.com
0 * * * * cd testing.git && BRANCHES=xen-unstable-smoke ./cr-for-branches branches -q "./cr-daily-branch --real"
4-59/30 * * * * cd testing.git && ./cr-for-branches branches -q "./cr-daily-branch --real"
18 9 * * 3,7 cd testing.git && BRANCHES=xen-unstable-coverity ./cr-for-branches branches -w "./cr-daily-branch --real"
-18 4 * * * cd testing.git && BRANCHES='linux-3.0 libvirt rumpuserxen' ./cr-for-branches branches -w "./cr-daily-branch --real"
-6-59/15 * * * * cd testing.git && EXTRA_BRANCHES='linux-3.0 rumpuserxen libvirt' ./cr-for-branches bisects -w "./cr-try-bisect --real"
+18 4 * * * cd testing.git && BRANCHES='linux-3.0 libvirt rumprun' ./cr-for-branches branches -w "./cr-daily-branch --real"
+6-59/15 * * * * cd testing.git && EXTRA_BRANCHES='linux-3.0 rumprun libvirt' ./cr-for-branches bisects -w "./cr-try-bisect --real"
#8-59/5 * * * * cd bisects/adhoc.git && with-lock-ex -q data-tree-lock bash -c "./cr-try-bisect-adhoc; exit $?"
22 8 * * * cd testing.git && BRANCHES=maintjobs ./cr-for-branches . -w ./cr-all-branch-statuses ''
3 4 * * * savelog -c28 testing.git/tmp/cr-for-branches.log >/dev/null
diff --git a/make-flight b/make-flight
index 18e5bc3..906bf2b 100755
--- a/make-flight
+++ b/make-flight
@@ -107,9 +107,9 @@ job_create_test_filter_callback () {
libvirt)
if [ x$toolstack != xlibvirt ] ; then return 1; fi
;;
- rumpuserxen)
+ rumprun)
case "$job" in
- *-rumpuserxen-*)
+ *-rumprun-*)
;;
*)
: "suppressed $job"
@@ -169,7 +169,7 @@ arch_branch_filter_callback () {
qemu-upstream-4.2-testing) return 1;;
qemu-upstream-4.3-testing) return 1;;
qemu-upstream-4.4-testing) return 1;;
- rumpuserxen) return 1;;
+ rumprun) return 1;;
seabios) return 1;;
ovmf) return 1;;
esac
@@ -197,11 +197,11 @@ do_rumpkernel_tests () {
branch_wants_rumpkernel_tests || return 0
rumparch=$dom0arch
- job_create_test test-$xenarch$kern-$dom0arch-rumpuserxen-$rumparch \
- test-rumpuserxen xl \
+ job_create_test test-$xenarch$kern-$dom0arch-rumprun-$rumparch \
+ test-rumprun xl \
$xenarch $dom0arch \
- guests_rumpuserxenbuildjob=build-$rumparch-rumpuserxen \
- rump_builtimage=rumpuserxen:/usr/local/lib/xen/rump-kernel/rump-kernel \
+ guests_rumprunbuildjob=build-$rumparch-rumprun \
+ rump_builtimage=rumprun:/usr/local/lib/xen/rump-kernel/rump-kernel \
rump_cmdline=3 \
xenstorels_builtimage=:/usr/local/bin/xenstore \
xenstorels_cmdline='ls -fp device' \
diff --git a/mfi-common b/mfi-common
index 971ded3..8f27923 100644
--- a/mfi-common
+++ b/mfi-common
@@ -269,24 +269,24 @@ create_build_jobs () {
case $arch in
i386|amd64)
- job_create_build build-$arch-rumpuserxen build-rumpuserxen \
+ job_create_build build-$arch-rumprun build-rumprun \
arch=$arch \
tree_xen=$TREE_XEN \
- $RUNVARS $BUILD_RUNVARS $BUILD_RUMPUSERXEN_RUNVARS $arch_runvars \
+ $RUNVARS $BUILD_RUNVARS $BUILD_RUMPRUN_RUNVARS $arch_runvars \
$hostos_runvars \
host_hostflags=$build_hostflags \
buildjob=${bfi}build-$arch \
- tree_rumpuserxen=$TREE_RUMPUSERXEN \
- ${TREEVCS_RUMPUSERXEN:+treevcs_rumpuserxen=}${TREEVCS_RUMPUSERXEN} \
- revision_rumpuserxen=$REVISION_RUMPUSERXEN \
+ tree_rumprun=$TREE_RUMPRUN \
+ ${TREEVCS_RUMPRUN:+treevcs_rumprun=}${TREEVCS_RUMPRUN} \
+ revision_rumprun=$REVISION_RUMPRUN \
tree_xen=$TREE_XEN \
tree_qemuu=$TREE_QEMU_UPSTREAM \
revision_xen=$REVISION_XEN \
revision_qemuu=$REVISION_QEMU_UPSTREAM \
- tree_rumpuserxen_rumpsrc=$TREE_RUMPUSERXEN_RUMPSRC \
- ${TREEVCS_RUMPUSERXEN_RUMPSRC:+treevcs_rumpuserxen_rumpsrc=}${TREEVCS_RUMPUSERXEN_RUMPSRC}
+ tree_rumprun_rumpsrc=$TREE_RUMPRUN_RUMPSRC \
+ ${TREEVCS_RUMPRUN_RUMPSRC:+treevcs_rumprun_rumpsrc=}${TREEVCS_RUMPRUN_RUMPSRC}
# rumpsrc-related runvars needed only for old rumpuser-xen
- # (ie ones which need $bodges=1 in ts-rumpuserxen-build)
+ # (ie ones which need $bodges=1 in ts-rumprun-build)
;;
esac
diff --git a/sg-run-job b/sg-run-job
index c49fb5f..31a5589 100755
--- a/sg-run-job
+++ b/sg-run-job
@@ -441,18 +441,18 @@ proc test-guest-nomigr {g} {
run-ts . = ts-guest-destroy + host $g
}
-proc need-hosts/test-rumpuserxen {} { return host }
-proc run-job/test-rumpuserxen {} {
+proc need-hosts/test-rumprun {} { return host }
+proc run-job/test-rumprun {} {
set g rump
- run-ts . = ts-rumpuserxen-demo-setup + host $g
+ run-ts . = ts-rumprun-demo-setup + host $g
run-ts . = ts-guest-start + host $g
run-ts . = ts-guest-destroy + host $g
set g xenstorels
- run-ts . = ts-rumpuserxen-demo-setup + host + $g
- run-ts . = ts-rumpuserxen-demo-xenstorels + host + $g
+ run-ts . = ts-rumprun-demo-setup + host + $g
+ run-ts . = ts-rumprun-demo-xenstorels + host + $g
run-ts . = ts-guest-destroy-hard + host + $g
repeat-ts 150 =.repeat \
- ts-rumpuserxen-demo-xenstorels + host + $g + \; \
+ ts-rumprun-demo-xenstorels + host + $g + \; \
ts-guest-destroy-hard host $g +
}
@@ -465,7 +465,7 @@ if {[file exists sg-run-job-adhoc]} {
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-rumprun {} { return BUILD }
proc run-job/build {} {
run-ts . = ts-xen-build
@@ -479,8 +479,8 @@ proc run-job/build-libvirt {} {
run-ts . = ts-libvirt-build
}
-proc run-job/build-rumpuserxen {} {
- run-ts . = ts-rumpuserxen-build
+proc run-job/build-rumprun {} {
+ run-ts . = ts-rumprun-build
run-ts . = ts-xen-build + host tools
}
diff --git a/ts-rumprun-build b/ts-rumprun-build
new file mode 100755
index 0000000..574781f
--- /dev/null
+++ b/ts-rumprun-build
@@ -0,0 +1,126 @@
+#!/usr/bin/perl
+# 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 Osstest::BuildSupport;
+
+tsreadconfig();
+selectbuildhost(\@ARGV);
+builddirsprops();
+
+our %submodmap = qw(nblibs nblibs
+ buildrump.sh buildrumpsh
+ rumpsrc netbsdsrc);
+
+our ($rux, $bodges);
+
+sub checkout () {
+ prepbuilddirs();
+ xendist();
+
+ build_clone($ho, 'rumprun', $builddir, 'rumprun');
+ my $submodules =
+ submodulefixup($ho, 'rumprun', 'rumprun', \%submodmap);
+ $rux = "$builddir/rumprun";
+
+ $bodges = submodule_have($submodules,'nblibs')
+ && !submodule_have($submodules,'netbsdsrc');
+
+ if ($bodges) {
+ my $rumpsrcgitrevr = "$rux/buildrump.sh/.srcgitrev";
+ my $rumpsrcgitrevl = "buildrump-srcgitrev";
+ my $rev = $r{revision_rumprun_rumpsrc};
+ if (length $rev) {
+ target_putfilecontents_stash($ho,30,
+ "$r{revision_rumprun_rumpsrc}\n",
+ $rumpsrcgitrevr, $rumpsrcgitrevl);
+ } else {
+ target_getfile($ho,30,$rumpsrcgitrevr,"$stash/$rumpsrcgitrevl");
+ $rev = get_filecontents("$stash/$rumpsrcgitrevl");
+ chomp $rev or die;
+ $rev =~ m/^[0-9a-f]+$/ or die;
+ store_runvar('revision_rumprun_rumpsrc', $rev);
+ }
+
+ build_clone($ho, "rumprun_rumpsrc", $builddir,
+ "rumprun/rumpsrc");
+ store_vcs_revision('rumprun_rumpsrc', $rev, 'git');
+ }
+}
+
+sub massage() {
+ return unless $bodges;
+
+ # Very poor
+ target_editfile($ho, "$rux/buildxen.sh", undef,
+ "$rux/grievous-bodge-nblibs", sub {
+ while (<EI>) {
+ next unless m/^\Qif [ ! -d rumpsrc ]; then\E/..m/^fi/;
+ next unless m/cp -Rp nblibs/;
+ print EO or die $!;
+ }
+ });
+ target_cmd_build($ho, 2000, $rux, "bash -x grievous-bodge-nblibs");
+
+ # Rather poor
+ target_editfile($ho, "$rux/Config.mk", sub {
+ while (<EI>) {
+ s/^XEN_HEADERS=/XEN_HEADERS?=/;
+ print EO or die $!;
+ }
+ });
+}
+
+sub build() {
+ target_cmd_build($ho, 7200, $rux, <<END);
+ export XEN_HEADERS=$xendist/usr/local/include/xen
+ (./buildxen.sh && touch ../build-ok-stamp) |tee ../log
+ test -f ../build-ok-stamp #/
+ echo ok.
+END
+}
+
+sub recordtools() {
+ foreach my $stem (qw(rumprun-xen rumpxen-app)) {
+ my $apptool = "$rux/app-tools/$stem";
+ next unless target_file_exists($ho, "$apptool-configure");
+ store_runvar('cmdprefix_configure', "$apptool-configure");
+ store_runvar('cmdprefix_make', "$apptool-make");
+ return;
+ }
+ die "app-tools not found ($rux)";
+}
+
+sub install() {
+ my $destdir="dist/usr/local/lib/xen/rump-kernel";
+ target_cmd_build($ho, 300, $builddir, <<END);
+ mkdir -p $destdir
+ cp rumprun/rump-kernel* $destdir
+ cp -r rumprun/img $destdir/
+ cp rumprun/domain_config $destdir
+END
+}
+
+checkout();
+massage();
+build();
+recordtools();
+install();
+built_stash($ho, $builddir, 'dist', 'rumprundist');
diff --git a/ts-rumprun-demo-setup b/ts-rumprun-demo-setup
new file mode 100755
index 0000000..655328f
--- /dev/null
+++ b/ts-rumprun-demo-setup
@@ -0,0 +1,92 @@
+#!/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;
+
+tsreadconfig();
+
+our ($whhost,$gn) = @ARGV;
+$whhost ||= 'host';
+$gn ||= 'rump';
+
+our $ho= selecthost($whhost);
+
+our $gho;
+
+our $rkdist;
+
+sub prep () {
+ $gho = prepareguest($ho, $gn, $gn, 4096, undef, 30);
+
+ my $cfg_rkdist = target_extract_jobdistpath_subdir
+ ($ho, 'rumprun--base', 'rumprun',
+ $r{guests_rumprunbuildjob});
+ $cfg_rkdist .= '/usr/local/lib/xen/rump-kernel';
+
+ my $buildjob = guest_var($gho, 'rumprunbuildjob', undef);
+ my $builtimage = guest_var($gho, 'builtimage', undef);
+ $builtimage =~ m/\:/ or die "$builtimage ?";
+ my $builtimage_part = $`;
+ my $builtimage_subpath = $'; #';
+ $rkdist = target_extract_jobdistpath_subdir
+ ($ho, "rumprun-$gn", $builtimage_part, $buildjob);
+ my $imagefile = $rkdist.$builtimage_subpath;
+ my $cmdline = guest_var($gho, 'cmdline', undef);
+
+ my @images;
+
+ my $fsimagesdir = target_jobdir($ho)."/$gn-images";
+
+ my $cfgfile = "$gn.cfg";
+ my $cfgpath = "/etc/xen/$cfgfile";
+ target_editfile_root($ho, "$cfg_rkdist/domain_config", $cfgfile, $cfgpath,
+ sub {
+ while (<EI>) {
+ next if m/^\s*\#/;
+ next unless m/\S/;
+
+ my $in = $& if m/^\w\S*/;
+
+ s# = .* # " = '$gn'" #xe if $in eq 'name';
+ s# = .* # " = '$imagefile'" #xe if $in eq 'kernel';
+ s#\b mac=[0-9a-f:]+ # "mac=$gho->{Ether}" #xe if $in eq 'vif';
+ s# = .* # " = '$cmdline'" #xe if $in eq 'extra';
+
+ if ($in eq 'disk') {
+ s{\b img/(\w+.ffs) \b}{
+ push @images, $1;
+ "$fsimagesdir/$1";
+ }xeg;
+ }
+
+ print EO or die $!;
+ }
+ });
+
+ store_runvar("$gho->{Guest}_cfgpath", $cfgpath);
+
+ target_cmd($ho, <<END.(join "\n", map { <<END; } @images), 200);
+ mkdir -p $fsimagesdir
+END
+ cp $cfg_rkdist/img/$_ $fsimagesdir/$_
+END
+}
+
+prep();
diff --git a/ts-rumprun-demo-xenstorels b/ts-rumprun-demo-xenstorels
new file mode 100755
index 0000000..a54fbf4
--- /dev/null
+++ b/ts-rumprun-demo-xenstorels
@@ -0,0 +1,124 @@
+#!/usr/bin/perl -w
+# 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/>.
+
+use strict qw(vars);
+use DBI;
+use Osstest;
+use Osstest::TestSupport;
+use Data::Dumper;
+
+tsreadconfig();
+
+our ($ho,$gho) = ts_get_host_guest(@ARGV);
+
+our $domid;
+
+our $gn = $gho->{Guest};
+
+sub arrangepreserve () {
+ target_editfile_root($ho,$r{"$gho->{Guest}_cfgpath"}, sub {
+ while (<EI>) {
+ if (m/^\s*on_poweroff\s*=/) {
+ target_editfile_cancel("already configured to preserve")
+ if m/\bpreserve\b/;
+ next;
+ }
+ print EO or die $!;
+ }
+ print EO "\n","on_poweroff='preserve'\n" or die $!;
+ });
+}
+
+sub start () {
+ guest_create($gho);
+
+ $domid = guest_find_domid($ho, $gho);
+}
+
+sub await_end () {
+ poll_loop(30,3, "await ending of $gho->{Guest}", sub {
+ my $st= guest_get_state($ho,$gho);
+ return undef if $st =~ m/s/;
+ return "guest state is $st";
+ });
+}
+
+our (%file);
+our (%output);
+
+sub stash ($$) {
+ my ($data, $what) = @_;
+ my $leaf = "xenstore-ls-device--$gn--$what";
+ my $stashh = open_unique_stashfile(\$leaf);
+ print $stashh $data or die $!;
+ close $stashh or die $!;
+ $file{$what} = "$stash/$leaf";
+}
+
+sub some_xenstorels ($$$) {
+ my ($what, $massage, $cmd) = @_;
+ $output{$what} = target_cmd_output_root($ho,$cmd);
+ stash($output{$what}, "$what-raw");
+ $massage->();
+ $output{$what} = join "\n", sort split /\n/, $output{$what};
+ $output{$what} .= "\n";
+ stash($output{$what}, "$what-massaged");
+}
+
+sub our_xenstorels () {
+ some_xenstorels('ours', sub {
+ $output{ours} =~ s{^/local/domain/$domid/}{}gm;
+ }, <<END);
+ xenstore-ls -fp /local/domain/$domid/device
+END
+}
+
+sub their_xenstorels () {
+ some_xenstorels('theirs', sub {
+ $output{theirs} =~ s{\r\n}{\n}g;
+ while ($output{theirs} =~ m{\n=== calling main\(\) ===\n\n}) {
+ $output{theirs} = $'; #';
+ }
+ $output{theirs} =~ m{\n=== main\(\) returned (\d+) ===\n} or die;
+ $output{theirs} = $`;
+ die "$1 ?" if $1 ne '0';
+ $output{theirs} =~ s{^STUB \`\`\w+'' called\n}{}mg;
+ }, <<END);
+ cat /var/log/xen/console/guest-$gn.log
+END
+}
+
+sub check_output () {
+ eval {
+ our_xenstorels();
+ their_xenstorels();
+ 1;
+ };
+ if ($@) {
+ die Dumper(\%output)."$@";
+ }
+ if ($output{ours} ne $output{theirs}) {
+ system qw(diff -u), map { $file{"$_-massaged"} } qw(ours theirs);
+ die "$? COMPARISON FAILED";
+ }
+}
+
+arrangepreserve();
+start();
+await_end();
+check_output();
+logm("all good.");
diff --git a/ts-rumpuserxen-build b/ts-rumpuserxen-build
deleted file mode 100755
index 9e6580a..0000000
--- a/ts-rumpuserxen-build
+++ /dev/null
@@ -1,126 +0,0 @@
-#!/usr/bin/perl
-# 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 Osstest::BuildSupport;
-
-tsreadconfig();
-selectbuildhost(\@ARGV);
-builddirsprops();
-
-our %submodmap = qw(nblibs nblibs
- buildrump.sh buildrumpsh
- rumpsrc netbsdsrc);
-
-our ($rux, $bodges);
-
-sub checkout () {
- prepbuilddirs();
- xendist();
-
- build_clone($ho, 'rumpuserxen', $builddir, 'rumpuserxen');
- my $submodules =
- submodulefixup($ho, 'rumpuserxen', 'rumpuserxen', \%submodmap);
- $rux = "$builddir/rumpuserxen";
-
- $bodges = submodule_have($submodules,'nblibs')
- && !submodule_have($submodules,'netbsdsrc');
-
- if ($bodges) {
- my $rumpsrcgitrevr = "$rux/buildrump.sh/.srcgitrev";
- my $rumpsrcgitrevl = "buildrump-srcgitrev";
- my $rev = $r{revision_rumpuserxen_rumpsrc};
- if (length $rev) {
- target_putfilecontents_stash($ho,30,
- "$r{revision_rumpuserxen_rumpsrc}\n",
- $rumpsrcgitrevr, $rumpsrcgitrevl);
- } else {
- target_getfile($ho,30,$rumpsrcgitrevr,"$stash/$rumpsrcgitrevl");
- $rev = get_filecontents("$stash/$rumpsrcgitrevl");
- chomp $rev or die;
- $rev =~ m/^[0-9a-f]+$/ or die;
- store_runvar('revision_rumpuserxen_rumpsrc', $rev);
- }
-
- build_clone($ho, "rumpuserxen_rumpsrc", $builddir,
- "rumpuserxen/rumpsrc");
- store_vcs_revision('rumpuserxen_rumpsrc', $rev, 'git');
- }
-}
-
-sub massage() {
- return unless $bodges;
-
- # Very poor
- target_editfile($ho, "$rux/buildxen.sh", undef,
- "$rux/grievous-bodge-nblibs", sub {
- while (<EI>) {
- next unless m/^\Qif [ ! -d rumpsrc ]; then\E/..m/^fi/;
- next unless m/cp -Rp nblibs/;
- print EO or die $!;
- }
- });
- target_cmd_build($ho, 2000, $rux, "bash -x grievous-bodge-nblibs");
-
- # Rather poor
- target_editfile($ho, "$rux/Config.mk", sub {
- while (<EI>) {
- s/^XEN_HEADERS=/XEN_HEADERS?=/;
- print EO or die $!;
- }
- });
-}
-
-sub build() {
- target_cmd_build($ho, 7200, $rux, <<END);
- export XEN_HEADERS=$xendist/usr/local/include/xen
- (./buildxen.sh && touch ../build-ok-stamp) |tee ../log
- test -f ../build-ok-stamp #/
- echo ok.
-END
-}
-
-sub recordtools() {
- foreach my $stem (qw(rumprun-xen rumpxen-app)) {
- my $apptool = "$rux/app-tools/$stem";
- next unless target_file_exists($ho, "$apptool-configure");
- store_runvar('cmdprefix_configure', "$apptool-configure");
- store_runvar('cmdprefix_make', "$apptool-make");
- return;
- }
- die "app-tools not found ($rux)";
-}
-
-sub install() {
- my $destdir="dist/usr/local/lib/xen/rump-kernel";
- target_cmd_build($ho, 300, $builddir, <<END);
- mkdir -p $destdir
- cp rumpuserxen/rump-kernel* $destdir
- cp -r rumpuserxen/img $destdir/
- cp rumpuserxen/domain_config $destdir
-END
-}
-
-checkout();
-massage();
-build();
-recordtools();
-install();
-built_stash($ho, $builddir, 'dist', 'rumpuserxendist');
diff --git a/ts-rumpuserxen-demo-setup b/ts-rumpuserxen-demo-setup
deleted file mode 100755
index 04ed0b9..0000000
--- a/ts-rumpuserxen-demo-setup
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/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;
-
-tsreadconfig();
-
-our ($whhost,$gn) = @ARGV;
-$whhost ||= 'host';
-$gn ||= 'rump';
-
-our $ho= selecthost($whhost);
-
-our $gho;
-
-our $rkdist;
-
-sub prep () {
- $gho = prepareguest($ho, $gn, $gn, 4096, undef, 30);
-
- my $cfg_rkdist = target_extract_jobdistpath_subdir
- ($ho, 'rumpuserxen--base', 'rumpuserxen',
- $r{guests_rumpuserxenbuildjob});
- $cfg_rkdist .= '/usr/local/lib/xen/rump-kernel';
-
- my $buildjob = guest_var($gho, 'rumpuserxenbuildjob', undef);
- my $builtimage = guest_var($gho, 'builtimage', undef);
- $builtimage =~ m/\:/ or die "$builtimage ?";
- my $builtimage_part = $`;
- my $builtimage_subpath = $'; #';
- $rkdist = target_extract_jobdistpath_subdir
- ($ho, "rumpuserxen-$gn", $builtimage_part, $buildjob);
- my $imagefile = $rkdist.$builtimage_subpath;
- my $cmdline = guest_var($gho, 'cmdline', undef);
-
- my @images;
-
- my $fsimagesdir = target_jobdir($ho)."/$gn-images";
-
- my $cfgfile = "$gn.cfg";
- my $cfgpath = "/etc/xen/$cfgfile";
- target_editfile_root($ho, "$cfg_rkdist/domain_config", $cfgfile, $cfgpath,
- sub {
- while (<EI>) {
- next if m/^\s*\#/;
- next unless m/\S/;
-
- my $in = $& if m/^\w\S*/;
-
- s# = .* # " = '$gn'" #xe if $in eq 'name';
- s# = .* # " = '$imagefile'" #xe if $in eq 'kernel';
- s#\b mac=[0-9a-f:]+ # "mac=$gho->{Ether}" #xe if $in eq 'vif';
- s# = .* # " = '$cmdline'" #xe if $in eq 'extra';
-
- if ($in eq 'disk') {
- s{\b img/(\w+.ffs) \b}{
- push @images, $1;
- "$fsimagesdir/$1";
- }xeg;
- }
-
- print EO or die $!;
- }
- });
-
- store_runvar("$gho->{Guest}_cfgpath", $cfgpath);
-
- target_cmd($ho, <<END.(join "\n", map { <<END; } @images), 200);
- mkdir -p $fsimagesdir
-END
- cp $cfg_rkdist/img/$_ $fsimagesdir/$_
-END
-}
-
-prep();
diff --git a/ts-rumpuserxen-demo-xenstorels b/ts-rumpuserxen-demo-xenstorels
deleted file mode 100755
index a54fbf4..0000000
--- a/ts-rumpuserxen-demo-xenstorels
+++ /dev/null
@@ -1,124 +0,0 @@
-#!/usr/bin/perl -w
-# 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/>.
-
-use strict qw(vars);
-use DBI;
-use Osstest;
-use Osstest::TestSupport;
-use Data::Dumper;
-
-tsreadconfig();
-
-our ($ho,$gho) = ts_get_host_guest(@ARGV);
-
-our $domid;
-
-our $gn = $gho->{Guest};
-
-sub arrangepreserve () {
- target_editfile_root($ho,$r{"$gho->{Guest}_cfgpath"}, sub {
- while (<EI>) {
- if (m/^\s*on_poweroff\s*=/) {
- target_editfile_cancel("already configured to preserve")
- if m/\bpreserve\b/;
- next;
- }
- print EO or die $!;
- }
- print EO "\n","on_poweroff='preserve'\n" or die $!;
- });
-}
-
-sub start () {
- guest_create($gho);
-
- $domid = guest_find_domid($ho, $gho);
-}
-
-sub await_end () {
- poll_loop(30,3, "await ending of $gho->{Guest}", sub {
- my $st= guest_get_state($ho,$gho);
- return undef if $st =~ m/s/;
- return "guest state is $st";
- });
-}
-
-our (%file);
-our (%output);
-
-sub stash ($$) {
- my ($data, $what) = @_;
- my $leaf = "xenstore-ls-device--$gn--$what";
- my $stashh = open_unique_stashfile(\$leaf);
- print $stashh $data or die $!;
- close $stashh or die $!;
- $file{$what} = "$stash/$leaf";
-}
-
-sub some_xenstorels ($$$) {
- my ($what, $massage, $cmd) = @_;
- $output{$what} = target_cmd_output_root($ho,$cmd);
- stash($output{$what}, "$what-raw");
- $massage->();
- $output{$what} = join "\n", sort split /\n/, $output{$what};
- $output{$what} .= "\n";
- stash($output{$what}, "$what-massaged");
-}
-
-sub our_xenstorels () {
- some_xenstorels('ours', sub {
- $output{ours} =~ s{^/local/domain/$domid/}{}gm;
- }, <<END);
- xenstore-ls -fp /local/domain/$domid/device
-END
-}
-
-sub their_xenstorels () {
- some_xenstorels('theirs', sub {
- $output{theirs} =~ s{\r\n}{\n}g;
- while ($output{theirs} =~ m{\n=== calling main\(\) ===\n\n}) {
- $output{theirs} = $'; #';
- }
- $output{theirs} =~ m{\n=== main\(\) returned (\d+) ===\n} or die;
- $output{theirs} = $`;
- die "$1 ?" if $1 ne '0';
- $output{theirs} =~ s{^STUB \`\`\w+'' called\n}{}mg;
- }, <<END);
- cat /var/log/xen/console/guest-$gn.log
-END
-}
-
-sub check_output () {
- eval {
- our_xenstorels();
- their_xenstorels();
- 1;
- };
- if ($@) {
- die Dumper(\%output)."$@";
- }
- if ($output{ours} ne $output{theirs}) {
- system qw(diff -u), map { $file{"$_-massaged"} } qw(ours theirs);
- die "$? COMPARISON FAILED";
- }
-}
-
-arrangepreserve();
-start();
-await_end();
-check_output();
-logm("all good.");
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 05/26] rumprun: Fetch source from new upstream
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (3 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 04/26] rumprun: Rename all `rumpuserxen' to `rumprun' Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 06/26] rumprun: Move xenbits tree to osstest subdir Ian Jackson
` (20 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
Also, update for the current set of submodules.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
ap-common | 2 +-
ts-rumprun-build | 5 ++---
2 files changed, 3 insertions(+), 4 deletions(-)
diff --git a/ap-common b/ap-common
index 6fe3b78..14cc25a 100644
--- a/ap-common
+++ b/ap-common
@@ -37,7 +37,7 @@
: ${PUSH_TREE_LIBVIRT:=$XENBITS:/home/xen/git/libvirt.git}
: ${BASE_TREE_LIBVIRT:=git://xenbits.xen.org/libvirt.git}
-: ${TREE_RUMPRUN:=https://github.com/rumpkernel/rumprun-xen}
+: ${TREE_RUMPRUN:=http://repo.rumpkernel.org/rumprun}
: ${TREEVCS_RUMPRUN:=git}
: ${BASE_TREE_RUMPRUN:=git://xenbits.xen.org/rumpuser-xen.git}
: ${PUSH_TREE_RUMPRUN:=$XENBITS:/home/xen/git/rumpuser-xen.git}
diff --git a/ts-rumprun-build b/ts-rumprun-build
index 574781f..abc1f7d 100755
--- a/ts-rumprun-build
+++ b/ts-rumprun-build
@@ -25,9 +25,8 @@ tsreadconfig();
selectbuildhost(\@ARGV);
builddirsprops();
-our %submodmap = qw(nblibs nblibs
- buildrump.sh buildrumpsh
- rumpsrc netbsdsrc);
+our %submodmap = qw(buildrump.sh buildrumpsh
+ src-netbsd netbsdsrc);
our ($rux, $bodges);
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 06/26] rumprun: Move xenbits tree to osstest subdir
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (4 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 05/26] rumprun: Fetch source from new upstream Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 07/26] rumprun: ts-rumprun-build: Remove $bodges Ian Jackson
` (19 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
Move our tested tree to /home/xen/git/osstest, where these kind of
things live nowadays.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
ap-common | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/ap-common b/ap-common
index 14cc25a..212da18 100644
--- a/ap-common
+++ b/ap-common
@@ -39,8 +39,8 @@
: ${TREE_RUMPRUN:=http://repo.rumpkernel.org/rumprun}
: ${TREEVCS_RUMPRUN:=git}
-: ${BASE_TREE_RUMPRUN:=git://xenbits.xen.org/rumpuser-xen.git}
-: ${PUSH_TREE_RUMPRUN:=$XENBITS:/home/xen/git/rumpuser-xen.git}
+: ${BASE_TREE_RUMPRUN:=git://xenbits.xen.org/osstest/rumprun.git}
+: ${PUSH_TREE_RUMPRUN:=$XENBITS:/home/xen/git/osstest/rumprun.git}
: ${TREE_RUMPRUN_RUMPSRC:=$(besteffort_repo https://github.com/rumpkernel/rumpkernel-netbsd-src)}
: ${TREEVCS_RUMPRUN_RUMPSRC:=git}
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 07/26] rumprun: ts-rumprun-build: Remove $bodges
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (5 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 06/26] rumprun: Move xenbits tree to osstest subdir Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 08/26] rumprun: ts-rumprun-build: Build new rumprun properly, ship the output Ian Jackson
` (18 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
This is very obsolete.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
ap-common | 5 -----
ts-rumprun-build | 46 +---------------------------------------------
2 files changed, 1 insertion(+), 50 deletions(-)
diff --git a/ap-common b/ap-common
index 212da18..62d2e4f 100644
--- a/ap-common
+++ b/ap-common
@@ -42,11 +42,6 @@
: ${BASE_TREE_RUMPRUN:=git://xenbits.xen.org/osstest/rumprun.git}
: ${PUSH_TREE_RUMPRUN:=$XENBITS:/home/xen/git/osstest/rumprun.git}
-: ${TREE_RUMPRUN_RUMPSRC:=$(besteffort_repo https://github.com/rumpkernel/rumpkernel-netbsd-src)}
-: ${TREEVCS_RUMPRUN_RUMPSRC:=git}
-# rumpsrc-related runvars needed only for old rumpuser-xen
-# (ie ones which need $bodges=1 in ts-rumprun-build)
-
: ${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}
diff --git a/ts-rumprun-build b/ts-rumprun-build
index abc1f7d..55420f0 100755
--- a/ts-rumprun-build
+++ b/ts-rumprun-build
@@ -28,7 +28,7 @@ builddirsprops();
our %submodmap = qw(buildrump.sh buildrumpsh
src-netbsd netbsdsrc);
-our ($rux, $bodges);
+our ($rux);
sub checkout () {
prepbuilddirs();
@@ -38,53 +38,9 @@ sub checkout () {
my $submodules =
submodulefixup($ho, 'rumprun', 'rumprun', \%submodmap);
$rux = "$builddir/rumprun";
-
- $bodges = submodule_have($submodules,'nblibs')
- && !submodule_have($submodules,'netbsdsrc');
-
- if ($bodges) {
- my $rumpsrcgitrevr = "$rux/buildrump.sh/.srcgitrev";
- my $rumpsrcgitrevl = "buildrump-srcgitrev";
- my $rev = $r{revision_rumprun_rumpsrc};
- if (length $rev) {
- target_putfilecontents_stash($ho,30,
- "$r{revision_rumprun_rumpsrc}\n",
- $rumpsrcgitrevr, $rumpsrcgitrevl);
- } else {
- target_getfile($ho,30,$rumpsrcgitrevr,"$stash/$rumpsrcgitrevl");
- $rev = get_filecontents("$stash/$rumpsrcgitrevl");
- chomp $rev or die;
- $rev =~ m/^[0-9a-f]+$/ or die;
- store_runvar('revision_rumprun_rumpsrc', $rev);
- }
-
- build_clone($ho, "rumprun_rumpsrc", $builddir,
- "rumprun/rumpsrc");
- store_vcs_revision('rumprun_rumpsrc', $rev, 'git');
- }
}
sub massage() {
- return unless $bodges;
-
- # Very poor
- target_editfile($ho, "$rux/buildxen.sh", undef,
- "$rux/grievous-bodge-nblibs", sub {
- while (<EI>) {
- next unless m/^\Qif [ ! -d rumpsrc ]; then\E/..m/^fi/;
- next unless m/cp -Rp nblibs/;
- print EO or die $!;
- }
- });
- target_cmd_build($ho, 2000, $rux, "bash -x grievous-bodge-nblibs");
-
- # Rather poor
- target_editfile($ho, "$rux/Config.mk", sub {
- while (<EI>) {
- s/^XEN_HEADERS=/XEN_HEADERS?=/;
- print EO or die $!;
- }
- });
}
sub build() {
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 08/26] rumprun: ts-rumprun-build: Build new rumprun properly, ship the output
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (6 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 07/26] rumprun: ts-rumprun-build: Remove $bodges Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 09/26] rumprun: ts-rumprun-build: Adjust command prefixes for new rumprun Ian Jackson
` (17 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
The command is `build-rr.sh' nowadays. The output longer includes
test domain image and configuration. The output is in `rumprun'.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
ts-rumprun-build | 11 ++---------
1 file changed, 2 insertions(+), 9 deletions(-)
diff --git a/ts-rumprun-build b/ts-rumprun-build
index 55420f0..93c34d1 100755
--- a/ts-rumprun-build
+++ b/ts-rumprun-build
@@ -46,7 +46,7 @@ sub massage() {
sub build() {
target_cmd_build($ho, 7200, $rux, <<END);
export XEN_HEADERS=$xendist/usr/local/include/xen
- (./buildxen.sh && touch ../build-ok-stamp) |tee ../log
+ (./build-rr.sh xen && touch ../build-ok-stamp) |tee ../log
test -f ../build-ok-stamp #/
echo ok.
END
@@ -64,13 +64,6 @@ sub recordtools() {
}
sub install() {
- my $destdir="dist/usr/local/lib/xen/rump-kernel";
- target_cmd_build($ho, 300, $builddir, <<END);
- mkdir -p $destdir
- cp rumprun/rump-kernel* $destdir
- cp -r rumprun/img $destdir/
- cp rumprun/domain_config $destdir
-END
}
checkout();
@@ -78,4 +71,4 @@ massage();
build();
recordtools();
install();
-built_stash($ho, $builddir, 'dist', 'rumprundist');
+built_stash($ho, $builddir, 'rumprun', 'rumprundist');
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 09/26] rumprun: ts-rumprun-build: Adjust command prefixes for new rumprun
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (7 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 08/26] rumprun: ts-rumprun-build: Build new rumprun properly, ship the output Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 10/26] ts-xen-build: Separate out kconfig from main build step Ian Jackson
` (16 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
Nowadays the expected use pattern is
CC=<...rumprun...>-gcc ./configure
etc.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
ts-rumprun-build | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)
diff --git a/ts-rumprun-build b/ts-rumprun-build
index 93c34d1..cb91d5c 100755
--- a/ts-rumprun-build
+++ b/ts-rumprun-build
@@ -53,14 +53,12 @@ END
}
sub recordtools() {
- foreach my $stem (qw(rumprun-xen rumpxen-app)) {
- my $apptool = "$rux/app-tools/$stem";
- next unless target_file_exists($ho, "$apptool-configure");
- store_runvar('cmdprefix_configure', "$apptool-configure");
- store_runvar('cmdprefix_make', "$apptool-make");
- return;
- }
- die "app-tools not found ($rux)";
+ my $gcc = target_cmd_output($ho, "echo $rux/bin/*-gcc");
+ chomp $gcc;
+ die "$gcc ?" if $gcc =~ m/\S/;
+ my $prefix = "CC=$gcc ";
+ store_runvar('cmdprefix_configure', $prefix);
+ store_runvar('cmdprefix_make', $prefix);
}
sub install() {
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 10/26] ts-xen-build: Separate out kconfig from main build step
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (8 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 09/26] rumprun: ts-rumprun-build: Adjust command prefixes for new rumprun Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 11/26] ts-xen-build: Support $r{cmdsuffix_configure} Ian Jackson
` (15 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
ts-xen-build | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/ts-xen-build b/ts-xen-build
index 5933dd4..60ce9ee 100755
--- a/ts-xen-build
+++ b/ts-xen-build
@@ -125,10 +125,14 @@ END
fi
END
#/;
- buildcmd_stamped_logged(9000, 'build', '',<<END,'');
+
+ buildcmd_stamped_logged(600, 'kconfig', '',<<END,'');
if test -f xen/Kconfig; then
$make_prefix make -C xen olddefconfig
fi
+END
+
+ buildcmd_stamped_logged(9000, 'build', '',<<END,'');
$make_prefix make $makeflags @ARGV
END
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 11/26] ts-xen-build: Support $r{cmdsuffix_configure}
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (9 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 10/26] ts-xen-build: Separate out kconfig from main build step Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 12/26] ts-xen-build: Support --no-kconfig Ian Jackson
` (14 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
Nothing sets this yet, so no functional change.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
ts-xen-build | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/ts-xen-build b/ts-xen-build
index 60ce9ee..4f06419 100755
--- a/ts-xen-build
+++ b/ts-xen-build
@@ -109,6 +109,7 @@ sub build () {
my $ovmf_opt= $r{enable_ovmf} =~ m/true/ ? "--enable-ovmf" : "--disable-ovmf";
my $configure_prefix = $r{cmdprefix_configure} // '';
+ my $configure_suffix = $r{cmdsuffix_configure} // '';
my $make_prefix = $r{cmdprefix_make} // '';
buildcmd_stamped_logged(600, 'configure', <<END,<<END,<<END);
@@ -120,7 +121,7 @@ sub build () {
ovmf=$ovmf_opt
fi
END
- $configure_prefix ./configure --sysconfdir=/etc \$xend \$ovmf
+ $configure_prefix ./configure --sysconfdir=/etc \$xend \$ovmf $configure_suffix
END
fi
END
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 12/26] ts-xen-build: Support --no-kconfig
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (10 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 11/26] ts-xen-build: Support $r{cmdsuffix_configure} Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 13/26] rumprun: ts-rumprun-build: Update for new rumprun bin location Ian Jackson
` (13 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
Nothing passes this yet, so no functional change.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
ts-xen-build | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/ts-xen-build b/ts-xen-build
index 4f06419..f5cff8b 100755
--- a/ts-xen-build
+++ b/ts-xen-build
@@ -25,7 +25,20 @@ use Osstest::BuildSupport;
tsreadconfig();
selectbuildhost(\@ARGV);
+
+our $dokconfig = 1;
+
+while (@ARGV && $ARGV[0] =~ m/^-/) {
+ $_ = shift @ARGV;
+ last if m/^--$/;
+ if (m/^--no-kconfig$/) {
+ $dokconfig = 0;
+ } else {
+ die "$_ ?";
+ }
+}
# remaining arguments are passed as targets to "make"
+
builddirsprops();
my $enable_xsm = ($r{enable_xsm}//'false') =~ m/true/ ? 1 : 0;
@@ -127,7 +140,7 @@ END
END
#/;
- buildcmd_stamped_logged(600, 'kconfig', '',<<END,'');
+ buildcmd_stamped_logged(600, 'kconfig', '',<<END,'') if $dokconfig;
if test -f xen/Kconfig; then
$make_prefix make -C xen olddefconfig
fi
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 13/26] rumprun: ts-rumprun-build: Update for new rumprun bin location
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (11 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 12/26] ts-xen-build: Support --no-kconfig Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 14/26] rumprun: ts-rumprun-build: Update for newer Xen Ian Jackson
` (12 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
The compiler wrappers are in a different location in the new rumprun
build tree.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
ts-rumprun-build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ts-rumprun-build b/ts-rumprun-build
index cb91d5c..7184f9d 100755
--- a/ts-rumprun-build
+++ b/ts-rumprun-build
@@ -53,7 +53,7 @@ END
}
sub recordtools() {
- my $gcc = target_cmd_output($ho, "echo $rux/bin/*-gcc");
+ my $gcc = target_cmd_output($ho, "echo $rux/rumprun/bin/*-gcc");
chomp $gcc;
die "$gcc ?" if $gcc =~ m/\S/;
my $prefix = "CC=$gcc ";
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 14/26] rumprun: ts-rumprun-build: Update for newer Xen
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (12 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 13/26] rumprun: ts-rumprun-build: Update for new rumprun bin location Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 15/26] rumprun: Drop old rumpuserxen demo Ian Jackson
` (11 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
Newer Xen needs more work to make it cross compile for rump.
* Pass --host=TARGET to configure. This is needed so that configure
knows that we are deliberately cross compiling. (Otherwise it
tries to run target binaries on the host, and crashes when that fails.)
* Pass CROSS_COMPILE in the environment. This arranges for the Xen
Makefiles to run the right compiler, ie $(CROSS_COMPILE)-gcc.
* Put the rump compiler directory on PATH, so that the Xen Makefiles
can find it.
* Pass HOSTCC=gcc in the environment; otherwise it tries to use the
default CC (which is $(CROSS_COMPILE)gcc), when building
build-system-internal tools which are to be run on the host as part
of the build.
The need for this could be avoided by setting XEN_TARGET_ARCH to the
rump architecture, but then we would have to provide a Xen arch
config file for that architecture, which would be meaningless since
we are not actually building a hypervisor, and would have to contain
various dummy information.
NB in this commit message I use Xen terminology for cross arch names:
Xen GCC/GNU Meaning Example for
terminology terminology rump cross build
host build Native architecture of i586-linux-gnu
the environment in which
we are running the build.
target host Foreign architecture on i486-rumprun-netbsdelf
which the objects etc.
which we are now building
will eventually be run.
n/a target Used only when building a "Canadian"
cross compiler: the 2nd foreign
architecture for which the compiler which
we are now building (on the `build(gnu)'
arch) will, when we run it, produce
binaries (when it is run on the
`host(gnu)' arch).
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
ts-rumprun-build | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/ts-rumprun-build b/ts-rumprun-build
index 7184f9d..98c8efc 100755
--- a/ts-rumprun-build
+++ b/ts-rumprun-build
@@ -55,10 +55,17 @@ END
sub recordtools() {
my $gcc = target_cmd_output($ho, "echo $rux/rumprun/bin/*-gcc");
chomp $gcc;
- die "$gcc ?" if $gcc =~ m/\S/;
- my $prefix = "CC=$gcc ";
+ die "$gcc ?" unless $gcc =~ m#^(\S+)/([^/ \t]+)-g?cc$#;
+ my $bindir = $1;
+ my $gnutriplet = $2;
+ my $prefix = "PATH=$bindir:\$PATH ";
+ $prefix .= "CROSS_COMPILE=$gnutriplet- HOSTCC=gcc ";
store_runvar('cmdprefix_configure', $prefix);
store_runvar('cmdprefix_make', $prefix);
+ store_runvar('cmdsuffix_configure', " --host=$gnutriplet");
+ # "host" is daft GCC/GNU terminology for the target architecture of
+ # a cross-compile, ie in our case the rump environemnt architecture
+ # for which the rump compilers are going to generate code.
}
sub install() {
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 15/26] rumprun: Drop old rumpuserxen demo
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (13 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 14/26] rumprun: ts-rumprun-build: Update for newer Xen Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 16/26] rumprun: Do not run xen/Kconfig Ian Jackson
` (10 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
The WOPR demo is gone from rumpkernel upstream.
Sadly this leaves us without a test that the rump environment's
networking is functional.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
sg-run-job | 4 ----
1 file changed, 4 deletions(-)
diff --git a/sg-run-job b/sg-run-job
index 31a5589..0c7835e 100755
--- a/sg-run-job
+++ b/sg-run-job
@@ -443,10 +443,6 @@ proc test-guest-nomigr {g} {
proc need-hosts/test-rumprun {} { return host }
proc run-job/test-rumprun {} {
- set g rump
- run-ts . = ts-rumprun-demo-setup + host $g
- run-ts . = ts-guest-start + host $g
- run-ts . = ts-guest-destroy + host $g
set g xenstorels
run-ts . = ts-rumprun-demo-setup + host + $g
run-ts . = ts-rumprun-demo-xenstorels + host + $g
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 16/26] rumprun: Do not run xen/Kconfig
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (14 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 15/26] rumprun: Drop old rumpuserxen demo Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 17/26] rumprun: Break out findtools Ian Jackson
` (9 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
We aren't going to cross-build a Xen hypervisor for the rump
environment. So don't configure it.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
sg-run-job | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sg-run-job b/sg-run-job
index 0c7835e..eb3df26 100755
--- a/sg-run-job
+++ b/sg-run-job
@@ -477,7 +477,7 @@ proc run-job/build-libvirt {} {
proc run-job/build-rumprun {} {
run-ts . = ts-rumprun-build
- run-ts . = ts-xen-build + host tools
+ run-ts . = ts-xen-build + host --no-kconfig tools
}
proc prepare-build-host {} {
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 17/26] rumprun: Break out findtools
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (15 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 16/26] rumprun: Do not run xen/Kconfig Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 18/26] rumprun: ts-rumprun-build: set up ccache Ian Jackson
` (8 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
This makes room for setting up ccache.
No functional change yet.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
ts-rumprun-build | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/ts-rumprun-build b/ts-rumprun-build
index 98c8efc..24e54e1 100755
--- a/ts-rumprun-build
+++ b/ts-rumprun-build
@@ -52,12 +52,18 @@ sub build() {
END
}
-sub recordtools() {
+my $bindir;
+my $gnutriplet;
+
+sub findtools() {
my $gcc = target_cmd_output($ho, "echo $rux/rumprun/bin/*-gcc");
chomp $gcc;
die "$gcc ?" unless $gcc =~ m#^(\S+)/([^/ \t]+)-g?cc$#;
- my $bindir = $1;
- my $gnutriplet = $2;
+ $bindir = $1;
+ $gnutriplet = $2;
+}
+
+sub recordtools() {
my $prefix = "PATH=$bindir:\$PATH ";
$prefix .= "CROSS_COMPILE=$gnutriplet- HOSTCC=gcc ";
store_runvar('cmdprefix_configure', $prefix);
@@ -74,6 +80,7 @@ sub install() {
checkout();
massage();
build();
+findtools();
recordtools();
install();
built_stash($ho, $builddir, 'rumprun', 'rumprundist');
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 18/26] rumprun: ts-rumprun-build: set up ccache
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (16 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 17/26] rumprun: Break out findtools Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 19/26] Xen built versions: Move list of subtrees to BuildSupport Ian Jackson
` (7 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
ts-rumprun-build | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/ts-rumprun-build b/ts-rumprun-build
index 24e54e1..26f2f2c 100755
--- a/ts-rumprun-build
+++ b/ts-rumprun-build
@@ -54,6 +54,7 @@ END
my $bindir;
my $gnutriplet;
+my $ccachedir;
sub findtools() {
my $gcc = target_cmd_output($ho, "echo $rux/rumprun/bin/*-gcc");
@@ -63,8 +64,19 @@ sub findtools() {
$gnutriplet = $2;
}
+sub setupccache() {
+ $ccachedir = "$bindir.ccache";
+ target_cmd_build($ho, 600, $rux, <<END);
+ mkdir $ccachedir
+ ccache=\$(type -p ccache)
+ for f in $bindir/$gnutriplet-*; do
+ ln -s \$ccache $ccachedir/\${f##*/}
+ done
+END
+}
+
sub recordtools() {
- my $prefix = "PATH=$bindir:\$PATH ";
+ my $prefix = "PATH=$ccachedir:$bindir:\$PATH ";
$prefix .= "CROSS_COMPILE=$gnutriplet- HOSTCC=gcc ";
store_runvar('cmdprefix_configure', $prefix);
store_runvar('cmdprefix_make', $prefix);
@@ -81,6 +93,7 @@ checkout();
massage();
build();
findtools();
+setupccache();
recordtools();
install();
built_stash($ho, $builddir, 'rumprun', 'rumprundist');
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 19/26] Xen built versions: Move list of subtrees to BuildSupport
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (17 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 18/26] rumprun: ts-rumprun-build: set up ccache Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 20/26] Xen built versions: ts-xen-build: check versions of Xen subtrees, only Ian Jackson
` (6 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
Turn the adhoc list of tree names and subdirectories in
collect_xen_built_versions into a hash, which we iterate over.
Doing this in a data-driven way allows us to provide this information
to callers of collect_xen_built_versions, which is going to be helpful
in a moment.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
Osstest/BuildSupport.pm | 24 +++++++++++++++---------
1 file changed, 15 insertions(+), 9 deletions(-)
diff --git a/Osstest/BuildSupport.pm b/Osstest/BuildSupport.pm
index a183546..d59eace 100644
--- a/Osstest/BuildSupport.pm
+++ b/Osstest/BuildSupport.pm
@@ -42,7 +42,7 @@ BEGIN {
xendist
$xendist
- collect_xen_built_versions
+ collect_xen_built_versions %xensubtrees
submodulefixup submodule_have submodule_find
@@ -85,15 +85,21 @@ sub xendist () {
($ho, 'xendist', '', $r{"buildjob"});
}
+our %xensubtrees = qw(
+ qemu tools/ioemu-dir
+ qemu tools/qemu-xen-traditional-dir
+ qemuu tools/qemu-xen-dir
+ seabios tools/firmware/seabios-dir
+ ovmf tools/firmware/ovmf-dir
+ minios extras/mini-os
+ );
+
sub collect_xen_built_versions () {
- my $tools="$builddir/xen/tools";
- my $extras="$builddir/xen/extras";
- store_revision($ho, 'qemu', "$tools/ioemu-dir", 1);
- store_revision($ho, 'qemu', "$tools/qemu-xen-traditional-dir", 1);
- store_revision($ho, 'qemuu', "$tools/qemu-xen-dir", 1);
- store_revision($ho, 'seabios', "$tools/firmware/seabios-dir", 1);
- store_revision($ho, 'ovmf', "$tools/firmware/ovmf-dir", 1);
- store_revision($ho, 'minios', "$extras/mini-os", 1);
+ my $xendir = "$builddir/xen";
+ foreach my $subtree (sort keys %xensubtrees) {
+ my $subdir = $xendir.'/'.$xensubtrees{$subtree};
+ store_revision($ho, $subtree, "$subdir", 1);
+ }
}
#----- submodules -----
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 20/26] Xen built versions: ts-xen-build: check versions of Xen subtrees, only
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (18 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 19/26] Xen built versions: Move list of subtrees to BuildSupport Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 21/26] rumprun: Do not stash whole build tree Ian Jackson
` (5 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
ts-xen-build has a check that the actually-built versions of the
various subtrees are right. This allows it to spot if the machinery
for specifying the subtree revision hasn't worked.
However, this machinery is troublesome: it assumes that the value
specified in the revision_TREE runvar is a commit id, just like the
value specified in built_revision_TREE. This is, currently, true in
flights created by cr-daily-branch and cs-try-bisect.
But it is not necessarily true for flights created other ways. In
principle it would be possible to look into each checked out subtree,
and use git-rev-parse (and its equivalent for nother VCSs) to check
whether the specified revision is right (by comparing it to
origin/<revision_TREE>, not <revision_TREE>, I guess). This is quite
fiddly.
The reason this is causing trouble now is that some of the ad-hoc rump
kernel flights I'm currently making contain non-git-revison-id values
for the revision_TREE for parts of the rumprun build.
So for now, limiting this check to TREEs which are actually Xen
subtrees will fix the problem for me (and this will be necessary for
the fuller fix, which I describe above). So do that.
Specifically:
* Add a new WHERE clause to the query statement, so that it selects
only the row for one specific tree
* Run the query once for each tree in %xensubtrees
This leaves the query overly-complicated, but this doesn't matter,
because if and when we make a fuller fix we'll throw this entire query
away. So it is easier to put off rewriting it in the hope that this
will never been needed.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
ts-xen-build | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/ts-xen-build b/ts-xen-build
index f5cff8b..cc171ef 100755
--- a/ts-xen-build
+++ b/ts-xen-build
@@ -217,10 +217,13 @@ sub checkversions () {
WHERE reqd.flight=? and reqd.job=?
AND built.flight=? and built.job=?
AND built.name = 'built_' || reqd.name
+ AND reqd.name = ?
END
- $chk->execute($flight,$job,$flight,$job);
my $mismatches= 0;
- while (my $row= $chk->fetchrow_arrayref()) {
+ foreach my $subtree (sort keys %xensubtrees) {
+ $chk->execute($flight,$job,$flight,$job,$subtree);
+ my $row= $chk->fetchrow_arrayref();
+ next unless $row;
my ($tree, $reqd, $built) = @$row;
next unless defined $reqd && defined $built;
$reqd =~ s/^.*://;
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 21/26] rumprun: Do not stash whole build tree
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (19 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 20/26] Xen built versions: ts-xen-build: check versions of Xen subtrees, only Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 22/26] TestSupport: guest_prepare_disk: cope with no disk Ian Jackson
` (4 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
Build steps all need the whole build tree in the same location, so
have to be part of this job.
Test jobs need only rumprun.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
ts-rumprun-build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ts-rumprun-build b/ts-rumprun-build
index 26f2f2c..1913f29 100755
--- a/ts-rumprun-build
+++ b/ts-rumprun-build
@@ -96,4 +96,4 @@ findtools();
setupccache();
recordtools();
install();
-built_stash($ho, $builddir, 'rumprun', 'rumprundist');
+built_stash($ho, $builddir, 'rumprun/rumprun/bin', 'rumprundist');
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 22/26] TestSupport: guest_prepare_disk: cope with no disk
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (20 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 21/26] rumprun: Do not stash whole build tree Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 23/26] rumprun: `rumpbake' our executables and run them with `rumprun' Ian Jackson
` (3 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
If the guest has no runvars specifying any kind of disk, do not
attempt to mess about with unmounting it etc.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
Osstest/TestSupport.pm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm
index a6ab18f..7eb7bc4 100644
--- a/Osstest/TestSupport.pm
+++ b/Osstest/TestSupport.pm
@@ -1580,7 +1580,7 @@ sub guest_prepare_disk ($) {
guest_umount_lv($gho->{Host}, $gho);
- return if $gho->{Diskfmt} eq "none";
+ return if ($gho->{Diskfmt} // 'none') eq "none";
target_cmd_root($gho->{Host}, <<END);
mkdir -p $gho->{Diskmnt}
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 23/26] rumprun: `rumpbake' our executables and run them with `rumprun'
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (21 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 22/26] TestSupport: guest_prepare_disk: cope with no disk Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 24/26] rumprun: xenstorels: Do not attempt to edit the config file Ian Jackson
` (2 subsequent siblings)
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
(Well, our one executable: xenstore-ls)
Modern rumprun requires the output of the linker to be `baked' (second
link phase, where the complete unikernel is assembled).
This has to be done as part of the build, because it needs all the
rumpkernel libraries. It generates a single image file - there is no
longer any disk image or config file produced by the rump ecosystem.
The baked file needs to be provided in a dist. We have
ts-rumprun-bake take command line argument specifying which things to
bake. It reads the runvars for the source executables and creates a
single dist output containing the images. There are now `executables'
and `images'.
Furthermore modern rumprun requires the image to be run with
`rumprun'. One underlying reason is that it wants to pass the command
line and some other config parameters to the guest via xenstore, in
/local/domain/GUEST/rumprun/cfg. To do this outside xl requires the
domain to be created paused. Another is to abstract away details of
the actual execution environment (compared to other unikernel
execution models).
rumprun has a mode (-D -T) in which it would be possible to fish the
configuration and the desired json object (for the cfg) out of the
tempfile it creates. It might also be possible for osstest to
construct these out of whole cloth.
However, this would be undesirable because it would break if rumprun
changed (in particular, if the interface to the domain creation
changed).
And because of the cfg wrinkle it still wouldn't let us construct a
domain config file which could be passed to
toolstack($ho)->guest_create.
So instead we invent Osstest::Rumprun::rumprun_guest_create, which
invokes rumprun. rumprun implicitly invokes xl.
The config editing which was previously done by ts-rumprun-demo-setup
is now done by passing appropriate options to rumprun.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
Osstest/RumpRun.pm | 67 ++++++++++++++++++++++++++++++++++
make-flight | 2 +-
sg-run-job | 2 ++
ts-rumprun-bake | 89 ++++++++++++++++++++++++++++++++++++++++++++++
ts-rumprun-demo-setup | 52 ++++-----------------------
ts-rumprun-demo-xenstorels | 3 +-
6 files changed, 167 insertions(+), 48 deletions(-)
create mode 100644 Osstest/RumpRun.pm
create mode 100755 ts-rumprun-bake
diff --git a/Osstest/RumpRun.pm b/Osstest/RumpRun.pm
new file mode 100644
index 0000000..0582bd2
--- /dev/null
+++ b/Osstest/RumpRun.pm
@@ -0,0 +1,67 @@
+# 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/>.
+
+
+package Osstest::RumpRun;
+
+use strict;
+use warnings;
+
+use Osstest::TestSupport;
+
+BEGIN {
+ use Exporter ();
+ our ($VERSION, @ISA, @EXPORT, @EXPORT_OK, %EXPORT_TAGS);
+ $VERSION = 1.00;
+ @ISA = qw(Exporter);
+ @EXPORT = qw(
+ rumprun_guest_create
+ );
+ %EXPORT_TAGS = ( );
+
+ @EXPORT_OK = qw();
+}
+
+sub rumprun_guest_create ($) {
+ my ($gho) = @_;
+ my $ho = $gho->{Host};
+ my $gn = $gho->{Guest};
+ guest_prepare_disk($gho);
+
+ my $rumprun = target_var($gho, 'rumprun_path');
+ if (!$rumprun) {
+ logm("finding rumprun to use for $gho->{Name} on $ho->{Name}");
+ my $buildjob = $r{guests_rumprunbuildjob} // # todo: eliminate this
+ target_var($gho, 'rumprunbuildjob');
+ my $rumprundist = target_extract_jobdistpath_subdir
+ ($ho, "rumprun-rumprun-g-$gho->{Name}", "rumprun", $buildjob);
+ $rumprun = "$rumprundist/rumprun";
+ store_runvar("${gn}_rumprun_path", $rumprun);
+ }
+
+ my $imagepath = $r{"${gn}_imagepath"};
+ my $cmdline = guest_var($gho, 'cmdline', undef);
+
+ my $cmd = "$rumprun xen";
+ $cmd .= " -N $gn";
+ $cmd .= " -IIFTAG,IFBASENAME,mac=$gho->{Ether}";
+ $cmd .= " $imagepath";
+ $cmd .= " $cmdline";
+
+ target_cmd_root($ho, $cmd, 100);
+}
+
+1;
diff --git a/make-flight b/make-flight
index 906bf2b..c94dfa4 100755
--- a/make-flight
+++ b/make-flight
@@ -203,7 +203,7 @@ do_rumpkernel_tests () {
guests_rumprunbuildjob=build-$rumparch-rumprun \
rump_builtimage=rumprun:/usr/local/lib/xen/rump-kernel/rump-kernel \
rump_cmdline=3 \
- xenstorels_builtimage=:/usr/local/bin/xenstore \
+ xenstorels_builtimage=rumpimages:xenstorels \
xenstorels_cmdline='ls -fp device' \
all_hostflags=$most_hostflags
}
diff --git a/sg-run-job b/sg-run-job
index eb3df26..6d455c7 100755
--- a/sg-run-job
+++ b/sg-run-job
@@ -478,6 +478,8 @@ proc run-job/build-libvirt {} {
proc run-job/build-rumprun {} {
run-ts . = ts-rumprun-build
run-ts . = ts-xen-build + host --no-kconfig tools
+ run-ts . = ts-rumprun-bake + host \
+ xenstorels ::/usr/local/bin/xenstore-ls
}
proc prepare-build-host {} {
diff --git a/ts-rumprun-bake b/ts-rumprun-bake
new file mode 100755
index 0000000..d79d6f8
--- /dev/null
+++ b/ts-rumprun-bake
@@ -0,0 +1,89 @@
+#!/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/>.
+
+# ts-rumprun-bake HOST IMAGENAME [JOB]:DIST:SUBPATH [IMAGENAME ... [... ...]]
+#
+# Generates a dist stash `rumpimages' containg files IMAGENAME
+# From the specified files
+
+use strict qw(vars);
+use DBI;
+use Osstest;
+use Osstest::TestSupport;
+use Osstest::BuildSupport;
+
+tsreadconfig();
+
+our ($whhost,$gn) = @ARGV;
+selectbuildhost(\@ARGV);
+
+
+
+our %images;
+
+our $jobdir = target_jobdir($ho);
+our $imagesdir = $jobdir.'/rumpbake-images';
+our $rumpbake = $jobdir.'/rumprun/rumprun/bin/rumprun-bake';
+
+target_cmd($ho, "mkdir -p $imagesdir");
+
+sub bakeimage ($$) {
+ my ($name,$spec) = @_;
+
+ $spec =~ m/^(.*?)\:(.*?)\:/ or die "$spec ?";
+ my $buildjob = $1;
+ my $execpart = $2;
+ my $execpath = $';
+
+ logm("baking rump image $name from $spec");
+
+# my $rumpbake = target_extract_jobdistpath_subdir
+# ($ho, 'rumpbake-base', 'rumprun', $r{guests_rumprunbuildjob});
+# $rumpbake = "$rumpbake/rumpbake";
+
+ my $execdist;
+ eval {
+ $execdist = target_extract_jobdistpath_subdir
+ ($ho, "rumpbake-n-$name", $execpart, $buildjob || $job);
+ };
+ if ($@) {
+ warn "skipping: $@";
+ return;
+ }
+ my $execfile = $execdist.$execpath;
+
+ target_cmd_build($ho, 1000, $imagesdir, <<END);
+ if test -f $execfile; then
+ $rumpbake xen_pv $name $execfile
+ fi
+END
+}
+
+sub stash () {
+ built_stash($ho, "$jobdir", "rumpbake-images", "rumpimagesdist");
+}
+
+while (@ARGV) {
+ die unless @ARGV>=2;
+ my $name = shift @ARGV;
+ my $rumpexec = shift @ARGV;
+ eval {
+ bakeimage($name,$rumpexec);
+ };
+}
+
+stash();
diff --git a/ts-rumprun-demo-setup b/ts-rumprun-demo-setup
index 655328f..212d758 100755
--- a/ts-rumprun-demo-setup
+++ b/ts-rumprun-demo-setup
@@ -35,58 +35,18 @@ our $rkdist;
sub prep () {
$gho = prepareguest($ho, $gn, $gn, 4096, undef, 30);
- my $cfg_rkdist = target_extract_jobdistpath_subdir
- ($ho, 'rumprun--base', 'rumprun',
- $r{guests_rumprunbuildjob});
- $cfg_rkdist .= '/usr/local/lib/xen/rump-kernel';
-
- my $buildjob = guest_var($gho, 'rumprunbuildjob', undef);
my $builtimage = guest_var($gho, 'builtimage', undef);
+ my $buildjob = guest_var($gho, 'rumprunbuildjob', undef);
+
$builtimage =~ m/\:/ or die "$builtimage ?";
my $builtimage_part = $`;
my $builtimage_subpath = $'; #';
- $rkdist = target_extract_jobdistpath_subdir
- ($ho, "rumprun-$gn", $builtimage_part, $buildjob);
- my $imagefile = $rkdist.$builtimage_subpath;
- my $cmdline = guest_var($gho, 'cmdline', undef);
-
- my @images;
-
- my $fsimagesdir = target_jobdir($ho)."/$gn-images";
- my $cfgfile = "$gn.cfg";
- my $cfgpath = "/etc/xen/$cfgfile";
- target_editfile_root($ho, "$cfg_rkdist/domain_config", $cfgfile, $cfgpath,
- sub {
- while (<EI>) {
- next if m/^\s*\#/;
- next unless m/\S/;
-
- my $in = $& if m/^\w\S*/;
-
- s# = .* # " = '$gn'" #xe if $in eq 'name';
- s# = .* # " = '$imagefile'" #xe if $in eq 'kernel';
- s#\b mac=[0-9a-f:]+ # "mac=$gho->{Ether}" #xe if $in eq 'vif';
- s# = .* # " = '$cmdline'" #xe if $in eq 'extra';
-
- if ($in eq 'disk') {
- s{\b img/(\w+.ffs) \b}{
- push @images, $1;
- "$fsimagesdir/$1";
- }xeg;
- }
-
- print EO or die $!;
- }
- });
-
- store_runvar("$gho->{Guest}_cfgpath", $cfgpath);
+ $rkdist = target_extract_jobdistpath_subdir
+ ($ho, "rumprun-g-$gn", $builtimage_part, $buildjob);
+ my $imagepath = $rkdist.'/'.$builtimage_subpath;
- target_cmd($ho, <<END.(join "\n", map { <<END; } @images), 200);
- mkdir -p $fsimagesdir
-END
- cp $cfg_rkdist/img/$_ $fsimagesdir/$_
-END
+ store_runvar("${gn}_imagepath", $imagepath);
}
prep();
diff --git a/ts-rumprun-demo-xenstorels b/ts-rumprun-demo-xenstorels
index a54fbf4..47aa289 100755
--- a/ts-rumprun-demo-xenstorels
+++ b/ts-rumprun-demo-xenstorels
@@ -19,6 +19,7 @@ use strict qw(vars);
use DBI;
use Osstest;
use Osstest::TestSupport;
+use Osstest::RumpRun;
use Data::Dumper;
tsreadconfig();
@@ -44,7 +45,7 @@ sub arrangepreserve () {
}
sub start () {
- guest_create($gho);
+ rumprun_guest_create($gho);
$domid = guest_find_domid($ho, $gho);
}
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 24/26] rumprun: xenstorels: Do not attempt to edit the config file
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (22 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 23/26] rumprun: `rumpbake' our executables and run them with `rumprun' Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 25/26] rumprun: xenstorels: New regexps for finding output Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 26/26] rumprun: xenstorels: Improve an error message slightly Ian Jackson
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
There is no config file any more, so this function now crashes due to
passing undef to target_editfile_root.
We do not need to edit it to set on_poweroff to preserve because this
is the default for rumprun.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
ts-rumprun-demo-xenstorels | 15 ---------------
1 file changed, 15 deletions(-)
diff --git a/ts-rumprun-demo-xenstorels b/ts-rumprun-demo-xenstorels
index 47aa289..a40110a 100755
--- a/ts-rumprun-demo-xenstorels
+++ b/ts-rumprun-demo-xenstorels
@@ -30,20 +30,6 @@ our $domid;
our $gn = $gho->{Guest};
-sub arrangepreserve () {
- target_editfile_root($ho,$r{"$gho->{Guest}_cfgpath"}, sub {
- while (<EI>) {
- if (m/^\s*on_poweroff\s*=/) {
- target_editfile_cancel("already configured to preserve")
- if m/\bpreserve\b/;
- next;
- }
- print EO or die $!;
- }
- print EO "\n","on_poweroff='preserve'\n" or die $!;
- });
-}
-
sub start () {
rumprun_guest_create($gho);
@@ -118,7 +104,6 @@ sub check_output () {
}
}
-arrangepreserve();
start();
await_end();
check_output();
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 25/26] rumprun: xenstorels: New regexps for finding output
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (23 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 24/26] rumprun: xenstorels: Do not attempt to edit the config file Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 26/26] rumprun: xenstorels: Improve an error message slightly Ian Jackson
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
The framing output in rumprun upstream has changed.
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
ts-rumprun-demo-xenstorels | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/ts-rumprun-demo-xenstorels b/ts-rumprun-demo-xenstorels
index a40110a..831c58a 100755
--- a/ts-rumprun-demo-xenstorels
+++ b/ts-rumprun-demo-xenstorels
@@ -77,10 +77,11 @@ END
sub their_xenstorels () {
some_xenstorels('theirs', sub {
$output{theirs} =~ s{\r\n}{\n}g;
- while ($output{theirs} =~ m{\n=== calling main\(\) ===\n\n}) {
+ while ($output{theirs} =~ m{\n=== calling ".*" main\(\) ===\n\n}) {
$output{theirs} = $'; #';
}
- $output{theirs} =~ m{\n=== main\(\) returned (\d+) ===\n} or die;
+ $output{theirs} =~ m{\n=== main\(\) returned (\d+) ===\n} or
+ $output{theirs} =~ m{\n=== ERROR: _exit\((\d+)\) called ===\n} or die;
$output{theirs} = $`;
die "$1 ?" if $1 ne '0';
$output{theirs} =~ s{^STUB \`\`\w+'' called\n}{}mg;
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
* [OSSTEST PATCH 26/26] rumprun: xenstorels: Improve an error message slightly
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
` (24 preceding siblings ...)
2016-09-05 14:02 ` [OSSTEST PATCH 25/26] rumprun: xenstorels: New regexps for finding output Ian Jackson
@ 2016-09-05 14:02 ` Ian Jackson
25 siblings, 0 replies; 27+ messages in thread
From: Ian Jackson @ 2016-09-05 14:02 UTC (permalink / raw)
To: xen-devel; +Cc: Ian Jackson
Signed-off-by: Ian Jackson <Ian.Jackson@eu.citrix.com>
---
ts-rumprun-demo-xenstorels | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/ts-rumprun-demo-xenstorels b/ts-rumprun-demo-xenstorels
index 831c58a..3d29c46 100755
--- a/ts-rumprun-demo-xenstorels
+++ b/ts-rumprun-demo-xenstorels
@@ -83,7 +83,7 @@ sub their_xenstorels () {
$output{theirs} =~ m{\n=== main\(\) returned (\d+) ===\n} or
$output{theirs} =~ m{\n=== ERROR: _exit\((\d+)\) called ===\n} or die;
$output{theirs} = $`;
- die "$1 ?" if $1 ne '0';
+ die "EXIT STATUS $1 ?" if $1 ne '0';
$output{theirs} =~ s{^STUB \`\`\w+'' called\n}{}mg;
}, <<END);
cat /var/log/xen/console/guest-$gn.log
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 27+ messages in thread
end of thread, other threads:[~2016-09-05 14:03 UTC | newest]
Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-05 14:02 [OSSTEST PATCH 00/26] rump kernels: Fix build Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 01/26] Executive: Do update flights_harness_touched for play flights Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 02/26] Executive: Allow out-of-order manipulations of flights intended play Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 03/26] TestSupport: Produce stack trace for undef tfileex Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 04/26] rumprun: Rename all `rumpuserxen' to `rumprun' Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 05/26] rumprun: Fetch source from new upstream Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 06/26] rumprun: Move xenbits tree to osstest subdir Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 07/26] rumprun: ts-rumprun-build: Remove $bodges Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 08/26] rumprun: ts-rumprun-build: Build new rumprun properly, ship the output Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 09/26] rumprun: ts-rumprun-build: Adjust command prefixes for new rumprun Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 10/26] ts-xen-build: Separate out kconfig from main build step Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 11/26] ts-xen-build: Support $r{cmdsuffix_configure} Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 12/26] ts-xen-build: Support --no-kconfig Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 13/26] rumprun: ts-rumprun-build: Update for new rumprun bin location Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 14/26] rumprun: ts-rumprun-build: Update for newer Xen Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 15/26] rumprun: Drop old rumpuserxen demo Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 16/26] rumprun: Do not run xen/Kconfig Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 17/26] rumprun: Break out findtools Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 18/26] rumprun: ts-rumprun-build: set up ccache Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 19/26] Xen built versions: Move list of subtrees to BuildSupport Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 20/26] Xen built versions: ts-xen-build: check versions of Xen subtrees, only Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 21/26] rumprun: Do not stash whole build tree Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 22/26] TestSupport: guest_prepare_disk: cope with no disk Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 23/26] rumprun: `rumpbake' our executables and run them with `rumprun' Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 24/26] rumprun: xenstorels: Do not attempt to edit the config file Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 25/26] rumprun: xenstorels: New regexps for finding output Ian Jackson
2016-09-05 14:02 ` [OSSTEST PATCH 26/26] rumprun: xenstorels: Improve an error message slightly Ian Jackson
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.