1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
|
#!/bin/sh
# This is a testsuite.
# estimated run-time on my PC; 1 hour
PBUILDER=/usr/sbin/pbuilder
log_success () {
CODE=$?
if [ $CODE = 0 ]; then
echo "[OK] $1" >> ${RESULTFILE}
else
echo "[FAIL] $1" >> ${RESULTFILE}
fi
}
[ -x ${PBUILDER} ] || exit 1
[ -x /usr/sbin/debootstrap ] || exit 1
[ -x /usr/bin/cdebootstrap ] || exit 1
mirror=http://ftp.jp.debian.org/debian
testdir=$(TMPDIR=$(pwd) mktemp -d)
testimage=$testdir/testimage
testbuild=$testdir/dir1
testbuild2=$testdir/dir2
testbuild3=$testdir/dir3
HOOKOPTION=" --hookdir /usr/share/doc/pbuilder/examples/workaround"
for DEBOOTSTRAP in debootstrap cdebootstrap; do
case $DEBOOTSTRAP in
debootstrap)
logdir=$(readlink -f normal/)
RESULTFILE="run-test.log"
unset DEBOOTSTRAPOPTS
DEBOOTSTRAPOPTS[0]="--debootstrapopts"
DEBOOTSTRAPOPTS[1]="--verbose"
;;
*)
logdir=$(readlink -f $DEBOOTSTRAP)
RESULTFILE="run-test-${DEBOOTSTRAP}.log"
unset DEBOOTSTRAPOPTS
DEBOOTSTRAPOPTS[0]="--debootstrapopts"
DEBOOTSTRAPOPTS[1]="--verbose"
;;
esac
: > ${RESULTFILE}
RESULTFILE=$(readlink -f ${RESULTFILE})
for distribution in sid etch; do
sudo ${PBUILDER} create $HOOKOPTION "${DEBOOTSTRAPOPTS[@]}" --mirror $mirror --debootstrap ${DEBOOTSTRAP} --distribution "${distribution}" --basetgz ${testimage} --logfile ${logdir}/pbuilder-create-${distribution}.log
log_success create-${distribution}-${DEBOOTSTRAP}
for PKG in dsh; do
(
mkdir ${testbuild}
cd ${testbuild}
apt-get source -d ${PKG}
)
sudo ${PBUILDER} build --debemail "Junichi Uekawa <dancer@debian.org>" --basetgz ${testimage} --buildplace ${testbuild}/ --logfile ${logdir}/pbuilder-build-${PKG}-${distribution}.log ${testbuild}/${PKG}*.dsc
log_success build-${distribution}-${PKG}
(
mkdir ${testbuild2}
mkdir ${testbuild3}
cd ${testbuild2}
apt-get source ${PKG}
cd ${PKG}-*
pdebuild --logfile ${logdir}/pdebuild-normal-${distribution}.log -- --basetgz ${testimage} --buildplace ${testbuild3}
log_success pdebuild-${distribution}-${PKG}
pdebuild --use-pdebuild-internal --logfile ${logdir}/pdebuild-internal-${distribution}.log -- --basetgz ${testimage} --buildplace ${testbuild3}
log_success pdebuild-internal-${distribution}-${PKG}
)
done
sudo ${PBUILDER} execute --basetgz ${testimage} --logfile ${logdir}/pbuilder-execute-${distribution}.log ../examples/execute_paramtest.sh test1 test2 test3
# upgrading testing.
case $distribution in
sarge)
sudo ${PBUILDER} update $HOOKOPTION --basetgz ${testimage} --distribution etch --mirror $mirror --override-config --logfile ${logdir}/pbuilder-update-${distribution}-etch.log
log_success update-${distribution}-etch.log
sudo ${PBUILDER} update $HOOKOPTION --basetgz ${testimage} --distribution sid --mirror $mirror --override-config --logfile ${logdir}/pbuilder-update-${distribution}-etch-sid.log
log_success update-${distribution}-etch-sid.log
sudo ${PBUILDER} update $HOOKOPTION --basetgz ${testimage} --distribution experimental --mirror $mirror --override-config --logfile ${logdir}/pbuilder-update-${distribution}-etch-sid-experimental.log
log_success update-${distribution}-etch-sid-experimental.log
;;
etch)
sudo ${PBUILDER} update $HOOKOPTION --basetgz ${testimage} --distribution sid --mirror $mirror --override-config --logfile ${logdir}/pbuilder-update-${distribution}-sid.log
log_success update-${distribution}-sid.log
sudo ${PBUILDER} update $HOOKOPTION --basetgz ${testimage} --distribution experimental --mirror $mirror --override-config --logfile ${logdir}/pbuilder-update-${distribution}-sid-experimental.log
log_success update-${distribution}-sid-experimental.log
;;
esac
sudo rm -rf ${testbuild} ${testbuild2} ${testimage} ${testbuild3}
done
echo '### RESULT: ###'
cat "${RESULTFILE}"
done
rm -r ${testdir}
|