blob: 374522f6465c94a3232c52a8fd7624b9faac9655 (
plain)
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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
|
#!/bin/sh
source /etc/init.d/functions.sh
VCSTEST="echangelog-test/vcstest"
_ROOT=$(pwd)
export ECHANGELOG_USER="Just a test <echangelogtest@gentoo.org>"
#MD5_INIT="34d54bc2ab1a2154b0c7bd5cdd7f6119"
MD5_INIT="34d54bc2ab1a2154b0c7bd5cdd7f6119"
#MD5_PATCH="d910ab6b76cfb48b68e11ae1f06612bb"
MD5_PATCH="db1ab89bb7374824d0f198078f79a83f"
#MD5_REVBUMP="8e36650a644ba49cc13bcbe93fdb2d2d"
MD5_REVBUMP="31ddfa60d2ae4dd1fccd7e3d2bd2c06c"
#MD5_COPYRIGHT="55a6097d8e3913a9feb0dff250649c00"
MD5_COPYRIGHT="6f39fa409ea14bb6506347c53f6dee50"
#MD5_OBSOLETE="6c30d84f603f5f0e4b09a88d9cfdaaa8"
MD5_OBSOLETE="0aedadf159c6f3add97a3f79fb867221"
#MD5_FINAL="cdd58fea5cfcef5820013d82ccbe0e89"
MD5_FINAL="17eb0df69f501cc6fdaffebd118b7764"
function md5() {
local fname=$1
echo $(md5sum ${fname} | awk '{ print $1 }')
}
function ech() {
local bin=$1
local msg=$2
perl -I$(dirname $(dirname ${bin})) ${bin} "${msg}"
}
function make_test() {
local root=$1
local vcs=$2
local echangelog="${root}/tmp/echangelog"
local tmp="${root}/tmp/${vcs}"
local template="${root}/templates"
cd $root
mkdir -p ${tmp}
cd ${tmp}
[[ "${vcs}" == "cvs" ]] && mkdir -p ${tmp}/cvsroot
[[ "${vcs}" == "svn" ]] && mkdir -p ${tmp}/svnroot
if [[ "${vcs}" == "git" ]];
then
git init
touch .gitignore
git add .gitignore
git commit -a -m 'Initial Commit'
elif [[ "${vcs}" == "svn" ]];
then
svnadmin create svnroot
svn co file://${tmp}/svnroot svn
cd svn
elif [[ "${vcs}" == "cvs" ]];
then
CVSROOT="${tmp}/cvsroot" cvs init
mkdir cvsroot/cvs
cvs -d:local:${tmp}/cvsroot co cvs
cd cvs
fi
mkdir -p ${VCSTEST}
cp ${template}/vcstest-0.0.1.ebuild ${VCSTEST}
${vcs} add $(dirname ${VCSTEST})
if [[ "${vcs}" == "cvs" ]];
then
${vcs} add ${VCSTEST}
${vcs} add "${VCSTEST}/vcstest-0.0.1.ebuild"
fi
cd ${VCSTEST}
ech ${echangelog} 'New ebuild for bug <id>.'
if [[ "${MD5_INIT}" != "$(md5 ChangeLog)" ]];
then
eerror "WRONG MD5_INIT!"
fi
mkdir files
cp ${template}/test.patch files
if [[ "${vcs}" == "cvs" ]];
then
${vcs} add files/
${vcs} add files/test.patch
else
${vcs} add files
fi
ech ${echangelog} "Added adittional patch to fix foo."
if [[ "${MD5_PATCH}" != "$(md5 ChangeLog)" ]];
then
eerror "WRONG MD5_PATCH!"
fi
if [[ "${vcs}" == "svn" ]];
then
${vcs} commit -m 'New ebuild for bug <id>.' ../
else
${vcs} commit -m 'New ebuild for bug <id>.'
fi
[[ "${vcs}" == "cvs" ]] && sed -i -e 's:# $Header\: .*$:# $Header\: $:' ChangeLog
cp vcstest-0.0.1.ebuild vcstest-0.0.1-r1.ebuild
${vcs} add vcstest-0.0.1-r1.ebuild
ech ${echangelog} "Revbump..."
if [[ "${MD5_REVBUMP}" != "$(md5 ChangeLog)" ]];
then
eerror "WRONG MD5_REVBUMP!"
fi
sed -i -e 's:# Copyright 1999-2009 Gentoo Foundation:# Copyright 1999-2010 Gentoo Foundation:' vcstest-0.0.1.ebuild
ech ${echangelog} "Revbump...; Just copyright changed."
if [[ "${MD5_COPYRIGHT}" != "$(md5 ChangeLog)" ]];
then
eerror "WRONG MD5_COPYRIGHT!"
fi
if [[ "${vcs}" == "cvs" ]];
then
rm -f files/test.patch
${vcs} remove files/test.patch
else
${vcs} rm files/test.patch
fi
ech ${echangelog} "Revbump...; Just copyright changed; Removed obsolete patch."
if [[ "${MD5_OBSOLETE}" != "$(md5 ChangeLog)" ]];
then
eerror "WRONG MD5_OBSOLETE!"
fi
echo>>vcstest-0.0.1.ebuild
ech ${echangelog} "Revbump...; Just copyright changed; Removed obsolete patch; Modified more then just the copyright."
if [[ "${MD5_FINAL}" != "$(md5 ChangeLog)" ]];
then
eerror "WRONG MD5_FINAL!"
fi
}
[[ -d "${_ROOT}/tmp" ]] && rm -rf ${_ROOT}/tmp
mkdir -p ${_ROOT}/tmp
ebegin "Preparing echangelog"
if [[ -e ../echangelog ]];
then
cp ../echangelog "${_ROOT}/tmp" || set $?
sed -i -e 's:use POSIX qw.*:use POSIX qw(setlocale getcwd);\nuse TEST qw(strftime);:' "${_ROOT}/tmp/echangelog" || set $?
eend ${1:-0} || exit ${1}
else
eerror "error"
eend ${1:-1}
exit 1
fi
if [[ -x $(which git) ]];
then
ebegin "Starting test with git"
make_test $_ROOT "git" || set $?
eend ${1:-0}
fi
if [[ -x $(which cvs) ]];
then
ebegin "Starting test with cvs"
make_test $_ROOT "cvs" || set $?
eend ${1:-0}
fi
if [[ -x $(which svn) ]];
then
ebegin "Starting test with svn"
make_test $_ROOT "svn" || set $?
eend ${1:-0}
fi
rm -rf "${_ROOT}/tmp"
|