@@ -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);
@@ -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
@@ -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 () {
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(-)