diff options
Diffstat (limited to '')
-rw-r--r-- | tests/onlysmalldeletes.test | 142 |
1 files changed, 142 insertions, 0 deletions
diff --git a/tests/onlysmalldeletes.test b/tests/onlysmalldeletes.test new file mode 100644 index 0000000..6042eeb --- /dev/null +++ b/tests/onlysmalldeletes.test @@ -0,0 +1,142 @@ +set -u +. "$TESTSDIR"/test.inc + +mkdir conf +cat >conf/distributions <<EOF +Codename: test +Architectures: abacus source +Components: all + +Codename: copy +Architectures: abacus source +Components: all +Pull: rule +EOF +touch conf/updates +cat >conf/pulls <<EOF +Name: rule +From: test +EOF +cat >conf/incoming <<EOF +Name: i +Tempdir: tmp +Incomingdir: i +Default: test +EOF +cat >conf/options <<EOF +onlysmalldeletes +EOF + +mkdir i +cd i +for i in $(seq 1 40) ; do +PACKAGE=a$i EPOCH="" VERSION=$i REVISION="" SECTION="many" genpackage.sh +mv test.changes a$i.changes +done +cd .. + +cat > pi.rules <<EOF +stdout +$(odb) +-v2*=Created directory "./tmp" +-v2*=Created directory "./pool" +-v2*=Created directory "./pool/all" +-v2*=Created directory "./pool/all/a" +-v0*=Exporting indices... +-v2*=Created directory "./dists" +-v2*=Created directory "./dists/test" +-v2*=Created directory "./dists/test/all" +-v2*=Created directory "./dists/test/all/binary-abacus" +-v6*= looking for changes in 'test|all|abacus'... +-v6*= creating './dists/test/all/binary-abacus/Packages' (uncompressed,gzipped) +-v2*=Created directory "./dists/test/all/source" +-v6*= looking for changes in 'test|all|source'... +-v6*= creating './dists/test/all/source/Sources' (gzipped) +EOF + +for i in $(seq 1 40) ; do +cat >>pi.rules <<EOF +-v2*=Created directory "./pool/all/a/a$i" +$(ofa "pool/all/a/a${i}/a${i}_${i}.dsc") +$(ofa "pool/all/a/a${i}/a${i}_${i}.tar.gz") +$(ofa "pool/all/a/a${i}/a${i}_${i}_abacus.deb") +$(ofa "pool/all/a/a${i}/a${i}-addons_${i}_all.deb") +$(opa "a${i}" unset 'test' 'all' 'source' 'dsc') +$(opa "a${i}" x 'test' 'all' 'abacus' 'deb') +$(opa "a${i}-addons" x 'test' 'all' 'abacus' 'deb') +-v1*=deleting './i/a${i}.changes'... +-v1*=deleting './i/a${i}_${i}.dsc'... +-v1*=deleting './i/a${i}_${i}.tar.gz'... +-v1*=deleting './i/a${i}_${i}_abacus.deb'... +-v1*=deleting './i/a${i}-addons_${i}_all.deb'... +EOF +done + +testrun pi -b . processincoming i +dodo rmdir i +rm pi.rules + +cat >pull.rules <<EOF +stdout +-v0*=Calculating packages to pull... +-v3*= pulling into 'copy|all|source' +-v5*= looking what to get from 'test|all|source' +-v3*= pulling into 'copy|all|abacus' +-v5*= looking what to get from 'test|all|abacus' +-v0*=Installing (and possibly deleting) packages... +-v0*=Exporting indices... +-v2*=Created directory "./dists/copy" +-v2*=Created directory "./dists/copy/all" +-v2*=Created directory "./dists/copy/all/binary-abacus" +-v6*= looking for changes in 'copy|all|abacus'... +-v6*= creating './dists/copy/all/binary-abacus/Packages' (uncompressed,gzipped) +-v2*=Created directory "./dists/copy/all/source" +-v6*= looking for changes in 'copy|all|source'... +-v6*= creating './dists/copy/all/source/Sources' (gzipped) +EOF + +for i in $(seq 1 40) ; do +cat >>pull.rules <<EOF +$(opa "a${i}" unset 'copy' 'all' 'source' 'dsc') +$(opa "a${i}" x 'copy' 'all' 'abacus' 'deb') +$(opa "a${i}-addons" x 'copy' 'all' 'abacus' 'deb') +EOF +done + +testrun pull -b . pull +rm pull.rules + +sed -e 's/Pull: rule/Pull: -/' -i conf/distributions + +testrun - -b . pull 3<<EOF +stdout +-v0*=Calculating packages to pull... +-v3*= pulling into 'copy|all|source' +-v5*= marking everything to be deleted +-v3*= pulling into 'copy|all|abacus' +#-v5*= marking everything to be deleted +-v0*=Installing (and possibly deleting) packages... +stderr +*=Not processing 'copy' because of --onlysmalldeletes +EOF + +sed -e 's/Pull: -/Update: -/' -i conf/distributions +testrun - -b . --noskipold update 3<<EOF +stdout +-v2*=Created directory "./lists" +-v0*=Calculating packages to get... +-v3*= processing updates for 'copy|all|source' +-v5*= marking everything to be deleted +-v3*= processing updates for 'copy|all|abacus' +#-v5*= marking everything to be deleted +stderr +*=Not processing updates for 'copy' because of --onlysmalldeletes! +EOF + +rm -r conf +rm -r db +rm -r pool +rm -r dists +rmdir tmp +rmdir lists +testsuccess |