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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
#!/bin/sh
# This is a testsuite.
# estimated run-time on my PC; 1 hour
PBUILDER=/usr/sbin/pbuilder
# ideal value
DEBOOTSTRAPS="debootstrap cdebootstrap"
DISTRIBUTIONS="sid lenny squeeze"
# override
DEBOOTSTRAPS="debootstrap"
DISTRIBUTIONS="sid squeeze"
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
case "`hostname --fqdn`" in
*.dooz.org)
mirror=http://ftp.de.debian.org/debian
;;
*)
mirror=http://localhost:9999/debian
;;
esac
testdir=$(TMPDIR=$(pwd) mktemp -d)
testimage=$testdir/testimage
testbuild=$testdir/dir1
testbuild2=$testdir/dir2
testbuild3=$testdir/dir3
export testdir
HOOKOPTION=" --hookdir /usr/share/doc/pbuilder/examples/workaround"
for DEBOOTSTRAP in $DEBOOTSTRAPS; 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 ${DISTRIBUTIONS}; do
sudo ${PBUILDER} create $HOOKOPTION "${DEBOOTSTRAPOPTS[@]}" --mirror $mirror --debootstrap ${DEBOOTSTRAP} --distribution "${distribution}" --basetgz ${testimage} --logfile ${logdir}/pbuilder-create-${distribution}.log.orig
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.orig ${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.orig -- --basetgz ${testimage} --buildplace ${testbuild3}
log_success pdebuild-${distribution}-${PKG}
pdebuild --use-pdebuild-internal --logfile ${logdir}/pdebuild-internal-${distribution}.log.orig -- --basetgz ${testimage} --buildplace ${testbuild3}
log_success pdebuild-internal-${distribution}-${PKG}
)
done
sudo ${PBUILDER} execute --basetgz ${testimage} --logfile ${logdir}/pbuilder-execute-${distribution}.log.orig ../examples/execute_paramtest.sh test1 test2 test3
# upgrading testing.
case $distribution in
lenny)
sudo ${PBUILDER} update $HOOKOPTION --basetgz ${testimage} --distribution squeeze --mirror $mirror --override-config --logfile ${logdir}/pbuilder-update-${distribution}-squeeze.log.orig
log_success update-${distribution}-squeeze
sudo ${PBUILDER} update $HOOKOPTION --basetgz ${testimage} --distribution sid --mirror $mirror --override-config --logfile ${logdir}/pbuilder-update-${distribution}-squeeze-sid.log.orig
log_success update-${distribution}-squeeze-sid
sudo ${PBUILDER} update $HOOKOPTION --basetgz ${testimage} --distribution experimental --mirror $mirror --override-config --logfile ${logdir}/pbuilder-update-${distribution}-squeeze-sid-experimental.log.orig
log_success update-${distribution}-squeeze-sid-experimental
;;
squeeze)
sudo ${PBUILDER} update $HOOKOPTION --basetgz ${testimage} --distribution sid --mirror $mirror --override-config --logfile ${logdir}/pbuilder-update-${distribution}-sid.log.orig
log_success update-${distribution}-sid
sudo ${PBUILDER} update $HOOKOPTION --basetgz ${testimage} --distribution experimental --mirror $mirror --override-config --logfile ${logdir}/pbuilder-update-${distribution}-sid-experimental.log.orig
log_success update-${distribution}-sid-experimental
;;
esac
sudo rm -rf ${testbuild} ${testbuild2} ${testimage} ${testbuild3}
done
for A in ${logdir}/*.log.orig; do
sed \
-e "s,${testdir},/TESTDIR,g" \
-e "s,^Current time:.*,Current time: TIME," \
-e "s,^pbuilder-time-stamp: .*,pbuilder-time-stamp: XXXX," \
-e "s,^Fetched .*B in .*s (.*B/s),Fetched XXXB in Xs (XXXXXB/s)," \
-e "s,/var/cache/pbuilder/build//[0-9]*,/var/cache/pbuilder/build//NUM,g" \
-e "s,\(/TESTDIR/dir[123]\)/[0-9]\+,\1/NUM,g" \
-e "s,Local time is now:.*,Local time is now: XXXX," \
-e "s,Universal Time is now:.*,Universal Time is now: XXXX," \
< $A > ${A/.orig} && \
rm -f $A
done
echo '### RESULT: ###'
cat "${RESULTFILE}"
done
rm -r ${testdir}
|