]> git.sur5r.net Git - bacula/bacula/blob - regress/tests/regexwhere-test
ebl Adding missing file
[bacula/bacula] / regress / tests / regexwhere-test
1 #!/bin/sh
2 #
3 #  Test file relocation feature
4 #
5
6 TestName="regexwhere-test"
7 JobName=backup
8
9 . scripts/functions
10 set_debug 0
11 copy_test_confs
12
13 rm -f bin/bacula-dir.conf
14 rm -f tmp/RUN*
15 rm -f ${cwd}/build/po/*old*
16 rm -rf tmp/po
17 /bin/cp -f scripts/bacula-dir.conf.regexwhere bin/bacula-dir.conf
18
19 echo "${cwd}/build/po" >/tmp/file-list
20
21 start_test
22
23 cat <<END_OF_DATA >tmp/bconcmds
24 @$out tmp/RUN_backup
25 messages
26 label volume=TestVolume001
27 run job=backup yes
28 wait
29 messages
30 @##################################
31 @$out tmp/RUN_JobA
32 restore
33 5
34 cd ${cwd}/build/po
35 m *.po
36 done
37 1
38 yes
39 wait
40 messages
41 @##################################
42 @$out tmp/RUN_JobB
43 restore
44 5
45 cd ${cwd}/build/po
46 m *.po
47 done
48 2
49 yes
50 wait
51 messages
52 @##################################
53 @$out tmp/RUN_JobC
54 restore
55 5
56 cd ${cwd}/build/po
57 m *.po
58 done
59 3
60 yes
61 wait
62 messages
63 @##################################
64 @$out tmp/RUN_JobD
65 restore
66 5
67 cd ${cwd}/build/po
68 m *.po
69 done
70 4
71 yes
72 wait
73 messages
74 @##################################
75 @$out tmp/RUN_JobE
76 restore
77 5
78 cd ${cwd}/build/po
79 m *.po
80 done
81 5
82 yes
83 wait
84 messages
85 @##################################
86 @$out tmp/RUN_JobF
87 restore
88 5
89 cd ${cwd}/build/po
90 m *.po
91 done
92 6
93 yes
94 wait
95 messages
96 @##################################
97 @$out tmp/RUN_JobG
98 restore strip_prefix="${cwd}" add_prefix="/tmp/bacula-restore"
99 5
100 cd ${cwd}/build/po
101 m *.po
102 done
103 7
104 yes
105 wait
106 messages
107 @##################################
108 @$out tmp/RUN_JobH
109 restore add_suffix=.old
110 5
111 cd ${cwd}/build/po
112 m *.po
113 done
114 7
115 yes
116 wait
117 messages
118 @##################################
119 @$out tmp/RUN_JobI
120 restore regexwhere="!Po!old!i,!old!po!,!\$!.old!"
121 5
122 cd ${cwd}/build/po
123 m *.po
124 done
125 7
126 yes
127 wait
128 messages
129 @##################################
130 @$out tmp/RUN_JobJ
131 restore
132 5
133 cd ${cwd}/build/po
134 m *.po
135 done
136 7
137 mod
138 @## File Relocation -> add suffix -> test -> accept
139 10
140 3
141 .old
142 5
143 /etc/passwd
144 .
145 6
146 @## Where 
147 m
148 9
149 /tmp/bacula-restore-it
150 m
151 @## use add suffix
152 10
153 3
154 .old
155 6
156 yes
157 wait
158 messages
159 @sleep 1
160 quit
161 END_OF_DATA
162
163
164 bin/bacula start
165 cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf > /dev/null
166 stop_bacula
167
168 export dstat=0
169 export bstat=0
170 export rstat=0
171
172 J=JobA
173 if grep -q "Restore OK"  tmp/RUN_$J &&
174    grep -q "${cwd}/build/po/fr.old.po" tmp/RUN_$J 
175 then
176     [ "$debug" = 1 ] && echo $J ok
177 else
178    echo "$J in error"
179    rstat=1
180 fi
181
182 J=JobB
183 # $cwd begins with /
184 if grep -q "Restore OK"  tmp/RUN_$J &&
185    grep -q "/tmp/bacula-restore${cwd}/po/fr.po.old" tmp/RUN_$J
186 then
187     [ "$debug" = 1 ] && echo $J ok
188 else
189    echo "$J in error"
190    rstat=1
191 fi
192
193 J=JobC
194 if grep -q "Restore OK"  tmp/RUN_$J &&
195    grep -q "/tmp/bacula-restore${cwd}/build/po/fr.po" tmp/RUN_$J
196 then
197     [ "$debug" = 1 ] && echo $J ok
198 else
199    echo "$J in error"
200    rstat=1
201 fi
202
203 J=JobD
204 if grep -q "Restore Error"  tmp/RUN_$J
205 then
206     [ "$debug" = 1 ] && echo $J ok
207 else
208    echo "$J in error"
209    rstat=1
210 fi
211
212 J=JobE
213 if grep -q "Restore OK"  tmp/RUN_$J &&
214    grep -q "${cwd}/tmp/fr.po"  tmp/RUN_$J
215 then
216     [ "$debug" = 1 ] && echo $J ok
217 else
218    echo "$J in error"
219    rstat=1
220 fi
221
222 J=JobF
223 if grep -q "Restore OK"  tmp/RUN_$J &&
224    grep -q "/tmp/regress/build/po/fr.po" tmp/RUN_$J
225 then
226     [ "$debug" = 1 ] && echo $J ok
227 else
228    echo "$J in error"
229    rstat=1
230 fi
231
232 J=JobG
233 if grep -q "Restore OK"  tmp/RUN_$J &&
234    grep -q "/tmp/bacula-restore/build/po/fr.po" tmp/RUN_$J
235 then
236     [ "$debug" = 1 ] && echo $J ok
237 else
238    echo "$J in error"
239    rstat=1
240 fi
241
242 J=JobH
243 if grep -q "Restore OK"  tmp/RUN_$J &&
244    grep -q "${cwd}/build/po/fr.po.old" tmp/RUN_$J
245 then
246     [ "$debug" = 1 ] && echo $J ok
247 else
248    echo "$J in error"
249    rstat=1
250 fi
251
252 J=JobI
253 if grep  "Restore OK"  tmp/RUN_$J &&
254    grep  "${cwd}/build/po/fr.po.old" tmp/RUN_$J
255 then
256     [ "$debug" = 1 ] && echo $J ok
257 else
258    echo "$J in error"
259    rstat=1
260 fi
261
262
263 J=JobJ
264 if grep  "Restore OK"      tmp/RUN_$J &&
265    grep  "/etc/passwd.old" tmp/RUN_$J &&
266    grep  "Where:      /tmp/bacula-restore-it" tmp/RUN_$J &&
267    grep  "${cwd}/build/po/fr.po.old" tmp/RUN_$J
268 then
269     [ "$debug" = 1 ] && echo $J ok
270 else
271    echo "$J in error"
272    rstat=1
273 fi
274
275 # test with bregtest
276
277 find ${cwd}/build > tmp/list
278 sed -e 's/readme/readme/i' -e 's/\([ch]\)$/.old.\1/' tmp/list > /tmp/list.sed
279 ./build/src/tools/bregtest -s -f tmp/list -e '/readme/readme/i,/([ch])$/.old.$1/' > /tmp/list.bsed
280
281 if diff -q tmp/list.bsed tmp/list.sed
282 then
283     [ "$debug" = 1 ] && echo bregtest ok
284 else
285    echo "bregtest test in error"
286    rstat=1
287
288 fi
289
290 end_test