]> xenbits.xensource.com Git - people/iwj/talks/2014-osstest.git/commitdiff
jobs branches
authorIan Jackson <ian.jackson@eu.citrix.com>
Tue, 22 Jul 2014 18:07:23 +0000 (19:07 +0100)
committerIan Jackson <Ian.Jackson@eu.citrix.com>
Tue, 22 Jul 2014 18:07:23 +0000 (19:07 +0100)
Makefile
datascript
fig-filler-in [new file with mode: 0755]
genmine
jobs-branches.fig.in [new file with mode: 0644]
talk.txt

index b4dd5b661f609e48b4e88dbf3d93cf669b8b283d..0c1849ef63ed9bf829bc530e29585baf7163a92c 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-SLIDES=title reports
+SLIDES=title listscreenshot bisection jobs-branches
 SLIDEFILES=$(addsuffix .ps, $(SLIDES))
 
 o= >$@.new && mv -f $@.new $@
@@ -12,7 +12,7 @@ talk.ps: talk.txt
        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
@@ -25,3 +25,14 @@ slides.ps: $(SLIDEFILES) Makefile
 
 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
index 976fefd7b928a9c209414d53c9c320c6dd497d13..2398c99d2dd64a714e2a6ab8a5ce4a5bc745545b 100755 (executable)
@@ -2,7 +2,9 @@
 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
diff --git a/fig-filler-in b/fig-filler-in
new file mode 100755 (executable)
index 0000000..02f9ff1
--- /dev/null
@@ -0,0 +1,46 @@
+#!/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;
+}
diff --git a/genmine b/genmine
index e4a9b09252eda7178c8e3e36c5b0a4af9771f2e4..370d648d5361af5a73c1e9a18d1f13ea8dc0690a 100755 (executable)
--- a/genmine
+++ b/genmine
@@ -14,6 +14,10 @@ print <<END or die $!;
 
 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--) {
diff --git a/jobs-branches.fig.in b/jobs-branches.fig.in
new file mode 100644 (file)
index 0000000..6039f95
--- /dev/null
@@ -0,0 +1,19 @@
+#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
index 588c54e24387cbe7d61cb5e671c09b28a8de0581..92d379479985a6ef1118d1e960a7d414b4997f74 100644 (file)
--- a/talk.txt
+++ b/talk.txt
@@ -3,6 +3,8 @@
 
 [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
@@ -13,10 +15,17 @@ known as `staging'.  If the tests do not show any regressions, the
 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