summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@codethink.co.uk>2012-10-26 16:27:00 +0000
committerRichard Maw <richard.maw@codethink.co.uk>2012-10-26 16:27:00 +0000
commit7855e6d2be639c60fa9f609942f9af89c576826a (patch)
tree927e41f5b3448c3f434fe892ecc36d413f278382
parent9e4159ba97862c78a9cfa3e3816f18c708ccba5e (diff)
downloaddefinitions-7855e6d2be639c60fa9f609942f9af89c576826a.tar.gz
Add and use sparse-gunzip in loopback-rootfs
This reduces the space required from the full size of the compressed disk image, which meant that tests could not be run on systems where TMPDIR is a smallish tmpfs.
-rwxr-xr-xscripts/sparse-gunzip6
-rw-r--r--tests.as-root/lib4
2 files changed, 8 insertions, 2 deletions
diff --git a/scripts/sparse-gunzip b/scripts/sparse-gunzip
new file mode 100755
index 00000000..b6e1aa16
--- /dev/null
+++ b/scripts/sparse-gunzip
@@ -0,0 +1,6 @@
+#!/usr/bin/python
+from morphlib.util import copyfileobj
+import gzip, sys
+infh = gzip.GzipFile(fileobj=sys.stdin)
+copyfileobj(infh, sys.stdout)
+infh.close()
diff --git a/tests.as-root/lib b/tests.as-root/lib
index 6818abde..2492bb53 100644
--- a/tests.as-root/lib
+++ b/tests.as-root/lib
@@ -21,8 +21,8 @@ loopback_rootfs() {
# Find offset partition offset in a rootfs and mount it
ROOTFS="$1"
- mv "$ROOTFS" "$ROOTFS-unzipped.gz"
- gunzip "$ROOTFS-unzipped.gz"
+ PYTHONPATH="$SRCDIR" "$SRCDIR/scripts/sparse-gunzip" \
+ <"$ROOTFS" >"$ROOTFS-unzipped"
OFFSET=$(sfdisk -d "$ROOTFS-unzipped" | \
grep -m 1 -o 'start=\s\+\([0-9]\+\)' | awk '{ print $2 }')