tools: Add basic tests for the virt-* tools.
[libguestfs.git] / tools / Makefile.am
index d5fc23c..08f126d 100644 (file)
 # along with this program; if not, write to the Free Software
 # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-tools = cat df edit rescue
+include $(top_srcdir)/subdir-rules.mk
+
+tools = \
+       cat \
+       df \
+       edit \
+       list-filesystems \
+       list-partitions \
+       ls \
+       rescue \
+       resize \
+       tar \
+       win-reg
 
 EXTRA_DIST = \
+       make-test-img.sh
        run-locally \
        $(tools:%=virt-%)
 
+CLEANFILES = test.img
+
 if HAVE_TOOLS
 
 bin_SCRIPTS = $(tools:%=virt-%)
 
+# Manual pages and HTML files for the website.
+
 # XXX Bug in automake?  If you list virt-cat.1 explicitly, then it
 # builds and installs the man pages.  However if this is removed,
 # then the man pages are neither built nor installed.
@@ -47,4 +64,25 @@ $(top_builddir)/html/virt-%.1.html: virt-%
          --outfile html/$<.1.html \
          tools/$<
 
+# Tests.
+
+random_val := $(shell awk 'BEGIN{srand(); print 1+int(255*rand())}' < /dev/null)
+
+TESTS_ENVIRONMENT = \
+       MALLOC_PERTURB_=$(random_val) \
+       LD_LIBRARY_PATH=$(top_builddir)/src/.libs \
+       LIBGUESTFS_PATH=$(top_builddir)/appliance \
+       PERL5LIB=$(top_builddir)/perl/blib/lib:$(top_builddir)/perl/blib/arch
+
+# Build a standard test image to be used by all these tests.
+check_DATA = test.img
+test.img: make-test-img.sh
+       $(TESTS_ENVIRONMENT) $(srcdir)/make-test-img.sh
+
+TESTS = test-virt-cat.sh \
+       test-virt-df.sh \
+       test-virt-list-filesystems.sh \
+       test-virt-ls.sh \
+       test-virt-tar.sh
+
 endif