#!/bin/bash set -e . tests/lib t-drs : ---- "setup up the mirror hook in a basic way" ---- reposmirror=$tmp/git-mirror queuedir=$tmp/git/_mirror-queue mkdir $reposmirror mhook=$drs_dispatch/mirror-hook ln -sf ${DGIT_INFRA_PFX}dgit-mirror-rsync $mhook mhook () { "$mhook" "$drs_dispatch" "$@" } >$drs_dispatch/mirror-settings mset () { echo >>$drs_dispatch/mirror-settings "$1"; } mset remoterepos="$reposmirror" check-mirrored () { t-reporefs master t-reporefs mirror $pmirror diff $tmp/show-refs.{master,mirror} cat $queuedir/$p.log t-files-notexist $queuedir/$p.{n,a,lock,err} } check-not-mirrored () { # uses previous t-reporefs-master t-reporefs mirror $pmirror diff $tmp/show-refs.{master,mirror} } : ---- "basic test" ---- t-tstunt-parsechangelog t-prep-newpackage example 1.0 pmirror=$reposmirror/$p.git mhook setup cd $p revision=1 t-dgit build t-dgit push --new check-mirrored : ---- "stunt ssh test" ---- sentinel=$tmp/stunt-ssh-sentinel cat <$tmp/stunt-ssh #!/bin/sh set -ex : $sentinel cat >&2 $sentinel shift # eat HOST sh -c "\$*" : ${sentinel}2 date >${sentinel}2 END chmod +x $tmp/stunt-ssh mset rsyncssh=$tmp/stunt-ssh mset remoterepos=HOST:$reposmirror t-commit "stunt ssh test" t-dgit build t-dgit push --new # ^ mirror should fail due to lack of stunt-ssh-sentinel ls -al $queuedir/$p.a check-not-mirrored touch $sentinel mhook backlog check-mirrored : ----- "stall timeout test" ----- rm -f $sentinel ${sentinel}2 mkfifo $sentinel ${sentinel}2 mset hooktimeout=5 t-commit "stall timeout test" t-dgit build t-dgit push --new check-not-mirrored exec 3<>$sentinel exec 3>&- cat ${sentinel}2 check-mirrored echo done.