--- /dev/null
+#!/bin/bash -
+
+export LANG=C
+set -e
+
+# Engage in some montecarlo testing of virt-make-fs.
+case $((RANDOM % 4)) in
+ 0) type="--type=ext2" ;;
+ 1) type="--type=ext3" ;;
+ 2) type="--type=ext4" ;;
+ 3) type="--type=ntfs" ;;
+ # Can't test vfat because we cannot create a tar archive
+ # where files are owned by UID:GID 0:0. As a result, tar
+ # in the appliance fails when trying to change the UID of
+ # the files to some non-zero value (not supported by FAT).
+ # 4) type="--type=vfat" ;;
+esac
+
+case $((RANDOM % 2)) in
+ 0) format="--format=raw" ;;
+ 1) format="--format=qcow2" ;;
+esac
+
+case $((RANDOM % 3)) in
+ 0) partition="--partition" ;;
+ 1) partition="--partition=gpt" ;;
+ 2) ;;
+esac
+
+case $((RANDOM % 2)) in
+ 0) ;;
+ 1) size="--size=+1M" ;;
+esac
+
+if [ -n "$LIBGUESTFS_DEBUG" ]; then debug=--debug; fi
+
+params="$type $format $partition $size $debug"
+echo "test-virt-make-fs: parameters: $params"
+
+rm -f test.file test.tar output.img
+
+tarsize=$((RANDOM & 8191))
+echo "test-virt-make-fs: size of test file: $tarsize KB"
+dd if=/dev/zero of=test.file bs=1024 count=$tarsize
+tar -c -f test.tar test.file
+rm test.file
+
+./virt-make-fs $params -- test.tar output.img
+
+rm test.tar output.img