autobuild: Stop waf uninstall from removing test_tmpdir
authorMartin Schwenke <martin@meltin.net>
Mon, 20 Mar 2017 03:49:34 +0000 (14:49 +1100)
committerStefan Metzmacher <metze@samba.org>
Tue, 21 Mar 2017 09:37:08 +0000 (10:37 +0100)
Most of the autobuild tasks run "make distcheck", which does a
recursive "waf configure make install uninstall".  "waf uninstall"
(via BuildContext.install() in Build.py) removes empty directories all
the way up the directory tree.  This means that it removes
test_tmpdir, if it is empty, and any empty directories above it.

While this is arguably a waf bug, the simplest solution is to make
test_tmpdir non-empty so it don't get removed.

BUG: https://bugzilla.samba.org/show_bug.cgi?id=12703

Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
Autobuild-User(master): Stefan Metzmacher <metze@samba.org>
Autobuild-Date(master): Tue Mar 21 10:37:08 CET 2017 on sn-devel-144

script/autobuild.py

index 1e12d692e2ec33e21f4295e308c2a2aaf4c1ff09..f60ce09a3b6cc44df0dc69eab894b93621901743 100755 (executable)
@@ -764,6 +764,11 @@ while True:
     try:
         run_cmd("rm -rf %s" % test_tmpdir, show=True)
         os.makedirs(test_tmpdir)
+        # The waf uninstall code removes empty directories all the way
+        # up the tree.  Creating a file in test_tmpdir stops it from
+        # being removed.
+        run_cmd("touch %s" % os.path.join(test_tmpdir,
+                                          ".directory-is-not-empty"), show=True)
         run_cmd("stat %s" % test_tmpdir, show=True)
         run_cmd("stat %s" % testbase, show=True)
         run_cmd("git clone --recursive --shared %s %s" % (gitroot, test_master), show=True, dir=gitroot)