diff options
Diffstat (limited to '')
-rw-r--r-- | tests/includeextra.test | 857 |
1 files changed, 857 insertions, 0 deletions
diff --git a/tests/includeextra.test b/tests/includeextra.test new file mode 100644 index 0000000..33d9cc1 --- /dev/null +++ b/tests/includeextra.test @@ -0,0 +1,857 @@ +set -u +. "$TESTSDIR"/test.inc + +# first create a fake package with logs and byhand files: +mkdir documentation-9876AD +cd documentation-9876AD +mkdir debian +cat > debian/rules <<'EOF' +#!/usr/bin/make +tmp = $(CURDIR)/debian/tmp +binary-indep: + install -m 755 -d $(tmp)/DEBIAN $(tmp)/usr/share/doc/documentation + echo "I have told you so" > $(tmp)/usr/share/doc/documentation/NEWS + gzip -c9 debian/changelog > $(tmp)/usr/share/doc/documentation/changelog.gz + chown -R root.root $(tmp) && chmod -R go=rX $(tmp) + dpkg-gencontrol -isp + dpkg --build $(tmp) .. + echo "I forgot" >> ../manifesto.txt + echo "What?" >> ../history.txt + dpkg-distaddfile manifesto.txt byhand - + dpkg-distaddfile history.txt byhand - + +.PHONY: clean binary-arch binary-indep binary build build-indep buil-arch +EOF +chmod a+x debian/rules +cat > debian/changelog <<EOF +documentation (9876AD) test; urgency=low + + * everything fixed + + -- Sky.NET <nowhere@example.com> Sat, 15 Jan 2011 17:12:05 +2700 +EOF + +cat > debian/control <<EOF +Source: documentation +Section: doc +Priority: standard +Maintainer: Sky.NET <nowhere@example.com> +Standards-Version: Aleph_17 + +Package: documentation +Architecture: all +Description: documentation + documentation +EOF + +cd .. +dpkg-source -b documentation-9876AD "" +cd documentation-9876AD + +fakeroot make -f debian/rules binary-indep > ../documentation_9876AD_coal+all.log +OUTPUT=test.changes +dpkg-genchanges > "$OUTPUT".pre +# simulate dpkg-genchanges behaviour currently in sid so the testsuite runs for backports, too +awk 'BEGIN{inheader=0} /^Files:/ || (inheader && /^ /) {inheader = 1; next} {inheader = 0 ; print}' "$OUTPUT".pre | sed -e 's/ \+$//' >../"$OUTPUT" +echo "Files:" >> ../"$OUTPUT" +awk 'BEGIN{inheader=0} (inheader && /^ .*\.deb$/) {print ; next} /^Files:/ || (inheader && /^ /) {inheader = 1; next} {inheader = 0 ;next}' "$OUTPUT".pre >>../"$OUTPUT" +awk 'BEGIN{inheader=0} (inheader && /^ .*\.txt$/) {print ; next} /^Files:/ || (inheader && /^ /) {inheader = 1; next} {inheader = 0 ;next}' "$OUTPUT".pre >>../"$OUTPUT" +awk 'BEGIN{inheader=0} /^Files:/ || (inheader && /^ .*\.(deb|txt)$/) {inheader = 1 ; next } (inheader && /^ /) {print ; next} {inheader = 0 ;next}' "$OUTPUT".pre >>../"$OUTPUT" +cd .. +rm -r documentation-9876AD + +ed -s test.changes <<EOF +/^Files:/a + $(mdandsize documentation_9876AD_coal+all.log) - - documentation_9876AD_coal+all.log +. +w +q +EOF + +mkdir conf +# first check files are properly ingored: +cat > conf/distributions <<EOF +Codename: test +Architectures: coal source +Components: main +EOF + +testrun - include test test.changes 3<<EOF +stderr +*=Ignoring byhand file: 'manifesto.txt'! +*=Ignoring byhand file: 'history.txt'! +*=Ignoring log file: 'documentation_9876AD_coal+all.log'! +stdout +$(odb) +-v2*=Created directory "./pool" +-v2*=Created directory "./pool/main" +-v2*=Created directory "./pool/main/d" +-v2*=Created directory "./pool/main/d/documentation" +$(ofa 'pool/main/d/documentation/documentation_9876AD_all.deb') +$(ofa 'pool/main/d/documentation/documentation_9876AD.tar.gz') +$(ofa 'pool/main/d/documentation/documentation_9876AD.dsc') +$(opa 'documentation' x 'test' 'main' 'coal' 'deb') +$(opa 'documentation' x 'test' 'main' 'source' 'dsc') +-v0*=Exporting indices... +-v2*=Created directory "./dists" +-v2*=Created directory "./dists/test" +-v2*=Created directory "./dists/test/main" +-v2*=Created directory "./dists/test/main/binary-coal" +-v6*= looking for changes in 'test|main|coal'... +-v6*= creating './dists/test/main/binary-coal/Packages' (uncompressed,gzipped) +-v2*=Created directory "./dists/test/main/source" +-v6*= looking for changes in 'test|main|source'... +-v6*= creating './dists/test/main/source/Sources' (gzipped) +EOF +rm -r pool dists db + +# now include the byhand file: +cat > conf/distributions <<EOF +Codename: test +Architectures: coal source +Components: main +Tracking: minimal includebyhand +EOF + +testrun - include test test.changes 3<<EOF +stderr +*=Ignoring log file: 'documentation_9876AD_coal+all.log'! +stdout +$(odb) +-v2*=Created directory "./pool" +-v2*=Created directory "./pool/main" +-v2*=Created directory "./pool/main/d" +-v2*=Created directory "./pool/main/d/documentation" +-v2*=Created directory "./pool/main/d/documentation/documentation_9876AD_byhand" +$(ofa 'pool/main/d/documentation/documentation_9876AD_byhand/history.txt') +$(ofa 'pool/main/d/documentation/documentation_9876AD_byhand/manifesto.txt') +$(ofa 'pool/main/d/documentation/documentation_9876AD_all.deb') +$(ofa 'pool/main/d/documentation/documentation_9876AD.tar.gz') +$(ofa 'pool/main/d/documentation/documentation_9876AD.dsc') +$(opa 'documentation' x 'test' 'main' 'coal' 'deb') +$(opa 'documentation' x 'test' 'main' 'source' 'dsc') +$(ota 'test' 'documentation') +-v0*=Exporting indices... +-v2*=Created directory "./dists" +-v2*=Created directory "./dists/test" +-v2*=Created directory "./dists/test/main" +-v2*=Created directory "./dists/test/main/binary-coal" +-v6*= looking for changes in 'test|main|coal'... +-v6*= creating './dists/test/main/binary-coal/Packages' (uncompressed,gzipped) +-v2*=Created directory "./dists/test/main/source" +-v6*= looking for changes in 'test|main|source'... +-v6*= creating './dists/test/main/source/Sources' (gzipped) +EOF +cat >results.expected <<EOF +Distribution: test +Source: documentation +Version: 9876AD +Files: + pool/main/d/documentation/documentation_9876AD.dsc s 1 + pool/main/d/documentation/documentation_9876AD.tar.gz s 1 + pool/main/d/documentation/documentation_9876AD_byhand/manifesto.txt x 0 + pool/main/d/documentation/documentation_9876AD_byhand/history.txt x 0 + pool/main/d/documentation/documentation_9876AD_all.deb a 1 + +EOF +testout - dumptracks test 3<<EOF +EOF +dodiff results.expected results +testrun - retrack 3<<EOF +stdout +-v1*=Retracking test... +EOF +testout - dumptracks test 3<<EOF +EOF +dodiff results.expected results +testrun - _listchecksums 3<<EOF +stdout +*=pool/main/d/documentation/documentation_9876AD.dsc $(fullchecksum documentation_9876AD.dsc) +*=pool/main/d/documentation/documentation_9876AD.tar.gz $(fullchecksum documentation_9876AD.tar.gz) +*=pool/main/d/documentation/documentation_9876AD_all.deb $(fullchecksum documentation_9876AD_all.deb) +*=pool/main/d/documentation/documentation_9876AD_byhand/history.txt $(fullchecksum history.txt) + +*=pool/main/d/documentation/documentation_9876AD_byhand/manifesto.txt $(fullchecksum manifesto.txt) +EOF + +testrun - remove test documentation 3<<EOF +stdout +$(opd 'documentation' unset test main coal deb) +$(opd 'documentation' unset test main source dsc) +-v0*=Exporting indices... +-v6*= looking for changes in 'test|main|coal'... +-v6*= replacing './dists/test/main/binary-coal/Packages' (uncompressed,gzipped) +-v6*= looking for changes in 'test|main|source'... +-v6*= replacing './dists/test/main/source/Sources' (gzipped) +$(otd 'documentation' '9876AD' 'test') +-v0*=Deleting files no longer referenced... +$(ofd 'pool/main/d/documentation/documentation_9876AD.dsc') +$(ofd 'pool/main/d/documentation/documentation_9876AD.tar.gz') +$(ofd 'pool/main/d/documentation/documentation_9876AD_all.deb') +$(ofd 'pool/main/d/documentation/documentation_9876AD_byhand/history.txt') +$(ofd 'pool/main/d/documentation/documentation_9876AD_byhand/manifesto.txt') +-v2*=removed now empty directory ./pool/main/d/documentation/documentation_9876AD_byhand +-v2*=removed now empty directory ./pool/main/d/documentation +-v2*=removed now empty directory ./pool/main/d +-v2*=removed now empty directory ./pool/main +-v2*=removed now empty directory ./pool +EOF +dodo test ! -e pool +rm -r dists db + +# now include the log file, too: +cat > conf/distributions <<EOF +Codename: test +Architectures: coal source +Components: main +Tracking: minimal includebyhand includelogs +EOF + +testrun - include test test.changes 3<<EOF +stdout +$(odb) +-v2*=Created directory "./pool" +-v2*=Created directory "./pool/main" +-v2*=Created directory "./pool/main/d" +-v2*=Created directory "./pool/main/d/documentation" +$(ofa 'pool/main/d/documentation/documentation_9876AD_coal+all.log') +-v2*=Created directory "./pool/main/d/documentation/documentation_9876AD_byhand" +$(ofa 'pool/main/d/documentation/documentation_9876AD_byhand/history.txt') +$(ofa 'pool/main/d/documentation/documentation_9876AD_byhand/manifesto.txt') +$(ofa 'pool/main/d/documentation/documentation_9876AD_all.deb') +$(ofa 'pool/main/d/documentation/documentation_9876AD.tar.gz') +$(ofa 'pool/main/d/documentation/documentation_9876AD.dsc') +$(opa 'documentation' x 'test' 'main' 'coal' 'deb') +$(opa 'documentation' x 'test' 'main' 'source' 'dsc') +$(ota 'test' 'documentation') +-v0*=Exporting indices... +-v2*=Created directory "./dists" +-v2*=Created directory "./dists/test" +-v2*=Created directory "./dists/test/main" +-v2*=Created directory "./dists/test/main/binary-coal" +-v6*= looking for changes in 'test|main|coal'... +-v6*= creating './dists/test/main/binary-coal/Packages' (uncompressed,gzipped) +-v2*=Created directory "./dists/test/main/source" +-v6*= looking for changes in 'test|main|source'... +-v6*= creating './dists/test/main/source/Sources' (gzipped) +EOF +cat >results.expected <<EOF +Distribution: test +Source: documentation +Version: 9876AD +Files: + pool/main/d/documentation/documentation_9876AD.dsc s 1 + pool/main/d/documentation/documentation_9876AD.tar.gz s 1 + pool/main/d/documentation/documentation_9876AD_byhand/manifesto.txt x 0 + pool/main/d/documentation/documentation_9876AD_byhand/history.txt x 0 + pool/main/d/documentation/documentation_9876AD_all.deb a 1 + pool/main/d/documentation/documentation_9876AD_coal+all.log l 0 + +EOF + +testout - dumptracks test 3<<EOF +EOF +dodiff results.expected results + +rm -r dists db pool + +# and now everything at once, too: +cat > conf/distributions <<EOF +Codename: test +Architectures: coal source +Components: main +Tracking: minimal includebyhand includelogs includechanges +EOF + +testrun - include test test.changes 3<<EOF +stdout +$(odb) +-v2*=Created directory "./pool" +-v2*=Created directory "./pool/main" +-v2*=Created directory "./pool/main/d" +-v2*=Created directory "./pool/main/d/documentation" +$(ofa 'pool/main/d/documentation/documentation_9876AD_source+all.changes') +$(ofa 'pool/main/d/documentation/documentation_9876AD_coal+all.log') +-v2*=Created directory "./pool/main/d/documentation/documentation_9876AD_byhand" +$(ofa 'pool/main/d/documentation/documentation_9876AD_byhand/history.txt') +$(ofa 'pool/main/d/documentation/documentation_9876AD_byhand/manifesto.txt') +$(ofa 'pool/main/d/documentation/documentation_9876AD_all.deb') +$(ofa 'pool/main/d/documentation/documentation_9876AD.tar.gz') +$(ofa 'pool/main/d/documentation/documentation_9876AD.dsc') +$(opa 'documentation' x 'test' 'main' 'coal' 'deb') +$(opa 'documentation' x 'test' 'main' 'source' 'dsc') +$(ota 'test' 'documentation') +-v0*=Exporting indices... +-v2*=Created directory "./dists" +-v2*=Created directory "./dists/test" +-v2*=Created directory "./dists/test/main" +-v2*=Created directory "./dists/test/main/binary-coal" +-v6*= looking for changes in 'test|main|coal'... +-v6*= creating './dists/test/main/binary-coal/Packages' (uncompressed,gzipped) +-v2*=Created directory "./dists/test/main/source" +-v6*= looking for changes in 'test|main|source'... +-v6*= creating './dists/test/main/source/Sources' (gzipped) +EOF +cat >results.expected <<EOF +Distribution: test +Source: documentation +Version: 9876AD +Files: + pool/main/d/documentation/documentation_9876AD.dsc s 1 + pool/main/d/documentation/documentation_9876AD.tar.gz s 1 + pool/main/d/documentation/documentation_9876AD_byhand/manifesto.txt x 0 + pool/main/d/documentation/documentation_9876AD_byhand/history.txt x 0 + pool/main/d/documentation/documentation_9876AD_all.deb a 1 + pool/main/d/documentation/documentation_9876AD_coal+all.log l 0 + pool/main/d/documentation/documentation_9876AD_source+all.changes c 0 + +EOF +testout - dumptracks test 3<<EOF +EOF +dodiff results.expected results +testrun - _listchecksums 3<<EOF +stdout +*=pool/main/d/documentation/documentation_9876AD_coal+all.log $(fullchecksum documentation_9876AD_coal+all.log) +*=pool/main/d/documentation/documentation_9876AD_source+all.changes $(fullchecksum test.changes) +*=pool/main/d/documentation/documentation_9876AD.dsc $(fullchecksum documentation_9876AD.dsc) +*=pool/main/d/documentation/documentation_9876AD.tar.gz $(fullchecksum documentation_9876AD.tar.gz) +*=pool/main/d/documentation/documentation_9876AD_all.deb $(fullchecksum documentation_9876AD_all.deb) +*=pool/main/d/documentation/documentation_9876AD_byhand/history.txt $(fullchecksum history.txt) + +*=pool/main/d/documentation/documentation_9876AD_byhand/manifesto.txt $(fullchecksum manifesto.txt) +EOF + +testrun - remove test documentation 3<<EOF +stdout +$(opd 'documentation' unset test main coal deb) +$(opd 'documentation' unset test main source dsc) +-v0*=Exporting indices... +-v6*= looking for changes in 'test|main|coal'... +-v6*= replacing './dists/test/main/binary-coal/Packages' (uncompressed,gzipped) +-v6*= looking for changes in 'test|main|source'... +-v6*= replacing './dists/test/main/source/Sources' (gzipped) +$(otd 'documentation' '9876AD' 'test') +-v0*=Deleting files no longer referenced... +$(ofd 'pool/main/d/documentation/documentation_9876AD_source+all.changes') +$(ofd 'pool/main/d/documentation/documentation_9876AD_coal+all.log') +$(ofd 'pool/main/d/documentation/documentation_9876AD.dsc') +$(ofd 'pool/main/d/documentation/documentation_9876AD.tar.gz') +$(ofd 'pool/main/d/documentation/documentation_9876AD_all.deb') +$(ofd 'pool/main/d/documentation/documentation_9876AD_byhand/history.txt') +$(ofd 'pool/main/d/documentation/documentation_9876AD_byhand/manifesto.txt') +-v2*=removed now empty directory ./pool/main/d/documentation/documentation_9876AD_byhand +-v2*=removed now empty directory ./pool/main/d/documentation +-v2*=removed now empty directory ./pool/main/d +-v2*=removed now empty directory ./pool/main +-v2*=removed now empty directory ./pool +EOF +dodo test ! -e pool +rm -r dists db + +mkdir i j tmp +mv *.txt documentation_9876AD* test.changes j/ +cp j/* i/ +cat > conf/incoming <<EOF +Name: foo +IncomingDir: i +TempDir: tmp +Default: test +EOF + +testrun - processincoming foo 3<<EOF +stdout +$(odb) +-v2*=Created directory "./pool" +-v2*=Created directory "./pool/main" +-v2*=Created directory "./pool/main/d" +-v2*=Created directory "./pool/main/d/documentation" +$(ofa 'pool/main/d/documentation/documentation_9876AD_source+all.changes') +$(ofa 'pool/main/d/documentation/documentation_9876AD_coal+all.log') +-v2*=Created directory "./pool/main/d/documentation/documentation_9876AD_byhand" +$(ofa 'pool/main/d/documentation/documentation_9876AD_byhand/history.txt') +$(ofa 'pool/main/d/documentation/documentation_9876AD_byhand/manifesto.txt') +$(ofa 'pool/main/d/documentation/documentation_9876AD_all.deb') +$(ofa 'pool/main/d/documentation/documentation_9876AD.tar.gz') +$(ofa 'pool/main/d/documentation/documentation_9876AD.dsc') +$(opa 'documentation' x 'test' 'main' 'coal' 'deb') +$(opa 'documentation' x 'test' 'main' 'source' 'dsc') +$(ota 'test' 'documentation') +-v3*=deleting './i/documentation_9876AD_all.deb'... +-v3*=deleting './i/documentation_9876AD_coal+all.log'... +-v3*=deleting './i/documentation_9876AD.tar.gz'... +-v3*=deleting './i/history.txt'... +-v3*=deleting './i/manifesto.txt'... +-v3*=deleting './i/documentation_9876AD.dsc'... +-v3*=deleting './i/test.changes'... +-v0*=Exporting indices... +-v2*=Created directory "./dists" +-v2*=Created directory "./dists/test" +-v2*=Created directory "./dists/test/main" +-v2*=Created directory "./dists/test/main/binary-coal" +-v6*= looking for changes in 'test|main|coal'... +-v6*= creating './dists/test/main/binary-coal/Packages' (uncompressed,gzipped) +-v2*=Created directory "./dists/test/main/source" +-v6*= looking for changes in 'test|main|source'... +-v6*= creating './dists/test/main/source/Sources' (gzipped) +EOF +cat >results.expected <<EOF +Distribution: test +Source: documentation +Version: 9876AD +Files: + pool/main/d/documentation/documentation_9876AD_all.deb a 1 + pool/main/d/documentation/documentation_9876AD.dsc s 1 + pool/main/d/documentation/documentation_9876AD.tar.gz s 1 + pool/main/d/documentation/documentation_9876AD_byhand/history.txt x 0 + pool/main/d/documentation/documentation_9876AD_byhand/manifesto.txt x 0 + pool/main/d/documentation/documentation_9876AD_coal+all.log l 0 + pool/main/d/documentation/documentation_9876AD_source+all.changes c 0 + +EOF + +testout - dumptracks test 3<<EOF +EOF +dodiff results.expected results + +rm -r db pool dists + +cp j/* i/ +ed -s conf/distributions <<EOF +g/^Tracking: /s/include[^ ]*//g +w +q +EOF + +testrun - processincoming foo 3<<EOF +stdout +$(odb) +stderr +*=Error: 'test.changes' contains unused file 'documentation_9876AD_coal+all.log'! +*=(Do Permit: unused_files to conf/incoming to ignore and +*= additionally Cleanup: unused_files to delete them) +*=Alternatively, you can also add a LogDir: for 'foo' into conf/incoming +*=then files like that will be stored there. +-v0*=There have been errors! +returns 255 +EOF + +cat >> conf/incoming <<EOF +Logdir: log +EOF + +testrun - processincoming foo 3<<EOF +stdout +-v2*=Created directory "./pool" +-v2*=Created directory "./pool/main" +-v2*=Created directory "./pool/main/d" +-v2*=Created directory "./pool/main/d/documentation" +-v2*=Created directory "./log" +-v2*=Created directory "./log/documentation_9876AD_source+all.0000000" +$(ofa 'pool/main/d/documentation/documentation_9876AD_all.deb') +$(ofa 'pool/main/d/documentation/documentation_9876AD.tar.gz') +$(ofa 'pool/main/d/documentation/documentation_9876AD.dsc') +$(opa 'documentation' x 'test' 'main' 'coal' 'deb') +$(opa 'documentation' x 'test' 'main' 'source' 'dsc') +$(ota 'test' 'documentation') +-v3*=deleting './i/documentation_9876AD_all.deb'... +-v3*=deleting './i/documentation_9876AD_coal+all.log'... +-v3*=deleting './i/documentation_9876AD.tar.gz'... +-v3*=deleting './i/history.txt'... +-v3*=deleting './i/manifesto.txt'... +-v3*=deleting './i/documentation_9876AD.dsc'... +-v3*=deleting './i/test.changes'... +-v0*=Exporting indices... +-v2*=Created directory "./dists" +-v2*=Created directory "./dists/test" +-v2*=Created directory "./dists/test/main" +-v2*=Created directory "./dists/test/main/binary-coal" +-v6*= looking for changes in 'test|main|coal'... +-v6*= creating './dists/test/main/binary-coal/Packages' (uncompressed,gzipped) +-v2*=Created directory "./dists/test/main/source" +-v6*= looking for changes in 'test|main|source'... +-v6*= creating './dists/test/main/source/Sources' (gzipped) +EOF + +ls log/documentation_9876AD_source+all.0000000 | sort > results +cat > results.expected <<EOF +documentation_9876AD_coal+all.log +history.txt +manifesto.txt +test.changes +EOF +dodiff results.expected results + +rm -r db pool dists + +cp j/* i/ +ed -s conf/distributions <<EOF +g/^Tracking: /d +a +Tracking: all includechanges includelogs includebyhand +. +w +q +EOF + +testrun - processincoming foo 3<<EOF +stdout +$(odb) +-v2*=Created directory "./pool" +-v2*=Created directory "./pool/main" +-v2*=Created directory "./pool/main/d" +-v2*=Created directory "./pool/main/d/documentation" +-v2*=Created directory "./log/documentation_9876AD_source+all.0000001" +$(ofa 'pool/main/d/documentation/documentation_9876AD_source+all.changes') +$(ofa 'pool/main/d/documentation/documentation_9876AD_coal+all.log') +-v2*=Created directory "./pool/main/d/documentation/documentation_9876AD_byhand" +$(ofa 'pool/main/d/documentation/documentation_9876AD_byhand/history.txt') +$(ofa 'pool/main/d/documentation/documentation_9876AD_byhand/manifesto.txt') +$(ofa 'pool/main/d/documentation/documentation_9876AD_all.deb') +$(ofa 'pool/main/d/documentation/documentation_9876AD.tar.gz') +$(ofa 'pool/main/d/documentation/documentation_9876AD.dsc') +$(opa 'documentation' x 'test' 'main' 'coal' 'deb') +$(opa 'documentation' x 'test' 'main' 'source' 'dsc') +$(ota 'test' 'documentation') +-v3*=deleting './i/documentation_9876AD_all.deb'... +-v3*=deleting './i/documentation_9876AD_coal+all.log'... +-v3*=deleting './i/documentation_9876AD.tar.gz'... +-v3*=deleting './i/history.txt'... +-v3*=deleting './i/manifesto.txt'... +-v3*=deleting './i/documentation_9876AD.dsc'... +-v3*=deleting './i/test.changes'... +-v0*=Exporting indices... +-v2*=Created directory "./dists" +-v2*=Created directory "./dists/test" +-v2*=Created directory "./dists/test/main" +-v2*=Created directory "./dists/test/main/binary-coal" +-v6*= looking for changes in 'test|main|coal'... +-v6*= creating './dists/test/main/binary-coal/Packages' (uncompressed,gzipped) +-v2*=Created directory "./dists/test/main/source" +-v6*= looking for changes in 'test|main|source'... +-v6*= creating './dists/test/main/source/Sources' (gzipped) +EOF + +ls log/documentation_9876AD_source+all.0000001 | sort > results +cat > results.expected <<EOF +documentation_9876AD_coal+all.log +test.changes +EOF +dodiff results.expected results + +# Now add a script to manually handle byhand files: + +rm -r db pool dists + +cp j/* i/ + +cat >> conf/distributions <<EOF +ByhandHooks: + byhand * manifesto.txt handle-byhand.sh +EOF + +# first without the script, to check the error: + +testrun - processincoming foo 3<<EOF +stdout +$(odb) +-v2*=Created directory "./log/documentation_9876AD_source+all.0000002" +stderr +*=Error 2 executing './conf/handle-byhand.sh': No such file or directory +*=Byhandhook './conf/handle-byhand.sh' 'test' 'byhand' '-' 'manifesto.txt' './tmp/manifesto.txt' failed with exit code 255! +-v0*=There have been errors! +return 255 +EOF + +# then with the script + +cat > conf/handle-byhand.sh <<'EOF' +#!/bin/sh +echo "byhand-script called with: " "'$*'" >&2 +EOF +cat > conf/handle-alternate.sh <<'EOF' +#!/bin/sh +echo "alternate-script called with: " "'$*'" >&2 +EOF +chmod u+x conf/handle-alternate.sh +chmod u+x conf/handle-byhand.sh + +testrun - processincoming foo 3<<EOF +stdout +-v2*=Created directory "./pool" +-v2*=Created directory "./pool/main" +-v2*=Created directory "./pool/main/d" +-v2*=Created directory "./pool/main/d/documentation" +-v2*=Created directory "./log/documentation_9876AD_source+all.0000003" +$(ofa 'pool/main/d/documentation/documentation_9876AD_source+all.changes') +$(ofa 'pool/main/d/documentation/documentation_9876AD_coal+all.log') +-v2*=Created directory "./pool/main/d/documentation/documentation_9876AD_byhand" +$(ofa 'pool/main/d/documentation/documentation_9876AD_byhand/history.txt') +$(ofa 'pool/main/d/documentation/documentation_9876AD_byhand/manifesto.txt') +$(ofa 'pool/main/d/documentation/documentation_9876AD_all.deb') +$(ofa 'pool/main/d/documentation/documentation_9876AD.tar.gz') +$(ofa 'pool/main/d/documentation/documentation_9876AD.dsc') +$(opa 'documentation' x 'test' 'main' 'coal' 'deb') +$(opa 'documentation' x 'test' 'main' 'source' 'dsc') +$(ota 'test' 'documentation') +-v3*=deleting './i/documentation_9876AD_all.deb'... +-v3*=deleting './i/documentation_9876AD_coal+all.log'... +-v3*=deleting './i/documentation_9876AD.tar.gz'... +-v3*=deleting './i/history.txt'... +-v3*=deleting './i/manifesto.txt'... +-v3*=deleting './i/documentation_9876AD.dsc'... +-v3*=deleting './i/test.changes'... +-v0*=Exporting indices... +-v2*=Created directory "./dists" +-v2*=Created directory "./dists/test" +-v2*=Created directory "./dists/test/main" +-v2*=Created directory "./dists/test/main/binary-coal" +-v6*= looking for changes in 'test|main|coal'... +-v6*= creating './dists/test/main/binary-coal/Packages' (uncompressed,gzipped) +-v2*=Created directory "./dists/test/main/source" +-v6*= looking for changes in 'test|main|source'... +-v6*= creating './dists/test/main/source/Sources' (gzipped) +stderr +*=byhand-script called with: 'test byhand - manifesto.txt ./tmp/manifesto.txt' +EOF + +ls log/documentation_9876AD_source+all.0000003 | sort > results +cat > results.expected <<EOF +documentation_9876AD_coal+all.log +test.changes +EOF +dodiff results.expected results + +# then don't install byhand, now the unprocessed ones should end up in the log + +rm -r db dists pool +cp j/* i/ +ed -s conf/distributions <<EOF +g/^Tracking: /d +i +Tracking: all +. +w +q +EOF + +testrun - processincoming foo 3<<EOF +stdout +$(odb) +-v2*=Created directory "./pool" +-v2*=Created directory "./pool/main" +-v2*=Created directory "./pool/main/d" +-v2*=Created directory "./pool/main/d/documentation" +-v2*=Created directory "./log/documentation_9876AD_source+all.0000004" +$(ofa 'pool/main/d/documentation/documentation_9876AD_all.deb') +$(ofa 'pool/main/d/documentation/documentation_9876AD.tar.gz') +$(ofa 'pool/main/d/documentation/documentation_9876AD.dsc') +$(opa 'documentation' x 'test' 'main' 'coal' 'deb') +$(opa 'documentation' x 'test' 'main' 'source' 'dsc') +$(ota 'test' 'documentation') +-v3*=deleting './i/documentation_9876AD_all.deb'... +-v3*=deleting './i/documentation_9876AD_coal+all.log'... +-v3*=deleting './i/documentation_9876AD.tar.gz'... +-v3*=deleting './i/history.txt'... +-v3*=deleting './i/manifesto.txt'... +-v3*=deleting './i/documentation_9876AD.dsc'... +-v3*=deleting './i/test.changes'... +-v0*=Exporting indices... +-v2*=Created directory "./dists" +-v2*=Created directory "./dists/test" +-v2*=Created directory "./dists/test/main" +-v2*=Created directory "./dists/test/main/binary-coal" +-v6*= looking for changes in 'test|main|coal'... +-v6*= creating './dists/test/main/binary-coal/Packages' (uncompressed,gzipped) +-v2*=Created directory "./dists/test/main/source" +-v6*= looking for changes in 'test|main|source'... +-v6*= creating './dists/test/main/source/Sources' (gzipped) +stderr +*=byhand-script called with: 'test byhand - manifesto.txt ./tmp/manifesto.txt' +EOF + +ls log/documentation_9876AD_source+all.0000004 | sort > results +cat > results.expected <<EOF +documentation_9876AD_coal+all.log +history.txt +test.changes +EOF +dodiff results.expected results + +# then do without tracking at all + +rm -r db dists pool +cp j/* i/ +ed -s conf/distributions <<EOF +g/^Tracking: /d +w +q +EOF + +testrun - processincoming foo 3<<EOF +stdout +$(odb) +-v2*=Created directory "./pool" +-v2*=Created directory "./pool/main" +-v2*=Created directory "./pool/main/d" +-v2*=Created directory "./pool/main/d/documentation" +-v2*=Created directory "./log/documentation_9876AD_source+all.0000005" +$(ofa 'pool/main/d/documentation/documentation_9876AD_all.deb') +$(ofa 'pool/main/d/documentation/documentation_9876AD.tar.gz') +$(ofa 'pool/main/d/documentation/documentation_9876AD.dsc') +$(opa 'documentation' x 'test' 'main' 'coal' 'deb') +$(opa 'documentation' x 'test' 'main' 'source' 'dsc') +-v3*=deleting './i/documentation_9876AD_all.deb'... +-v3*=deleting './i/documentation_9876AD_coal+all.log'... +-v3*=deleting './i/documentation_9876AD.tar.gz'... +-v3*=deleting './i/history.txt'... +-v3*=deleting './i/manifesto.txt'... +-v3*=deleting './i/documentation_9876AD.dsc'... +-v3*=deleting './i/test.changes'... +-v0*=Exporting indices... +-v2*=Created directory "./dists" +-v2*=Created directory "./dists/test" +-v2*=Created directory "./dists/test/main" +-v2*=Created directory "./dists/test/main/binary-coal" +-v6*= looking for changes in 'test|main|coal'... +-v6*= creating './dists/test/main/binary-coal/Packages' (uncompressed,gzipped) +-v2*=Created directory "./dists/test/main/source" +-v6*= looking for changes in 'test|main|source'... +-v6*= creating './dists/test/main/source/Sources' (gzipped) +stderr +*=byhand-script called with: 'test byhand - manifesto.txt ./tmp/manifesto.txt' +EOF + +ls log/documentation_9876AD_source+all.0000005 | sort > results +cat > results.expected <<EOF +documentation_9876AD_coal+all.log +history.txt +test.changes +EOF +dodiff results.expected results + +# then do without tracking and without log dir + +rm -r db dists pool +cp j/* i/ +ed -s conf/incoming <<EOF +g/^Logdir: /d +w +q +EOF +ed -s i/test.changes <<'EOF' +g/^ .*\.log$/d +w +q +EOF + +testrun - processincoming foo 3<<EOF +stdout +$(odb) +stderr +*=Error: 'test.changes' contains unused file 'history.txt'! +*=(Do Permit: unused_files to conf/incoming to ignore and +*= additionally Cleanup: unused_files to delete them) +*=Alternatively, you can also add a LogDir: for 'foo' into conf/incoming +*=then files like that will be stored there. +-v0*=There have been errors! +returns 255 +EOF + +# add more hooks: + +cat >> conf/distributions <<EOF + * * * handle-alternate.sh +EOF + +testrun - processincoming foo 3<<EOF +stdout +-v2*=Created directory "./pool" +-v2*=Created directory "./pool/main" +-v2*=Created directory "./pool/main/d" +-v2*=Created directory "./pool/main/d/documentation" +$(ofa 'pool/main/d/documentation/documentation_9876AD_all.deb') +$(ofa 'pool/main/d/documentation/documentation_9876AD.tar.gz') +$(ofa 'pool/main/d/documentation/documentation_9876AD.dsc') +$(opa 'documentation' x 'test' 'main' 'coal' 'deb') +$(opa 'documentation' x 'test' 'main' 'source' 'dsc') +-v3*=deleting './i/documentation_9876AD_all.deb'... +-v3*=deleting './i/documentation_9876AD.tar.gz'... +-v3*=deleting './i/history.txt'... +-v3*=deleting './i/manifesto.txt'... +-v3*=deleting './i/documentation_9876AD.dsc'... +-v3*=deleting './i/test.changes'... +-v0*=Exporting indices... +-v2*=Created directory "./dists" +-v2*=Created directory "./dists/test" +-v2*=Created directory "./dists/test/main" +-v2*=Created directory "./dists/test/main/binary-coal" +-v6*= looking for changes in 'test|main|coal'... +-v6*= creating './dists/test/main/binary-coal/Packages' (uncompressed,gzipped) +-v2*=Created directory "./dists/test/main/source" +-v6*= looking for changes in 'test|main|source'... +-v6*= creating './dists/test/main/source/Sources' (gzipped) +stderr +*=byhand-script called with: 'test byhand - manifesto.txt ./tmp/manifesto.txt' +*=alternate-script called with: 'test byhand - history.txt ./tmp/history.txt' +EOF + +# try a more real-worl example. + +rm -r db dists pool +cp j/* i/ +ed -s i/test.changes <<'EOF' +g/^ .*\.log$/d +w +q +EOF +ed -s conf/distributions <<EOF +g/handle-/d +a + byhand - * $SRCDIR/docs/copybyhand.example +. +w +q +EOF + +testrun - processincoming foo 3<<EOF +stdout +$(odb) +-v2*=Created directory "./pool" +-v2*=Created directory "./pool/main" +-v2*=Created directory "./pool/main/d" +-v2*=Created directory "./pool/main/d/documentation" +$(ofa 'pool/main/d/documentation/documentation_9876AD_all.deb') +$(ofa 'pool/main/d/documentation/documentation_9876AD.tar.gz') +$(ofa 'pool/main/d/documentation/documentation_9876AD.dsc') +$(opa 'documentation' x 'test' 'main' 'coal' 'deb') +$(opa 'documentation' x 'test' 'main' 'source' 'dsc') +-v3*=deleting './i/documentation_9876AD_all.deb'... +-v3*=deleting './i/documentation_9876AD.tar.gz'... +-v3*=deleting './i/history.txt'... +-v3*=deleting './i/manifesto.txt'... +-v3*=deleting './i/documentation_9876AD.dsc'... +-v3*=deleting './i/test.changes'... +-v0*=Exporting indices... +-v2*=Created directory "./dists/test/main" +-v2*=Created directory "./dists/test/main/binary-coal" +-v6*= looking for changes in 'test|main|coal'... +-v6*= creating './dists/test/main/binary-coal/Packages' (uncompressed,gzipped) +-v2*=Created directory "./dists/test/main/source" +-v6*= looking for changes in 'test|main|source'... +-v6*= creating './dists/test/main/source/Sources' (gzipped) +stderr +EOF + +ls dists/test/extra/ | sort > results +cat > results.expected <<EOF +history.txt +manifesto.txt +EOF +dodiff results.expected results + +# TODO: check for multiple distributions +# some storing some not, and when the handling script is implemented + +rm -r db pool dists +rm -r i j tmp conf results results.expected log +testsuccess |