]> git.sur5r.net Git - bacula/bacula/blob - regress/tests/regexwhere-test
Update
[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
11 scripts/cleanup
12 scripts/copy-test-confs
13
14 /bin/cp -f scripts/bacula-dir.conf.regexwhere bin/bacula-dir.conf
15
16 echo "${cwd}/build/po" >/tmp/file-list
17
18 start_test
19
20 cat <<END_OF_DATA >tmp/bconcmds
21 @$out tmp/RUN_backup
22 messages
23 label volume=TestVolume001
24 run job=backup yes
25 wait
26 messages
27 @##################################
28 @$out tmp/RUN_JobA
29 restore
30 5
31 cd ${cwd}/build/po
32 m *.po
33 done
34 1
35 yes
36 wait
37 messages
38 @##################################
39 @$out tmp/RUN_JobB
40 restore
41 5
42 cd ${cwd}/build/po
43 m *.po
44 done
45 2
46 yes
47 wait
48 messages
49 @##################################
50 @$out tmp/RUN_JobC
51 restore
52 5
53 cd ${cwd}/build/po
54 m *.po
55 done
56 3
57 yes
58 wait
59 messages
60 @##################################
61 @$out tmp/RUN_JobD
62 restore
63 5
64 cd ${cwd}/build/po
65 m *.po
66 done
67 4
68 yes
69 wait
70 messages
71 @##################################
72 @$out tmp/RUN_JobE
73 restore
74 5
75 cd ${cwd}/build/po
76 m *.po
77 done
78 5
79 yes
80 wait
81 messages
82 @##################################
83 @$out tmp/RUN_JobF
84 restore
85 5
86 cd ${cwd}/build/po
87 m *.po
88 done
89 6
90 yes
91 wait
92 messages
93 @##################################
94 @$out tmp/RUN_JobG
95 restore strip_prefix="${cwd}" add_prefix="/tmp/bacula-restore"
96 5
97 cd ${cwd}/build/po
98 m *.po
99 done
100 7
101 yes
102 wait
103 messages
104 @##################################
105 @$out tmp/RUN_JobH
106 restore add_suffix=.old
107 5
108 cd ${cwd}/build/po
109 m *.po
110 done
111 7
112 yes
113 wait
114 messages
115 @##################################
116 @$out tmp/RUN_JobI
117 restore regexwhere="!Po!old!i,!old!po!,!\$!.old!"
118 5
119 cd ${cwd}/build/po
120 m *.po
121 done
122 7
123 yes
124 wait
125 messages
126 @##################################
127 @$out tmp/RUN_JobJ
128 restore
129 5
130 cd ${cwd}/build/po
131 m *.po
132 done
133 7
134 mod
135 @## File Relocation -> add suffix -> test -> accept
136 10
137 3
138 .old
139 5
140 /etc/passwd
141 .
142 6
143 @## Where 
144 m
145 9
146 /tmp/bacula-restore-it
147 m
148 @## use add suffix
149 10
150 3
151 .old
152 6
153 yes
154 wait
155 messages
156 @sleep 1
157 quit
158 END_OF_DATA
159
160 run_bacula
161
162 stop_bacula
163
164
165 dstat=0
166 bstat=0
167 rstat=0
168 export dstat
169 export bstat
170 export rstat
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 "${cwd}/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  -q "Restore OK"  tmp/RUN_$J &&
254    grep  -q "${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 -q "Restore OK"      tmp/RUN_$J &&
265    grep -q "/etc/passwd.old" tmp/RUN_$J &&
266    grep -q -e "Where: */tmp/bacula-restore-it" tmp/RUN_$J &&
267    grep -q "${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 # thanks to BSD like system for that...
279 sed -e 's/[Rr][Ee][Aa][Dd][Mm][Ee]/readme/' -e 's/\([ch]\)$/.old.\1/' tmp/list > tmp/list.sed
280 ./build/src/tools/bregtest -s -f tmp/list -e '/readme/readme/i,/([ch])$/.old.$1/' > tmp/list.bsed
281
282 if diff tmp/list.bsed tmp/list.sed >/dev/null 2>&1
283 then
284     [ "$debug" = 1 ] && echo bregtest ok
285 else
286    echo "bregtest test in error"
287    rstat=1
288
289 fi
290
291 end_test