diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:12:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:12:14 +0000 |
commit | 4b8a0f3f3dcf60dac2ce308ea08d413a535af29f (patch) | |
tree | 0f09c0ad2a4d0f535d89040a63dc3a866a6606e6 /tests/various3.test | |
parent | Initial commit. (diff) | |
download | reprepro-4b8a0f3f3dcf60dac2ce308ea08d413a535af29f.tar.xz reprepro-4b8a0f3f3dcf60dac2ce308ea08d413a535af29f.zip |
Adding upstream version 5.4.4.upstream/5.4.4
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/various3.test')
-rw-r--r-- | tests/various3.test | 982 |
1 files changed, 982 insertions, 0 deletions
diff --git a/tests/various3.test b/tests/various3.test new file mode 100644 index 0000000..53fab19 --- /dev/null +++ b/tests/various3.test @@ -0,0 +1,982 @@ +set -u +. "$TESTSDIR"/test.inc + +dodo test ! -e dists +mkdir conf db logs lists + +for tracking in true false ; do +if $tracking ; then +echo "this is the test variant with tracking on" +else +echo "this is the test variant with tracking off" +fi + +if $tracking ; then +cat >> conf/distributions <<EOF + +Codename: a +Architectures: abacus source +Components: all +Tracking: minimal +Log: logab + +Codename: b +Architectures: abacus +Components: all +Pull: froma +Log: logab +EOF +if test x"${REPREPROOPTIONS#*--verbosedb}" != x"$REPREPROOPTIONS" ; then + TRACKINGTESTOPTIONS="-D t=1 -D u=1" +else + TRACKINGTESTOPTIONS="-D t=0 -D u=1" +fi +else +cat >> conf/distributions <<EOF + +Codename: a +Architectures: abacus source +Components: all +Log: logab + +Codename: b +Architectures: abacus +Components: all +Pull: froma +Log: logab +EOF +TRACKINGTESTOPTIONS="-D t=0 -D u=0" +fi + +checknolog logab +cat > conf/pulls <<EOF +Name: froma +From: a +Architectures: froma>toa froma>toa2 froma2>toa2 +Components: c1 c2 +UDebComponents: u1 u2 +EOF +testrun - -b . --export=changed pull a b 3<<EOF +stderr +*=Error parsing ./conf/pulls, line 3, column 16: Unknown architecture 'froma' in Architectures. +-v0*=There have been errors! +return 255 +EOF +cp conf/distributions conf/distributions.old +cat >> conf/distributions <<EOF + +Codename: moreatoms +Architectures: froma froma2 toa toa2 +Components: c1 c2 u1 u2 +EOF + +testrun - -b . --export=changed pull a b 3<<EOF +stderr +*=(This will simply be ignored and is not even checked when using --fast). +*=Warning: pull rule 'froma' wants to get something from architecture 'froma', +*=Warning: pull rule 'froma' wants to get something from architecture 'froma2', +*=but there is no such architecture in distribution 'a'. +*=Warning: pull rule 'froma' wants to get something from component 'c1', +*=Warning: pull rule 'froma' wants to get something from component 'c2', +*=but there is no such component in distribution 'a'. +*=Warning: pull rule 'froma' wants to get something from udeb component 'u1', +*=Warning: pull rule 'froma' wants to get something from udeb component 'u2', +*=but there is no such udeb component in distribution 'a'. +*=Warning: pull rule 'froma' wants to put something into architecture 'toa', +*=but no distribution using this has such an architecture. +*=Warning: pull rule 'froma' wants to put something into architecture 'toa2', +*=Warning: pull rule 'froma' wants to put something into component 'c1', +*=but no distribution using this has such an component. +*=Warning: pull rule 'froma' wants to put something into component 'c2', +*=Warning: pull rule 'froma' wants to put something into udeb component 'u1', +*=but no distribution using this has such an udeb component. +*=Warning: pull rule 'froma' wants to put something into udeb component 'u2', +stdout +-v0*=Calculating packages to pull... +-v3*= pulling into 'b|all|abacus' +-v0*=Installing (and possibly deleting) packages... +EOF +mv conf/distributions.old conf/distributions +testrun - -b . clearvanished 3<<EOF +stderr +stdout +*=Deleting vanished identifier 'moreatoms|c1|froma'. +*=Deleting vanished identifier 'moreatoms|c1|froma2'. +*=Deleting vanished identifier 'moreatoms|c1|toa'. +*=Deleting vanished identifier 'moreatoms|c1|toa2'. +*=Deleting vanished identifier 'moreatoms|c2|froma'. +*=Deleting vanished identifier 'moreatoms|c2|froma2'. +*=Deleting vanished identifier 'moreatoms|c2|toa'. +*=Deleting vanished identifier 'moreatoms|c2|toa2'. +*=Deleting vanished identifier 'moreatoms|u1|froma'. +*=Deleting vanished identifier 'moreatoms|u1|froma2'. +*=Deleting vanished identifier 'moreatoms|u1|toa'. +*=Deleting vanished identifier 'moreatoms|u1|toa2'. +*=Deleting vanished identifier 'moreatoms|u2|froma'. +*=Deleting vanished identifier 'moreatoms|u2|froma2'. +*=Deleting vanished identifier 'moreatoms|u2|toa'. +*=Deleting vanished identifier 'moreatoms|u2|toa2'. +EOF +cat > conf/pulls <<EOF +Name: froma +From: a +EOF +testrun - -b . --export=changed pull a b 3<<EOF +stderr +stdout +-v0*=Calculating packages to pull... +-v3*= pulling into 'b|all|abacus' +-v5*= looking what to get from 'a|all|abacus' +-v0*=Installing (and possibly deleting) packages... +EOF +checklog logab < /dev/null +test ! -d dists/a +test ! -d dists/b +testrun - -b . --export=lookedat pull b 3<<EOF +stdout +-v0*=Calculating packages to pull... +-v3*= pulling into 'b|all|abacus' +-v5*= looking what to get from 'a|all|abacus' +-v0*=Installing (and possibly deleting) packages... +-v0*=Exporting indices... +-v2*=Created directory "./dists" +-v2*=Created directory "./dists/b" +-v2*=Created directory "./dists/b/all" +-v2*=Created directory "./dists/b/all/binary-abacus" +-v6*= looking for changes in 'b|all|abacus'... +-v6*= creating './dists/b/all/binary-abacus/Packages' (uncompressed,gzipped) +EOF +checklog logab < /dev/null +test ! -d dists/a +test -d dists/b +testrun - -b . --export=lookedat pull a b 3<<EOF +stdout +-v0*=Calculating packages to pull... +-v3*= pulling into 'b|all|abacus' +-v5*= looking what to get from 'a|all|abacus' +-v0*=Installing (and possibly deleting) packages... +-v0*=Exporting indices... +-v6*= looking for changes in 'b|all|abacus'... +-v2*=Created directory "./dists/a" +-v2*=Created directory "./dists/a/all" +-v2*=Created directory "./dists/a/all/binary-abacus" +-v6*= looking for changes in 'a|all|abacus'... +-v6*= creating './dists/a/all/binary-abacus/Packages' (uncompressed,gzipped) +-v2*=Created directory "./dists/a/all/source" +-v6*= looking for changes in 'a|all|source'... +-v6*= creating './dists/a/all/source/Sources' (gzipped) +EOF +checklog logab < /dev/null +test -d dists/a +test -d dists/b +rm -r dists/a dists/b +DISTRI=a PACKAGE=aa EPOCH="" VERSION=1 REVISION="-1" SECTION="stupid/base" genpackage.sh +testrun - -b . --export=never --delete --delete include a test.changes 3<<EOF +*=Warning: database 'a|all|abacus' was modified but no index file was exported. +*=Warning: database 'a|all|source' was modified but no index file was exported. +*=Changes will only be visible after the next 'export'! +stdout +-v2*=Created directory "./pool" +-v2*=Created directory "./pool/all" +-v2*=Created directory "./pool/all/a" +-v2*=Created directory "./pool/all/a/aa" +$(ofa 'pool/all/a/aa/aa-addons_1-1_all.deb') +$(ofa 'pool/all/a/aa/aa_1-1_abacus.deb') +$(ofa 'pool/all/a/aa/aa_1-1.tar.gz') +$(ofa 'pool/all/a/aa/aa_1-1.dsc') +$(opa 'aa-addons' x 'a' 'all' 'abacus' 'deb') +$(opa 'aa' x 'a' 'all' 'abacus' 'deb') +$(opa 'aa' x 'a' 'all' 'source' 'dsc') +$(otta 'a' 'aa') +-v5*=Deleting 'test.changes'. +EOF +checklog logab << EOF +DATESTR add a deb all abacus aa-addons 1-1 +DATESTR add a deb all abacus aa 1-1 +DATESTR add a dsc all source aa 1-1 +EOF +test ! -d dists/a +test ! -d dists/b +test ! -f test.changes +test ! -f aa_1-1_abacus.deb +test ! -f aa_1-1.dsc +test ! -f aa_1-1.tar.gz +test ! -f aa-addons_1-1_all.deb +test -f pool/all/a/aa/aa-addons_1-1_all.deb +test -f pool/all/a/aa/aa_1-1_abacus.deb +test -f pool/all/a/aa/aa_1-1.dsc +test -f pool/all/a/aa/aa_1-1.tar.gz +testout "" -b . dumptracks a +cat >results.expected <<END +Distribution: a +Source: aa +Version: 1-1 +Files: + pool/all/a/aa/aa_1-1.dsc s 1 + pool/all/a/aa/aa_1-1.tar.gz s 1 + pool/all/a/aa/aa_1-1_abacus.deb b 1 + pool/all/a/aa/aa-addons_1-1_all.deb a 1 + +END +if $tracking; then dodiff results.expected results ; else dodiff /dev/null results ; fi +testrun - -b . export a 3<<EOF +stdout +-v1*=Exporting a... +-v2*=Created directory "./dists/a" +-v2*=Created directory "./dists/a/all" +-v2*=Created directory "./dists/a/all/binary-abacus" +-v6*= exporting 'a|all|abacus'... +-v6*= creating './dists/a/all/binary-abacus/Packages' (uncompressed,gzipped) +-v2*=Created directory "./dists/a/all/source" +-v6*= exporting 'a|all|source'... +-v6*= creating './dists/a/all/source/Sources' (gzipped) +EOF +checknolog logab +dogrep "Version: 1-1" dists/a/all/binary-abacus/Packages +rm -r dists/a +testout - -b . dumppull b 3<<EOF +stderr +EOF +cat > results.expected <<EOF +Updates needed for 'b|all|abacus': +add 'aa' - '1-1' 'froma' +add 'aa-addons' - '1-1' 'froma' +EOF +dodiff results results.expected +testrun - -b . --export=changed pull a b 3<<EOF +stdout +-v0*=Calculating packages to pull... +-v3*= pulling into 'b|all|abacus' +-v5*= looking what to get from 'a|all|abacus' +-v0*=Installing (and possibly deleting) packages... +$(opa 'aa' x 'b' 'all' 'abacus' 'deb') +$(opa 'aa-addons' x 'b' 'all' 'abacus' 'deb') +-v0*=Exporting indices... +-v2*=Created directory "./dists/b" +-v2*=Created directory "./dists/b/all" +-v2*=Created directory "./dists/b/all/binary-abacus" +-v6*= looking for changes in 'b|all|abacus'... +-v6*= creating './dists/b/all/binary-abacus/Packages' (uncompressed,gzipped) +EOF +checklog logab << EOF +DATESTR add b deb all abacus aa 1-1 +DATESTR add b deb all abacus aa-addons 1-1 +EOF +test ! -d dists/a +test -d dists/b +dogrep "Version: 1-1" dists/b/all/binary-abacus/Packages +DISTRI=a PACKAGE=aa EPOCH="" VERSION=1 REVISION="-2" SECTION="stupid/base" genpackage.sh +testrun - -b . --export=changed --delete include a test.changes 3<<EOF +stdout +$(ofa 'pool/all/a/aa/aa-addons_1-2_all.deb') +$(ofa 'pool/all/a/aa/aa_1-2_abacus.deb') +$(ofa 'pool/all/a/aa/aa_1-2.tar.gz') +$(ofa 'pool/all/a/aa/aa_1-2.dsc') +$(opu 'aa-addons' x x 'a' 'all' 'abacus' 'deb') +$(opu 'aa' x x 'a' 'all' 'abacus' 'deb') +$(opu 'aa' x x 'a' 'all' 'source' 'dsc') +$(otta 'a' 'aa') +$(ottd 'aa' '1-1' 'a') +-v0*=Exporting indices... +-v2*=Created directory "./dists/a" +-v2*=Created directory "./dists/a/all" +-v2*=Created directory "./dists/a/all/binary-abacus" +-v6*= looking for changes in 'a|all|abacus'... +-v6*= creating './dists/a/all/binary-abacus/Packages' (uncompressed,gzipped) +-v2*=Created directory "./dists/a/all/source" +-v6*= looking for changes in 'a|all|source'... +-v6*= creating './dists/a/all/source/Sources' (gzipped) +-v0*=Deleting files no longer referenced... +$(ofd 'pool/all/a/aa/aa_1-1.dsc') +$(ofd 'pool/all/a/aa/aa_1-1.tar.gz') +EOF +checklog logab << EOF +DATESTR replace a deb all abacus aa-addons 1-2 1-1 +DATESTR replace a deb all abacus aa 1-2 1-1 +DATESTR replace a dsc all source aa 1-2 1-1 +EOF +test -f test.changes +test ! -f aa_1-2_abacus.deb +test ! -f aa_1-2.dsc +test ! -f aa_1-2.tar.gz +test ! -f aa-addons_1-2_all.deb +test -d dists/a +dogrep "Version: 1-2" dists/a/all/binary-abacus/Packages +dogrep "Version: 1-1" dists/b/all/binary-abacus/Packages +testout "" -b . dumptracks a +cat >results.expected <<END +Distribution: a +Source: aa +Version: 1-2 +Files: + pool/all/a/aa/aa_1-2.dsc s 1 + pool/all/a/aa/aa_1-2.tar.gz s 1 + pool/all/a/aa/aa_1-2_abacus.deb b 1 + pool/all/a/aa/aa-addons_1-2_all.deb a 1 + +END +if $tracking; then dodiff results.expected results ; else dodiff /dev/null results ; fi +rm -r dists/a dists/b +testout - -b . dumppull b 3<<EOF +stderr +EOF +cat > results.expected <<EOF +Updates needed for 'b|all|abacus': +update 'aa' '1-1' '1-2' 'froma' +update 'aa-addons' '1-1' '1-2' 'froma' +EOF +dodiff results results.expected +testrun - -b . --export=changed pull a b 3<<EOF +stderr +stdout +-v0*=Calculating packages to pull... +-v3*= pulling into 'b|all|abacus' +-v5*= looking what to get from 'a|all|abacus' +-v0*=Installing (and possibly deleting) packages... +$(opu 'aa' x x 'b' 'all' 'abacus' 'deb') +$(opu 'aa-addons' x x 'b' 'all' 'abacus' 'deb') +-v0=Exporting indices... +-v2*=Created directory "./dists/b" +-v2*=Created directory "./dists/b/all" +-v2*=Created directory "./dists/b/all/binary-abacus" +-v6*= looking for changes in 'b|all|abacus'... +-v6*= creating './dists/b/all/binary-abacus/Packages' (uncompressed,gzipped) +-v0*=Deleting files no longer referenced... +$(ofd 'pool/all/a/aa/aa_1-1_abacus.deb') +$(ofd 'pool/all/a/aa/aa-addons_1-1_all.deb') +EOF +checklog logab << EOF +DATESTR replace b deb all abacus aa 1-2 1-1 +DATESTR replace b deb all abacus aa-addons 1-2 1-1 +EOF +test ! -d dists/a +test -d dists/b +dogrep "Version: 1-2" dists/b/all/binary-abacus/Packages +DISTRI=a PACKAGE=aa EPOCH="" VERSION=1 REVISION="-3" SECTION="stupid/base" genpackage.sh +testrun - -b . --export=never include a test.changes 3<<EOF +*=Warning: database 'a|all|abacus' was modified but no index file was exported. +*=Warning: database 'a|all|source' was modified but no index file was exported. +*=Changes will only be visible after the next 'export'! +stdout +$(ofa 'pool/all/a/aa/aa-addons_1-3_all.deb') +$(ofa 'pool/all/a/aa/aa_1-3_abacus.deb') +$(ofa 'pool/all/a/aa/aa_1-3.tar.gz') +$(ofa 'pool/all/a/aa/aa_1-3.dsc') +$(opu 'aa-addons' x x 'a' 'all' 'abacus' 'deb') +$(opu 'aa' x x 'a' 'all' 'abacus' 'deb') +$(opu 'aa' x x 'a' 'all' 'source' 'dsc') +$(otta 'a' 'aa') +$(ottd 'aa' '1-2' 'a') +-v0*=Deleting files no longer referenced... +$(ofd 'pool/all/a/aa/aa_1-2.dsc') +$(ofd 'pool/all/a/aa/aa_1-2.tar.gz') +EOF +checklog logab << EOF +DATESTR replace a deb all abacus aa-addons 1-3 1-2 +DATESTR replace a deb all abacus aa 1-3 1-2 +DATESTR replace a dsc all source aa 1-3 1-2 +EOF +test -f test.changes +test -f aa_1-3_abacus.deb +test -f aa_1-3.dsc +test -f aa_1-3.tar.gz +test -f aa-addons_1-3_all.deb +test ! -f pool/all/a/aa/aa_1-2.dsc +test -f pool/all/a/aa/aa_1-2_abacus.deb # still in b +testout "" -b . dumptracks a +cat >results.expected <<END +Distribution: a +Source: aa +Version: 1-3 +Files: + pool/all/a/aa/aa_1-3.dsc s 1 + pool/all/a/aa/aa_1-3.tar.gz s 1 + pool/all/a/aa/aa_1-3_abacus.deb b 1 + pool/all/a/aa/aa-addons_1-3_all.deb a 1 + +END +if $tracking; then dodiff results.expected results ; else dodiff /dev/null results ; fi +testout "" -b . dumpunreferenced +dodiff /dev/null results +DISTRI=a PACKAGE=ab EPOCH="" VERSION=2 REVISION="-1" SECTION="stupid/base" genpackage.sh +testrun - -b . --delete --delete --export=never include a test.changes 3<<EOF +stderr +*=Warning: database 'a|all|abacus' was modified but no index file was exported. +*=Warning: database 'a|all|source' was modified but no index file was exported. +=Changes will only be visible after the next 'export'! +stdout +-v2*=Created directory "./pool/all/a/ab" +$(ofa 'pool/all/a/ab/ab-addons_2-1_all.deb') +$(ofa 'pool/all/a/ab/ab_2-1_abacus.deb') +$(ofa 'pool/all/a/ab/ab_2-1.tar.gz') +$(ofa 'pool/all/a/ab/ab_2-1.dsc') +$(opa 'ab-addons' x 'a' 'all' 'abacus' 'deb') +$(opa 'ab' x 'a' 'all' 'abacus' 'deb') +$(opa 'ab' x 'a' 'all' 'source' 'dsc') +$(otta 'a' 'ab') +-v5*=Deleting 'test.changes'. +EOF +checklog logab << EOF +DATESTR add a deb all abacus ab-addons 2-1 +DATESTR add a deb all abacus ab 2-1 +DATESTR add a dsc all source ab 2-1 +EOF +testout - -b . dumppull b 3<<EOF +stderr +EOF +cat > results.expected <<EOF +Updates needed for 'b|all|abacus': +update 'aa' '1-2' '1-3' 'froma' +update 'aa-addons' '1-2' '1-3' 'froma' +add 'ab' - '2-1' 'froma' +add 'ab-addons' - '2-1' 'froma' +EOF +dodiff results results.expected + +testrun - -b . --export=changed pull b 3<<EOF +stderr +stdout +-v0*=Calculating packages to pull... +-v3*= pulling into 'b|all|abacus' +-v5*= looking what to get from 'a|all|abacus' +-v0*=Installing (and possibly deleting) packages... +$(opu 'aa' x x 'b' 'all' 'abacus' 'deb') +$(opu 'aa-addons' x x 'b' 'all' 'abacus' 'deb') +$(opa 'ab' x 'b' 'all' 'abacus' 'deb') +$(opa 'ab-addons' x 'b' 'all' 'abacus' 'deb') +-v0=Exporting indices... +-v6*= looking for changes in 'b|all|abacus'... +-v6*= replacing './dists/b/all/binary-abacus/Packages' (uncompressed,gzipped) +-v0*=Deleting files no longer referenced... +$(ofd 'pool/all/a/aa/aa_1-2_abacus.deb') +$(ofd 'pool/all/a/aa/aa-addons_1-2_all.deb') +EOF +checklog logab << EOF +DATESTR replace b deb all abacus aa 1-3 1-2 +DATESTR replace b deb all abacus aa-addons 1-3 1-2 +DATESTR add b deb all abacus ab 2-1 +DATESTR add b deb all abacus ab-addons 2-1 +EOF +testout - -b . dumppull b 3<<EOF +stderr +EOF +cat > results.expected <<EOF +Updates needed for 'b|all|abacus': +keep 'aa' '1-3' '1-3' +keep 'aa-addons' '1-3' '1-3' +keep 'ab' '2-1' '2-1' +keep 'ab-addons' '2-1' '2-1' +EOF +dodiff results results.expected +dogrep "Version: 1-3" dists/b/all/binary-abacus/Packages +dogrep "Version: 2-1" dists/b/all/binary-abacus/Packages +test ! -f pool/all/a/aa/aa_1-2_abacus.deb +test -f pool/all/a/aa/aa_1-3_abacus.deb +DISTRI=a PACKAGE=ab EPOCH="" VERSION=3 REVISION="-1" SECTION="stupid/base" genpackage.sh +grep -v '\.tar\.gz' test.changes > broken.changes +testrun - -b . --delete --delete include a broken.changes 3<<EOF +*=I don't know what to do having a .dsc without a .diff.gz or .tar.gz in 'broken.changes'! +-v0*=There have been errors! +returns 255 +EOF +checknolog logab +echo " $EMPTYMD5 stupid/base superfluous ab_3-1.diff.gz" >> broken.changes +testrun - -b . --delete --delete include a broken.changes 3<<EOF +*=Cannot find file './ab_3-1.diff.gz' needed by 'broken.changes'! +-v0*=There have been errors! +returns 249 +EOF +checknolog logab +test -f broken.changes +test ! -f ab_3-1.diff.gz +test -f ab-addons_3-1_all.deb +test -f ab_3-1_abacus.deb +test -f ab_3-1.dsc +test ! -f pool/all/a/ab/ab_3-1.diff.gz +test ! -f pool/all/a/ab/ab-addons_3-1_all.deb +test ! -f pool/all/a/ab/ab_3-1_abacus.deb +test ! -f pool/all/a/ab/ab_3-1.dsc +touch ab_3-1.diff.gz +testrun - -b . --delete -T deb include a broken.changes 3<<EOF +stdout +$(ofa 'pool/all/a/ab/ab-addons_3-1_all.deb') +$(ofa 'pool/all/a/ab/ab_3-1_abacus.deb') +$(opu 'ab-addons' x x 'a' 'all' 'abacus' 'deb') +$(opu 'ab' x x 'a' 'all' 'abacus' 'deb') +$(otta 'a' 'ab') +-v0*=Exporting indices... +-v2*=Created directory "./dists/a" +-v2*=Created directory "./dists/a/all" +-v2*=Created directory "./dists/a/all/binary-abacus" +-v6*= looking for changes in 'a|all|abacus'... +-v6*= creating './dists/a/all/binary-abacus/Packages' (uncompressed,gzipped) +-v2*=Created directory "./dists/a/all/source" +-v6*= looking for changes in 'a|all|source'... +-v6*= creating './dists/a/all/source/Sources' (gzipped) +EOF +checklog logab <<EOF +DATESTR replace a deb all abacus ab-addons 3-1 2-1 +DATESTR replace a deb all abacus ab 3-1 2-1 +EOF +testout "" -b . dumpunreferenced +dodiff /dev/null results +test -f broken.changes +test -f ab_3-1.diff.gz +test ! -f ab-addons_3-1_all.deb +test ! -f ab_3-1_abacus.deb +test -f ab_3-1.dsc +test ! -f pool/all/a/ab/ab_3-1.diff.gz +test -f pool/all/a/ab/ab-addons_3-1_all.deb +test -f pool/all/a/ab/ab_3-1_abacus.deb +test ! -f pool/all/a/ab/ab_3-1.dsc +testout "" -b . dumptracks a +cat >results.expected <<END +Distribution: a +Source: aa +Version: 1-3 +Files: + pool/all/a/aa/aa_1-3.dsc s 1 + pool/all/a/aa/aa_1-3.tar.gz s 1 + pool/all/a/aa/aa_1-3_abacus.deb b 1 + pool/all/a/aa/aa-addons_1-3_all.deb a 1 + +Distribution: a +Source: ab +Version: 2-1 +Files: + pool/all/a/ab/ab_2-1.dsc s 1 + pool/all/a/ab/ab_2-1.tar.gz s 1 + +Distribution: a +Source: ab +Version: 3-1 +Files: + pool/all/a/ab/ab_3-1_abacus.deb b 1 + pool/all/a/ab/ab-addons_3-1_all.deb a 1 + +END +if $tracking; then dodiff results.expected results ; else dodiff /dev/null results ; fi +testout "" -b . dumpunreferenced +dodiff /dev/null results +testrun - -b . --delete --delete include a broken.changes 3<<EOF +*=Unable to find pool/all/a/ab/ab_3-1.tar.gz needed by ab_3-1.dsc! +*=Perhaps you forgot to give dpkg-buildpackage the -sa option, += or you could try --ignore=missingfile to guess possible files to use. +-v0*=There have been errors! +stdout +$(ofa 'pool/all/a/ab/ab_3-1.dsc') +$(ofa 'pool/all/a/ab/ab_3-1.diff.gz') +-v0*=Deleting files just added to the pool but not used. +-v0*=(to avoid use --keepunusednewfiles next time) +$(ofd 'pool/all/a/ab/ab_3-1.diff.gz') +$(ofd 'pool/all/a/ab/ab_3-1.dsc') +returns 249 +EOF +test -f broken.changes +test -f ab_3-1.diff.gz +test ! -f ab-addons_3-1_all.deb +test ! -f ab_3-1_abacus.deb +test -f ab_3-1.dsc +test ! -f pool/all/a/ab/ab_3-1.diff.gz +test -f pool/all/a/ab/ab-addons_3-1_all.deb +test -f pool/all/a/ab/ab_3-1_abacus.deb +test ! -f pool/all/a/ab/ab_3-1.dsc +cat broken.changes +testrun - -b . -T dsc --delete --delete --ignore=missingfile include a broken.changes 3<<EOF +*=Unable to find pool/all/a/ab/ab_3-1.tar.gz! +*=Perhaps you forgot to give dpkg-buildpackage the -sa option. +*=--ignore=missingfile was given, searching for file... +stdout +$(ofa 'pool/all/a/ab/ab_3-1.tar.gz') +$(ofa 'pool/all/a/ab/ab_3-1.diff.gz') +$(ofa 'pool/all/a/ab/ab_3-1.dsc') +$(opu 'ab' x x 'a' 'all' 'source' 'dsc') +$(ottd 'ab' '2-1' 'a') +-v0*=Deleting files just added to the pool but not used. +-v0*=(to avoid use --keepunusednewfiles next time) +$(ofd 'pool/all/a/ab/ab_3-1.diff.gz') +-v5*=Deleting 'broken.changes'. +-v0*=Exporting indices... +-v6*= looking for changes in 'a|all|abacus'... +-v6*= looking for changes in 'a|all|source'... +-v6*= replacing './dists/a/all/source/Sources' (gzipped) +-v0*=Deleting files no longer referenced... +$(ofd 'pool/all/a/ab/ab_2-1.dsc') +$(ofd 'pool/all/a/ab/ab_2-1.tar.gz') +EOF +checklog logab <<EOF +DATESTR replace a dsc all source ab 3-1 2-1 +EOF +test ! -f broken.changes +test ! -f ab_3-1.diff.gz +test ! -f ab-addons_3-1_all.deb +test ! -f ab_3-1_abacus.deb +test ! -f ab_3-1.dsc +test ! -f pool/all/a/ab/ab_3-1.diff.gz +test -f pool/all/a/ab/ab-addons_3-1_all.deb +test -f pool/all/a/ab/ab_3-1_abacus.deb +test -f pool/all/a/ab/ab_3-1.dsc +testout "" -b . dumpunreferenced +cat > results.expected << EOF +pool/all/a/ab/ab_3-1.diff.gz +EOF +dodiff /dev/null results || dodiff results.expected results +testrun - -b . deleteunreferenced 3<<EOF +stdout +$(ofd 'pool/all/a/ab/ab_3-1.diff.gz' true '') +EOF + +DISTRI=b PACKAGE=ac EPOCH="" VERSION=1 REVISION="-1" SECTION="stupid/base" genpackage.sh +testrun - -b . -A abacus --delete --delete --ignore=missingfile include b test.changes 3<<EOF +stderr +-v2*=Skipping 'ac_1-1.dsc' as architecture 'source' is not in the requested set. +-v2*=Skipping 'ac_1-1.tar.gz' as architecture 'source' is not in the requested set. +-v3*=Limiting 'ac-addons_1-1_all.deb' to architectures abacus as requested. +stdout +-v2*=Created directory "./pool/all/a/ac" +$(ofa 'pool/all/a/ac/ac-addons_1-1_all.deb') +$(ofa 'pool/all/a/ac/ac_1-1_abacus.deb') +$(opa 'ac-addons' x 'b' 'all' 'abacus' 'deb') +$(opa 'ac' x 'b' 'all' 'abacus' 'deb') +-v5*=Deleting 'test.changes'. +-v0*=Exporting indices... +-v6*= looking for changes in 'b|all|abacus'... +-v6*= replacing './dists/b/all/binary-abacus/Packages' (uncompressed,gzipped) +EOF +checklog logab <<EOF +DATESTR add b deb all abacus ac-addons 1-1 +DATESTR add b deb all abacus ac 1-1 +EOF +dogrep '^Package: aa$' dists/b/all/binary-abacus/Packages +dogrep '^Package: aa-addons$' dists/b/all/binary-abacus/Packages +dogrep '^Package: ab$' dists/b/all/binary-abacus/Packages +dogrep '^Package: ab-addons$' dists/b/all/binary-abacus/Packages +dogrep '^Package: ac$' dists/b/all/binary-abacus/Packages +dogrep '^Package: ac-addons$' dists/b/all/binary-abacus/Packages +echo "Update: - froma" >> conf/distributions +cat >conf/updates <<END +Name: froma +Method: copy:$WORKDIR +VerifyRelease: blindtrust +Suite: a +GetInRelease: no +ListHook: /bin/cp +END +testout - -b . dumpupdate b 3<<EOF +-v6*=aptmethod start 'copy:$WORKDIR/dists/a/Release' +-v1*=aptmethod got 'copy:$WORKDIR/dists/a/Release' +-v6*=aptmethod start 'copy:$WORKDIR/dists/a/all/binary-abacus/Packages.gz' +-v1*=aptmethod got 'copy:$WORKDIR/dists/a/all/binary-abacus/Packages.gz' +-v2*=Uncompress './lists/froma_a_all_abacus_Packages.gz' into './lists/froma_a_all_abacus_Packages' using '/bin/gunzip'... +-v6*=Called /bin/cp './lists/froma_a_all_abacus_Packages' './lists/_b_all_abacus_froma_froma_a_all_abacus_Packages' +-v6*=Listhook successfully returned! +EOF +cat > results.expected <<EOF +Updates needed for 'b|all|abacus': +keep 'aa' '1-3' '1-3' +keep 'aa-addons' '1-3' '1-3' +update 'ab' '2-1' '3-1' 'froma' +update 'ab-addons' '2-1' '3-1' 'froma' +delete 'ac' '1-1' +delete 'ac-addons' '1-1' +EOF +dodiff results.expected results +testrun - -b . predelete b 3<<EOF +=WARNING: Single-Instance not yet supported! +-v6*=aptmethod start 'copy:$WORKDIR/dists/a/Release' +-v1*=aptmethod got 'copy:$WORKDIR/dists/a/Release' +-v6*=Called /bin/cp './lists/froma_a_all_abacus_Packages' './lists/_b_all_abacus_froma_froma_a_all_abacus_Packages' +-v6*=Listhook successfully returned! +stdout +-v0*=Removing obsolete or to be replaced packages... +-v3*= processing updates for 'b|all|abacus' +-v5*= marking everything to be deleted +-v5*= reading './lists/_b_all_abacus_froma_froma_a_all_abacus_Packages' +$(opd 'ab' x b all abacus deb) +$(opd 'ab-addons' x b all abacus deb) +$(opd 'ac' x b all abacus deb) +$(opd 'ac-addons' x b all abacus deb) +-v0*=Exporting indices... +-v6*= looking for changes in 'b|all|abacus'... +-v6*= replacing './dists/b/all/binary-abacus/Packages' (uncompressed,gzipped) +-v1*=Shutting down aptmethods... +-v0*=Deleting files no longer referenced... +$(ofd 'pool/all/a/ab/ab_2-1_abacus.deb') +$(ofd 'pool/all/a/ab/ab-addons_2-1_all.deb') +$(ofd 'pool/all/a/ac/ac_1-1_abacus.deb') +$(ofd 'pool/all/a/ac/ac-addons_1-1_all.deb') +-v2*=removed now empty directory ./pool/all/a/ac +EOF +testout - -b . dumpupdate b 3<<EOF +-v6*=aptmethod start 'copy:$WORKDIR/dists/a/Release' +-v1*=aptmethod got 'copy:$WORKDIR/dists/a/Release' +-v6*=Called /bin/cp './lists/froma_a_all_abacus_Packages' './lists/_b_all_abacus_froma_froma_a_all_abacus_Packages' +-v6*=Listhook successfully returned! +EOF +cat > results.expected <<EOF +Updates needed for 'b|all|abacus': +keep 'aa' '1-3' '1-3' +keep 'aa-addons' '1-3' '1-3' +add 'ab' - '3-1' 'froma' +add 'ab-addons' - '3-1' 'froma' +EOF +dodiff results.expected results +checklog logab <<EOF +DATESTR remove b deb all abacus ab 2-1 +DATESTR remove b deb all abacus ab-addons 2-1 +DATESTR remove b deb all abacus ac 1-1 +DATESTR remove b deb all abacus ac-addons 1-1 +EOF +dogrep '^Package: aa$' dists/b/all/binary-abacus/Packages +dogrep '^Package: aa-addons$' dists/b/all/binary-abacus/Packages +dongrep '^Package: ab$' dists/b/all/binary-abacus/Packages +dongrep '^Package: ab-addons$' dists/b/all/binary-abacus/Packages +dongrep '^Package: ac$' dists/b/all/binary-abacus/Packages +dongrep '^Package: ac-addons$' dists/b/all/binary-abacus/Packages +test ! -f pool/all/a/ac/ac-addons_1-1_all.deb +test ! -f pool/all/a/ab/ab_2-1_abacus.deb +test -f pool/all/a/aa/aa_1-3_abacus.deb +testrun - -b . copy b a ab ac 3<<EOF +stderr +-v0*=Will not copy as not found: ac. +stdout +-v9*=Adding reference to 'pool/all/a/ab/ab_3-1_abacus.deb' by 'b|all|abacus' +-v1*=Adding 'ab' '3-1' to 'b|all|abacus'. +-v3*=Not looking into 'a|all|source' as no matching target in 'b'! +$(opa 'ab' x 'b' 'all' 'abacus' 'deb') +-v0*=Exporting indices... +-v6*= looking for changes in 'b|all|abacus'... +-v6*= replacing './dists/b/all/binary-abacus/Packages' (uncompressed,gzipped) +EOF +# readd? +#-v3*=No instance of 'ab' found in 'a|all|source'! +#-v3*=No instance of 'ac' found in 'a|all|abacus'! +#-v3*=No instance of 'ac' found in 'a|all|source'! +checklog logab <<EOF +DATESTR add b deb all abacus ab 3-1 +EOF +if $tracking ; then +testout "" -b . dumptracks +cat > results.expected <<EOF +Distribution: a +Source: aa +Version: 1-3 +Files: + pool/all/a/aa/aa_1-3.dsc s 1 + pool/all/a/aa/aa_1-3.tar.gz s 1 + pool/all/a/aa/aa_1-3_abacus.deb b 1 + pool/all/a/aa/aa-addons_1-3_all.deb a 1 + +Distribution: a +Source: ab +Version: 3-1 +Files: + pool/all/a/ab/ab_3-1_abacus.deb b 1 + pool/all/a/ab/ab-addons_3-1_all.deb a 1 + pool/all/a/ab/ab_3-1.dsc s 1 + pool/all/a/ab/ab_3-1.tar.gz s 1 + +EOF +dodiff results.expected results +testout "" -b . dumpreferences +sort results > results.sorted +cat > results.expected <<EOF +a aa 1-3 pool/all/a/aa/aa-addons_1-3_all.deb +a aa 1-3 pool/all/a/aa/aa_1-3.dsc +a aa 1-3 pool/all/a/aa/aa_1-3.tar.gz +a aa 1-3 pool/all/a/aa/aa_1-3_abacus.deb +a ab 3-1 pool/all/a/ab/ab-addons_3-1_all.deb +a ab 3-1 pool/all/a/ab/ab_3-1.dsc +a ab 3-1 pool/all/a/ab/ab_3-1.tar.gz +a ab 3-1 pool/all/a/ab/ab_3-1_abacus.deb +a|all|abacus pool/all/a/aa/aa-addons_1-3_all.deb +a|all|abacus pool/all/a/aa/aa_1-3_abacus.deb +a|all|abacus pool/all/a/ab/ab-addons_3-1_all.deb +a|all|abacus pool/all/a/ab/ab_3-1_abacus.deb +a|all|source pool/all/a/aa/aa_1-3.dsc +a|all|source pool/all/a/aa/aa_1-3.tar.gz +a|all|source pool/all/a/ab/ab_3-1.dsc +a|all|source pool/all/a/ab/ab_3-1.tar.gz +b|all|abacus pool/all/a/aa/aa-addons_1-3_all.deb +b|all|abacus pool/all/a/aa/aa_1-3_abacus.deb +b|all|abacus pool/all/a/ab/ab_3-1_abacus.deb +EOF +dodiff results.expected results.sorted +fi +rm -r -f db2 +cp -a db db2 +echo tracking is $tracking +testrun - --keepunreferenced --dbdir ./db2 -b . removesrc a unknown 3<<EOF +stderr +-u1*=Nothing about source package 'unknown' found in the tracking data of 'a'! +-u1*=This either means nothing from this source in this version is there, +-u1*=or the tracking information might be out of date. +stdout +EOF +testrun - --keepunreferenced --dbdir ./db2 -b . removesrc a ab 3-1 3<<EOF +stdout +$(opd 'ab-addons' x a all abacus deb) +$(opd 'ab' x a all abacus deb) +$(opd 'ab' x a all source dsc) +$(ottd 'ab' '3-1' 'a') +-v0*=Exporting indices... +-v6*= looking for changes in 'a|all|abacus'... +-v6*= replacing './dists/a/all/binary-abacus/Packages' (uncompressed,gzipped) +-v6*= looking for changes in 'a|all|source'... +-v6*= replacing './dists/a/all/source/Sources' (gzipped) +-v1*=3 files lost their last reference. +-v1*=(dumpunreferenced lists such files, use deleteunreferenced to delete them.) +EOF +if $tracking ; then +checklog logab <<EOF +DATESTR remove a deb all abacus ab-addons 3-1 +DATESTR remove a deb all abacus ab 3-1 +DATESTR remove a dsc all source ab 3-1 +EOF +else +checklog logab <<EOF +DATESTR remove a deb all abacus ab 3-1 +DATESTR remove a deb all abacus ab-addons 3-1 +DATESTR remove a dsc all source ab 3-1 +EOF +fi +rm -r db2 +cp -a db db2 +testrun - --keepunreferenced --dbdir ./db2 -b . removesrc a ab 3<<EOF +stdout +$(opd 'ab-addons' unset a all abacus deb) +$(opd 'ab' unset a all abacus deb) +$(opd 'ab' unset a all source deb) +$(ottd 'ab' '3-1' 'a') +-v0*=Exporting indices... +-v6*= looking for changes in 'a|all|abacus'... +-v6*= replacing './dists/a/all/binary-abacus/Packages' (uncompressed,gzipped) +-v6*= looking for changes in 'a|all|source'... +-v6*= replacing './dists/a/all/source/Sources' (gzipped) +-v1*=3 files lost their last reference. +-v1*=(dumpunreferenced lists such files, use deleteunreferenced to delete them.) +EOF +if $tracking ; then +checklog logab <<EOF +DATESTR remove a deb all abacus ab-addons 3-1 +DATESTR remove a deb all abacus ab 3-1 +DATESTR remove a dsc all source ab 3-1 +EOF +else +checklog logab <<EOF +DATESTR remove a deb all abacus ab 3-1 +DATESTR remove a deb all abacus ab-addons 3-1 +DATESTR remove a dsc all source ab 3-1 +EOF +fi +testout "" --keepunreferenced --dbdir ./db2 dumppull +cat > results.expected <<EOF +Updates needed for 'b|all|abacus': +keep 'aa' '1-3' '1-3' +keep 'aa-addons' '1-3' '1-3' +keep 'ab' '3-1' unavailable +EOF +dodiff results.expected results +testrun - --keepunreferenced --dbdir ./db2 -b . removefilter b "Version (== 1-3), Package (>> aa)" 3<<EOF +stdout +$(opd 'aa-addons' unset b all abacus deb) +-v0*=Exporting indices... +-v6*= looking for changes in 'b|all|abacus'... +-v6*= replacing './dists/b/all/binary-abacus/Packages' (uncompressed,gzipped) +EOF +checklog logab <<EOF +DATESTR remove b deb all abacus aa-addons 1-3 +EOF +testout "" --keepunreferenced --dbdir ./db2 dumppull +cat > results.expected <<EOF +Updates needed for 'b|all|abacus': +keep 'aa' '1-3' '1-3' +add 'aa-addons' - '1-3' 'froma' +keep 'ab' '3-1' unavailable +EOF +dodiff results.expected results +if $tracking ; then +testrun - -b . --delete removealltracks a 3<<EOF +stdout +-v0*=Deleting all tracks for a... +EOF +testout "" -b . dumptracks +dodiff /dev/null results +fi +testout "" -b . dumpreferences +sort results > results.sorted +cat > results.expected <<EOF +a|all|abacus pool/all/a/aa/aa-addons_1-3_all.deb +a|all|abacus pool/all/a/aa/aa_1-3_abacus.deb +a|all|abacus pool/all/a/ab/ab-addons_3-1_all.deb +a|all|abacus pool/all/a/ab/ab_3-1_abacus.deb +a|all|source pool/all/a/aa/aa_1-3.dsc +a|all|source pool/all/a/aa/aa_1-3.tar.gz +a|all|source pool/all/a/ab/ab_3-1.dsc +a|all|source pool/all/a/ab/ab_3-1.tar.gz +b|all|abacus pool/all/a/aa/aa-addons_1-3_all.deb +b|all|abacus pool/all/a/aa/aa_1-3_abacus.deb +b|all|abacus pool/all/a/ab/ab_3-1_abacus.deb +EOF +dodiff results.expected results.sorted +cat > conf/distributions <<EOF +Codename: X +Architectures: none +Components: test +EOF +checknolog logab +if $tracking ; then +testrun - -b . --delete clearvanished 3<<EOF +-v4*=Strange, 'X|test|none' does not appear in packages.db yet. +stdout +*=Deleting vanished identifier 'a|all|abacus'. +*=Deleting vanished identifier 'a|all|source'. +*=Deleting vanished identifier 'b|all|abacus'. +-v0*=Deleting files no longer referenced... +$(ofd 'pool/all/a/aa/aa-addons_1-3_all.deb') +$(ofd 'pool/all/a/aa/aa_1-3.dsc') +$(ofd 'pool/all/a/aa/aa_1-3.tar.gz') +$(ofd 'pool/all/a/aa/aa_1-3_abacus.deb') +-v2*=removed now empty directory ./pool/all/a/aa +$(ofd 'pool/all/a/ab/ab-addons_3-1_all.deb') +$(ofd 'pool/all/a/ab/ab_3-1.dsc') +$(ofd 'pool/all/a/ab/ab_3-1.tar.gz') +$(ofd 'pool/all/a/ab/ab_3-1_abacus.deb') +-v2*=removed now empty directory ./pool/all/a/ab +-v2*=removed now empty directory ./pool/all/a +-v2*=removed now empty directory ./pool/all +-v2*=removed now empty directory ./pool +EOF +else +testrun - -b . --delete clearvanished 3<<EOF +# -v4*=Strange, 'X|test|none' does not appear in packages.db yet. +stdout +*=Deleting vanished identifier 'a|all|abacus'. +*=Deleting vanished identifier 'a|all|source'. +*=Deleting vanished identifier 'b|all|abacus'. +-v0*=Deleting files no longer referenced... +$(ofd 'pool/all/a/aa/aa-addons_1-3_all.deb') +$(ofd 'pool/all/a/aa/aa_1-3.dsc') +$(ofd 'pool/all/a/aa/aa_1-3.tar.gz') +$(ofd 'pool/all/a/aa/aa_1-3_abacus.deb') +-v2*=removed now empty directory ./pool/all/a/aa +$(ofd 'pool/all/a/ab/ab-addons_3-1_all.deb') +$(ofd 'pool/all/a/ab/ab_3-1.dsc') +$(ofd 'pool/all/a/ab/ab_3-1.tar.gz') +$(ofd 'pool/all/a/ab/ab_3-1_abacus.deb') +-v2*=removed now empty directory ./pool/all/a/ab +-v2*=removed now empty directory ./pool/all/a +-v2*=removed now empty directory ./pool/all +-v2*=removed now empty directory ./pool +EOF +fi +checknolog logab +testout "" -b . dumptracks +dodiff /dev/null results +testout "" -b . dumpunreferenced +dodiff /dev/null results +rm -r dists +done +rm -r db db2 conf lists logs +rm aa* ab* ac* results.log.expected results.expected results results.sorted +testsuccess |