1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
#!/bin/sh
set -e
testfiles="packages/Packages packages/Packages.gz packages/Packages.bz2
verify/invalid-gzip.gz
packages/apt_0.0.1_test.deb packages/empty.txt
apt/apt_0.0.1_test.deb apt/apt_0.0.2_test.deb apt/apt_0.0.3_test.deb"
rootdir="$(cd $(dirname $0); pwd)"
testdir="$rootdir/test_data"
make_pkg()
{
dir=$1
version=$2
pkgdir=${dir}_${version}_test
cp -ra $dir $pkgdir
sed "s/^Version: .*/Version: ${version}/" < $dir/DEBIAN/control > $pkgdir/DEBIAN/control
dpkg --build $pkgdir
rm -r $pkgdir
}
make_test_data()
{
mkdir -p $testdir
cd $testdir
make_data=
for f in $testfiles; do
if [ ! -f "$f" ]; then
make_data=1
break
fi
done
if [ -z "$make_data" ]; then
return
fi
echo "Creating test data"
[ ! -d $testdir/apt ] || rm -r $testdir/apt
mkdir -p $testdir/apt
cd $testdir/apt
echo Creating apt packages from system
fakeroot -u dpkg-repack --generate apt
mv dpkg-repack* apt
make_pkg apt 0.0.1
make_pkg apt 0.0.2
make_pkg apt 0.0.3
rm -r apt
echo Creating Packages file for apt directory
dpkg-scanpackages . /dev/null | tee Packages | gzip -c > Packages.gz
bzip2 -c < Packages > Packages.bz2
cd ..
[ ! -d $testdir/packages ] || rm -r $testdir/packages
mkdir -p $testdir/packages
cd $testdir/packages
cp ../apt/apt_0.0.1_test.deb .
echo Creating Packages file for package
dpkg-scanpackages . /dev/null | tee Packages | gzip -c > Packages.gz
bzip2 -c < Packages > Packages.bz2
touch empty.txt
cd ..
mkdir -p $testdir/verify
cd $testdir/verify
touch empty-unknown-file
echo "blah" > nonempty-unknown-file
gzip -c < nonempty-unknown-file > gzip.gz
cp nonempty-unknown-file invalid-gzip.gz
}
make_test_data
cd $rootdir
if [ $# -eq 0 ]; then
set -- apt_proxy.test
fi
rm -f `pwd`/unittests.log
set -x
PYTHONPATH="`pwd`" trial --logfile `pwd`/unittests.log $@
|