-SLIDES=title reports
+SLIDES=title listscreenshot bisection jobs-branches
SLIDEFILES=$(addsuffix .ps, $(SLIDES))
o= >$@.new && mv -f $@.new $@
a2ps -1 -o $@ -B talk.txt
listscreenshot.ps bisection.ps: %.ps: %.txt Makefile
- a2ps -B -1 -f11 -o - $< | psselect 1 >$@
+ a2ps --prologue=bold -B -1 -r -f11 -o - $< | psselect 1 >$@
reports.ps: listscreenshot.ps bisection.ps Makefile
cat $(filter %.ps, $^) >$@.1
slides.pdf: slides.ps Makefile
ps2pdf $< $@
+
+datascript-run:
+ ./datascript
+
+jobsbreak=40
+
+jobs-branches.fig: fig-filler-in Makefile
+jobs-branches.fig: jobs-branches.fig.in list-branches.data list-jobs.data
+ sed -n '1,$(jobsbreak)p' list-jobs.data >$@.j.0
+ sed -e '1,$(jobsbreak)d' list-jobs.data >$@.j.1
+ ./fig-filler-in <$< BRANCH list-branches.data JOB0 $@.j.0 JOB1 $@.j.1 $o
set -e
set -o pipefail
rm -f *.data
+
./genmine >psql-cmds
psql -d osstestdb -h osstestdb.db.cam.xci-test.com -f psql-cmds
+
cat branches+*.data | ./psql2gnuplot >branches.gnuplot
./psql2gnuplot jobs.data >jobs.gnuplot
--- /dev/null
+#!/usr/bin/perl -w
+
+use strict;
+
+our %tmpl;
+# $tmpl{BRANCH}[]{Prefix}
+# $tmpl{BRANCH}[]{Suffix}
+# $tmpl{BRANCH}[]{X}
+# $tmpl{BRANCH}[]{Y}
+
+while (<STDIN>) {
+ if (my ($x,$y,$key,$n) = m/ (\d+) (\d+) \%([A-Z0-9]+)([01])/) {
+ $tmpl{$key}[$n] = {
+ Prefix => $`,
+ Suffix => $', #',
+ C => [ $x, $y ],
+ };
+ } else {
+ print or die $!;
+ }
+}
+
+while (@ARGV) {
+ die unless @ARGV>=2;
+ my $key = shift @ARGV;
+ my $file = shift @ARGV;
+ my $tmpl = $tmpl{$key}[0];
+ die "$key ?" unless $tmpl;
+ die "$key ?" unless $tmpl{$key}[1];
+ my @c = @{ $tmpl->{C} };
+ my @d;
+ foreach my $c (qw(0 1)) {
+ push @d, $tmpl{$key}[1]{C}[$c] - $tmpl->{C}[$c];
+ }
+ open F, "<$file" or die "$file $!";
+ while (<F>) {
+ chomp;
+ s/\\/\\\\/g;
+ print $tmpl->{Prefix} or die $!;
+ printf " %d %d ", @c or die $!;
+ print $_ or die $!;
+ print $tmpl->{Suffix} or die $!;
+ foreach my $c (qw(0 1)) { $c[$c] += $d[$c]; }
+ }
+ close F;
+}
select count(*), flight, branch, started from jobs join flights using (flight) where branch='xen-unstable' and blessing='real' and started >=$ystart and started <$asof group by flight, branch, started order by flight desc \\g jobs.data
+select distinct branch from flights where blessing='real' and (flight>=29000 and flight <=29432) order by branch \\g list-branches.data
+
+select distinct job from jobs join flights using (flight) where blessing='real' and (flight>=29000 and flight <=29432) order by job \\g list-jobs.data
+
END
for (my $back=365; $back>=0; $back--) {
--- /dev/null
+#FIG 3.2 Produced by xfig version 3.2.5b
+Landscape
+Center
+Metric
+A4
+100.00
+Single
+-2
+1200 2
+2 2 0 1 7 7 50 -1 -1 0.000 0 0 7 0 0 5
+ 12600 9540 12330 9540 12330 9810 12600 9810 12600 9540
+4 0 0 50 -1 0 24 0.0000 4 360 705 4770 1170 jobs\001
+4 0 0 50 -1 0 24 0.0000 4 270 1470 180 1170 branches\001
+4 0 0 50 -1 14 18 0.0000 4 180 1320 360 1800 %BRANCH0\001
+4 0 0 50 -1 14 18 0.0000 4 180 1320 360 2160 %BRANCH1\001
+4 0 0 50 -1 14 12 0.0000 4 120 720 4320 1800 %JOB00\001
+4 0 0 50 -1 14 12 0.0000 4 120 720 8550 1800 %JOB10\001
+4 0 0 50 -1 14 12 0.0000 4 120 720 4320 1980 %JOB01\001
+4 0 0 50 -1 14 12 0.0000 4 120 720 8550 1980 %JOB11\001
[screenshot of libvirt flight 29207]
+Firstly, a quick introduction.
+
osstest is the Xen Project's automated testing system.
We use the production instance to test the mainline development branch
system pushes the tested code to `master', which serves as a stable
basis for most ongoing development.
-[list of branches and jobs]
+[screenshot of bisection]
+
+If there are regressions, osstest automatically attempts to bisect the
+changes to pinpoint the responsible changeset. If it succeeds, it
+reports its findings to the xen-devel mailing list. Here's an example.
osstest's focus is on basic functional testing of a wide matrix of
-configurations.
+configurations. These last two slides have shown builds of libvirt on
+ARM.
+
+[list of branches and jobs]
A complete Xen system uses a number of important components other than
the hypervisor and tools. We test these too, and many of them have