diff options
author | Dan McGee <dan@archlinux.org> | 2011-05-05 18:10:44 +0200 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2011-05-05 18:12:26 +0200 |
commit | d360153bc6d4368e18a6d2e169d7d667e1640992 (patch) | |
tree | 32d4e5144426d6bfe95386eb1e157538f3050712 | |
parent | 47de7973fd501e5253386c50178ec47e9f4c4c8e (diff) | |
download | pacman-d360153bc6d4368e18a6d2e169d7d667e1640992.tar.gz pacman-d360153bc6d4368e18a6d2e169d7d667e1640992.tar.xz |
pactest: run with root in /tmp and clean up automatically
This moves the generated root/ directory into /tmp, or at least a path
returned by tempfile.mkdtemp(), by default. This can make test runs
significantly faster if done when /tmp is a tmpfs.
If you are debugging a failed test, use the new --keep-root option to
not clean up and pactest will print the location of the generated root/
test directory.
Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r-- | Makefile.am | 1 | ||||
-rwxr-xr-x | test/pacman/pactest.py | 34 |
2 files changed, 24 insertions, 11 deletions
diff --git a/Makefile.am b/Makefile.am index 32a08f71..259a455b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -21,7 +21,6 @@ check-local: test/pacman test/util src/pacman src/util $(PYTHON) $(top_srcdir)/test/pacman/pactest.py --debug=1 \ --test $(top_srcdir)/test/pacman/tests/*.py \ -p $(top_builddir)/src/pacman/pacman - rm -rf $(top_builddir)/root $(SH) $(top_srcdir)/test/util/vercmptest.sh \ $(top_builddir)/src/util/vercmp diff --git a/test/pacman/pactest.py b/test/pacman/pactest.py index 69e655a0..64d56510 100755 --- a/test/pacman/pactest.py +++ b/test/pacman/pactest.py @@ -17,8 +17,12 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -import os, sys, glob +import glob from optparse import OptionParser +import os +import shutil +import sys +import tempfile import pmenv import util @@ -63,6 +67,9 @@ def createOptParser(): parser.add_option("-t", "--test", action = "callback", callback = globTests, dest = "testcases", help = "specify test case(s)") + parser.add_option("--keep-root", action = "store_true", + dest = "keeproot", default = False, + help = "don't remove the generated pacman root filesystem") parser.add_option("--nolog", action = "store_true", dest = "nolog", default = False, help = "do not log pacman messages") @@ -80,7 +87,8 @@ def createOptParser(): if __name__ == "__main__": # instantiate env and parser objects - env = pmenv.pmenv() + root_path = tempfile.mkdtemp() + env = pmenv.pmenv(root=root_path) opt_parser = createOptParser() (opts, args) = opt_parser.parse_args() @@ -95,16 +103,22 @@ if __name__ == "__main__": if opts.testcases is None or len(opts.testcases) == 0: print "no tests defined, nothing to do" + os.rmdir(root_path) sys.exit(2) - else: - for i in opts.testcases: - env.addtest(i) - # run tests and print overall results - env.run() - env.results() + for i in opts.testcases: + env.addtest(i) + + # run tests and print overall results + env.run() + env.results() - if env.failed > 0: - sys.exit(1) + if env.failed > 0: + sys.exit(1) + + if not opts.keeproot: + shutil.rmtree(root_path) + else: + print "pacman testing root saved: %s" % root_path # vim: set ts=4 sw=4 et: |