script/autobuild.py: check that the source tree has no uncommitted changes after...
authorStefan Metzmacher <metze@samba.org>
Thu, 23 Dec 2010 18:40:08 +0000 (19:40 +0100)
committerStefan Metzmacher <metze@samba.org>
Fri, 31 Dec 2010 03:03:28 +0000 (04:03 +0100)
This makes sure the ABI files will be committed when the ABI changed.

metze

Autobuild-User: Stefan Metzmacher <metze@samba.org>
Autobuild-Date: Fri Dec 31 04:03:28 CET 2010 on sn-devel-104

script/autobuild.py
script/clean-source-tree.sh [new file with mode: 0755]

index feb0aee9b7c4bf36b3bec5c7e8667091a4bfb0b4..c6959a2b937cb8e044e12f3f44b2bfc9e5e75a07 100755 (executable)
@@ -22,40 +22,54 @@ tasks = {
                   ("make basics", "make basics", "text/plain"),
                   ("make", "make -j 4 everything", "text/plain"), # don't use too many processes
                   ("install", "make install", "text/plain"),
-                  ("test", "TDB_NO_FSYNC=1 make test FAIL_IMMEDIATELY=1", "text/plain") ],
+                  ("test", "TDB_NO_FSYNC=1 make test FAIL_IMMEDIATELY=1", "text/plain"),
+                  ("check-clean-tree", "../script/clean-source-tree.sh", "text/plain"),
+                  ("clean", "make clean", "text/plain") ],
 
     # We have 'test' before 'install' because, 'test' should work without 'install'
     "source4" : [ ("configure", "./configure.developer ${PREFIX}", "text/plain"),
                   ("make", "make -j", "text/plain"),
                   ("test", "TDB_NO_FSYNC=1 make test FAIL_IMMEDIATELY=1", "text/plain"),
-                  ("install", "make install", "text/plain") ],
+                  ("install", "make install", "text/plain"),
+                  ("check-clean-tree", "../script/clean-source-tree.sh", "text/plain"),
+                  ("clean", "make clean", "text/plain") ],
 
     "source4/lib/ldb" : [ ("configure", "./configure --enable-developer -C ${PREFIX}", "text/plain"),
                           ("make", "make -j", "text/plain"),
                           ("install", "make install", "text/plain"),
-                          ("test", "TDB_NO_FSYNC=1 make test", "text/plain") ],
+                          ("test", "TDB_NO_FSYNC=1 make test", "text/plain"),
+                          ("check-clean-tree", "../../../script/clean-source-tree.sh", "text/plain"),
+                          ("clean", "make clean", "text/plain") ],
 
     # We don't use TDB_NO_FSYNC=1 here, because we want to test the transaction code
     "lib/tdb" : [ ("configure", "./configure --enable-developer -C ${PREFIX}", "text/plain"),
                   ("make", "make -j", "text/plain"),
                   ("install", "make install", "text/plain"),
-                  ("test", "make test", "text/plain") ],
+                  ("test", "make test", "text/plain"),
+                  ("check-clean-tree", "../../script/clean-source-tree.sh", "text/plain"),
+                  ("clean", "make clean", "text/plain") ],
 
     "lib/talloc" : [ ("configure", "./configure --enable-developer -C ${PREFIX}", "text/plain"),
                      ("make", "make -j", "text/plain"),
                      ("install", "make install", "text/plain"),
-                     ("test", "make test", "text/plain"), ],
+                     ("test", "make test", "text/plain"),
+                     ("check-clean-tree", "../../script/clean-source-tree.sh", "text/plain"),
+                     ("clean", "make clean", "text/plain") ],
 
     "lib/replace" : [ ("autogen", "./autogen-waf.sh", "text/plain"),
                       ("configure", "./configure --enable-developer -C ${PREFIX}", "text/plain"),
                       ("make", "make -j", "text/plain"),
                       ("install", "make install", "text/plain"),
-                      ("test", "make test", "text/plain"), ],
+                      ("test", "make test", "text/plain"),
+                      ("check-clean-tree", "../../script/clean-source-tree.sh", "text/plain"),
+                      ("clean", "make clean", "text/plain") ],
 
     "lib/tevent" : [ ("configure", "./configure --enable-developer -C ${PREFIX}", "text/plain"),
                      ("make", "make -j", "text/plain"),
                      ("install", "make install", "text/plain"),
-                     ("test", "make test", "text/plain"), ],
+                     ("test", "make test", "text/plain"),
+                     ("check-clean-tree", "../script/clean-source-tree.sh", "text/plain"),
+                     ("clean", "make clean", "text/plain") ],
 }
 
 retry_task = [ ( "retry",
diff --git a/script/clean-source-tree.sh b/script/clean-source-tree.sh
new file mode 100755 (executable)
index 0000000..d0107f6
--- /dev/null
@@ -0,0 +1,33 @@
+#!/bin/sh
+#
+
+N=`git clean -n | wc -l`
+C=`git diff --stat HEAD | wc -l`
+
+test x"$N" != x"0" && {
+       echo "The tree has uncommitted changes!!! see stderr"
+       echo "The tree has uncommitted changes!!!" >&2
+
+       echo "git clean -n" >&2
+       git clean -n >&2
+
+       test x"$C" != x"0" && {
+               echo "git diff -p --stat HEAD" >&2
+               git diff -p --stat HEAD >&2
+       }
+
+       exit 1
+}
+
+test x"$C" != x"0" && {
+       echo "The tree has uncommitted changes!!! see stderr"
+       echo "The tree has uncommitted changes!!!" >&2
+
+       echo "git diff -p --stat HEAD" >&2
+       git diff -p --stat HEAD >&2
+
+       exit 1
+}
+
+echo "clean tree"
+exit 0