diff mbox

[OSSTEST,v2] make-flight: Support specifying a mini-os tree+revision

Message ID 1453207688-8337-1-git-send-email-ian.campbell@citrix.com
State New, archived
Headers show

Commit Message

Ian Campbell Jan. 19, 2016, 12:48 p.m. UTC
This is useful for standalone or adhoc use as well as (presumably)
bisection.

There is no ap-* or cr-daily-* integration here because I didn't need
it (i.e. I'm not intending to create a new mini-os branch here).

In order to cope with Xen <= 4.5 where extras/mini-os exists but is
part of xen.git and not something cloned from elsewhere add a
$optional argument (itself optional) to dir_identify_vcs which if true
causes dir_identify_vcs to return 'none' instead of failing.

Previously dir_identify_vcs failed with:
    bash: line 5: fail: command not found
because the fail command is undefined. Instead echo fail and use that
to trigger the $optional handling.

Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
v2: Adjust dir_identify_vcs handling of an unknown vcs
---
 Osstest/TestSupport.pm | 13 ++++++++-----
 mfi-common             |  4 +++-
 ts-xen-build           |  8 ++++++++
 3 files changed, 19 insertions(+), 6 deletions(-)

Comments

Ian Jackson Jan. 19, 2016, 2:26 p.m. UTC | #1
Ian Campbell writes ("[PATCH OSSTEST v2] make-flight: Support specifying a mini-os tree+revision"):
> This is useful for standalone or adhoc use as well as (presumably)
> bisection.

Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
diff mbox

Patch

diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm
index 9a90c2e..2141905 100644
--- a/Osstest/TestSupport.pm
+++ b/Osstest/TestSupport.pm
@@ -1319,21 +1319,24 @@  END
     store_vcs_revision($which, $rev, $vcs);
 }
 
-sub dir_identify_vcs ($$) {
-    my ($ho,$dir) = @_;
-    return target_cmd_output($ho, <<END);
+sub dir_identify_vcs ($$;$) {
+    my ($ho,$dir,$optional) = @_;
+    my $vcs = target_cmd_output($ho, <<END);
         set -e
         if ! test -e $dir; then echo none; exit 0; fi
         cd $dir
         (test -e .git && echo git) ||
         (test -d .hg && echo hg) ||
-        (echo >&2 'unable to determine vcs'; fail)
+        (echo >&2 'unable to determine vcs'; echo fail)
 END
+    die "unable to determine vcs" if !$optional && $vcs eq 'fail';
+    $vcs = 'none' if $vcs eq 'fail';
+    return $vcs;
 }
 
 sub store_revision ($$$;$) {
     my ($ho,$which,$dir,$optional) = @_;
-    my $vcs= dir_identify_vcs($ho,$dir);
+    my $vcs= dir_identify_vcs($ho,$dir,$optional);
     return if $optional && $vcs eq 'none';
     my $rev= vcs_dir_revision($ho,$dir,$vcs);
     store_vcs_revision($which,$rev,$vcs);
diff --git a/mfi-common b/mfi-common
index b739c7d..a705573 100644
--- a/mfi-common
+++ b/mfi-common
@@ -191,6 +191,7 @@  create_build_jobs () {
         tree_xen=$TREE_XEN                                                   \
         tree_seabios=$TREE_SEABIOS                                           \
         tree_ovmf=$TREE_OVMF                                                 \
+        tree_minios=$TREE_MINIOS                                             \
                 $RUNVARS $BUILD_RUNVARS $BUILD_XEN_RUNVARS $arch_runvars     \
                 $suite_runvars                                               \
                 host_hostflags=$build_hostflags                              \
@@ -198,7 +199,8 @@  create_build_jobs () {
                 revision_qemu=$REVISION_QEMU                                 \
                 revision_qemuu=$REVISION_QEMU_UPSTREAM                       \
                 revision_seabios=$REVISION_SEABIOS                           \
-                revision_ovmf=$REVISION_OVMF
+                revision_ovmf=$REVISION_OVMF                                 \
+                revision_minios=$REVISION_MINIOS
     done
 
     if [ x$want_prevxen = xy ] ; then
diff --git a/ts-xen-build b/ts-xen-build
index bc4e41a..8f92729 100755
--- a/ts-xen-build
+++ b/ts-xen-build
@@ -85,6 +85,12 @@  END
                (nonempty($r{revision_ovmf}) ? <<END : '').
 	echo >>.config OVMF_UPSTREAM_REVISION='$r{revision_ovmf}'
 END
+               (nonempty($r{tree_minios}) ? <<END : '').
+	echo >>.config MINIOS_UPSTREAM_URL='$r{tree_minios}'
+END
+               (nonempty($r{revision_minios}) ? <<END : '').
+	echo >>.config MINIOS_UPSTREAM_REVISION='$r{revision_minios}'
+END
                (nonempty($earlyprintk) ? <<END : '').
 	echo >>.config CONFIG_EARLY_PRINTK=$earlyprintk
 END
@@ -147,11 +153,13 @@  END
 
 sub collectversions () {
     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);
 }
 
 sub divide () {