aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2010-08-22 23:18:45 -0400
committerMike Frysinger <vapier@gentoo.org>2010-08-22 23:18:45 -0400
commita16c5c0917fd255b954677a9ffe36ffae6b85fd0 (patch)
treef1d18cafbec65e0da282e862ccfeaf0a21503d05
parentadd support for xz compressed rpms (diff)
downloadrpm2targz-a16c5c0917fd255b954677a9ffe36ffae6b85fd0.tar.gz
rpm2targz-a16c5c0917fd255b954677a9ffe36ffae6b85fd0.tar.bz2
rpm2targz-a16c5c0917fd255b954677a9ffe36ffae6b85fd0.zip
add a small test framework
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
-rw-r--r--.gitignore2
-rw-r--r--Makefile3
-rwxr-xr-xtest.sh51
3 files changed, 56 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index 0b2d73a..d46a3fe 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,3 +9,5 @@ core
rpm2tar
rpmoffset
+
+/test
diff --git a/Makefile b/Makefile
index 5b720f7..fc789d0 100644
--- a/Makefile
+++ b/Makefile
@@ -35,4 +35,7 @@ install: rpmoffset
done
$(dosym) rpm2targz $(DESTDIR)$(bindir)/rpmunpack
+check test:
+ ./test.sh
+
.PHONY: all clean install
diff --git a/test.sh b/test.sh
new file mode 100755
index 0000000..e8d20b7
--- /dev/null
+++ b/test.sh
@@ -0,0 +1,51 @@
+#!/bin/bash
+#
+# Expected test layout:
+# test/
+# rpm/ put all rpms here
+# tmp/ scratch space for testing
+# lst/ known good listings
+#
+
+cd "${0%/*}" || exit 1
+
+if [ ! -e test ] ; then
+ echo "Sorry, no test data (test/)"
+ exit 0
+fi
+
+# This can be verbose, so do it before `set -x`
+PATH=$PWD:$PATH
+
+set -ex
+
+which rpmunpack
+which rpm2tar
+
+cd test
+
+rm -rf tmp
+mkdir tmp
+cd tmp
+
+fail=
+for rpm in ../rpm/*.rpm ; do
+ r=${rpm##*/}
+ if ! rpmunpack ${rpm} ; then
+ fail+=" ${r}"
+ continue
+ fi
+ # do not track timestamps as some cpio archives
+ # only contain info for the files, not the dirs
+ tree -apsn -o ../${r}.lst
+ mv ../${r}.lst ./
+ diff -u ${r}.lst ../lst/
+ rm -rf ./*
+done
+
+set +x
+if [[ -n ${fail} ]] ; then
+ echo "FAILED:" ${fail}
+else
+ echo "ALL PASSED"
+fi