From ade566d6b814784c0807351d0389ff98181b4205 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Thu, 23 Dec 2010 19:40:08 +0100 Subject: script/autobuild.py: check that the source tree has no uncommitted changes after make This makes sure the ABI files will be committed when the ABI changed. metze Autobuild-User: Stefan Metzmacher Autobuild-Date: Fri Dec 31 04:03:28 CET 2010 on sn-devel-104 --- script/autobuild.py | 28 +++++++++++++++++++++------- script/clean-source-tree.sh | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 7 deletions(-) create mode 100755 script/clean-source-tree.sh diff --git a/script/autobuild.py b/script/autobuild.py index feb0aee9b7..c6959a2b93 100755 --- a/script/autobuild.py +++ b/script/autobuild.py @@ -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 index 0000000000..d0107f6cd7 --- /dev/null +++ b/script/clean-source-tree.sh @@ -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 -- cgit