New tool: virt-make-fs for creating filesystems on devices.
[libguestfs.git] / tools / test-virt-make-fs.sh
diff --git a/tools/test-virt-make-fs.sh b/tools/test-virt-make-fs.sh
new file mode 100755 (executable)
index 0000000..e246506
--- /dev/null
@@ -0,0 +1,50 @@
+#!/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