File: runtests

package info (click to toggle)
apt-proxy 1.9.35-0.3
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 616 kB
  • ctags: 712
  • sloc: python: 3,749; sh: 384; makefile: 63
file content (82 lines) | stat: -rwxr-xr-x 1,906 bytes parent folder | download
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 $@