chiark / gitweb /
test suite: editing a test script overrides DGIT_TESTS_PROGRESSIVE.
[dgit.git] / tests / lib-reprepro
index af33143..0a688f6 100644 (file)
@@ -4,35 +4,50 @@ t-reprepro () {
 
  t_archive_method=reprepro
 
- t-git-config dgit-distro.test-dummy.archive-query aptget:
- t-git-config dgit-distro.test-dummy.mirror file://$tmp/mirror/
+ t-reprepro-cfg
+}
+
+t-reprepro-cfg () {
+ local rrinst=$1
+ local rrdistro=${2:-test-dummy}
+
+ local etcapt=$tmp/${rrinst}etc-apt
+ local mir=$tmp/${rrinst}mirror
 
- mkdir $tmp/etc-apt
- cat >$tmp/etc-apt/conf <<END
-Dir::Etc "$tmp/etc-apt";
+ t-git-config dgit-distro.$rrdistro.archive-query aptget:
+ t-git-config dgit-distro.$rrdistro.mirror file://$mir/
+
+ mkdir $etcapt
+ cat >$etcapt/conf <<END
+Dir::Etc "$etcapt";
 END
- export APT_CONFIG=$tmp/etc-apt/conf
+ export APT_CONFIG=$etcapt/conf
  gpg --export Hannibal >han.pgp
  fakeroot apt-key add <han.pgp
- mkdir $tmp/etc-apt/apt.conf.d
+ mkdir $etcapt/apt.conf.d
 }
 
-t-archive-none-reprepro () {
+t-archive-none-reprepro () { # hook called by t-archive-none
        t-reprepro-setup
        t-reprepro-regen
+       local rrinst=
 }
-t-archive-query-reprepro () {
+t-archive-query-reprepro () { # hook called by t-archive-query
        local suite=$1
        local p=$2
        local v=$3
        local dscf=$4
-       t-run-reprepro includedsc $suite $tmp/mirror/pool/$dscf
+       local rrinst=
+       t-reprepro-includedsc $suite $tmp/mirror/pool/$dscf "$rrinst"
 }
 
 t-reprepro-setup () {
-       local rrc=$tmp/mirror/conf
+       local rrinst=$1
+
+       local mir=$tmp/${rrinst}mirror
+       local rrc=$mir/conf
        mkdir -p $rrc
-       mkdir -p $tmp/mirror/pool/main
+       mkdir -p $mir/pool/main
 
        exec 3>$rrc/distributions
 
@@ -42,10 +57,10 @@ t-reprepro-setup () {
                local suite=${suitespec%%:*}
                local sname=${suitespec#*:}
 
-               mkdir -p $tmp/mirror/dists
+               mkdir -p $mir/dists
                if [ $sname != $suite ]; then
-                       rm -f $tmp/mirror/dists/$sname
-                       ln -s $suite $tmp/mirror/dists/$sname
+                       rm -f $mir/dists/$sname
+                       ln -s $suite $mir/dists/$sname
                fi
 
                cat >&3 <<END
@@ -59,13 +74,24 @@ END
        done
 }
 
-t-run-reprepro () {
+t-reprepro-includedsc () {
+       local suite=$1
+       local dscf=$2
+       local rrinst=$3
+       t-reprepro--run includedsc $suite $dscf
+}
+
+t-reprepro--run () {
+       # caller is supposed to have set rrinst
+       local mir=$tmp/${rrinst}mirror
        reprepro \
-               --outdir $tmp/mirror \
-               --basedir $tmp/mirror \
+               --outdir $mir \
+               --basedir $mir \
                "$@"
 }
 
 t-reprepro-regen () {
-       t-run-reprepro export
+       local rrinst=$1
+
+       t-reprepro--run export
 }