44
44
before they have finnished (hopefully). Tweak if needed.
47
<property name="delay" value="3"/>
47
<property name="delay" value="0"/>
49
<property name="tdir" value="${basedir}/test-working"/>
49
<import file="../../../buildfiletest-base.xml"/>
52
<delete dir="${tdir}"/>
53
<mkdir dir="${tdir}"/>
52
<mkdir dir="${output}" />
57
depends="setup, test-single, test-delete, test-record, test-recreate, teardown"/>
57
depends="setUp, test-single, test-delete, test-record, test-recreate, tearDown"/>
59
59
<!-- test for action = single -->
62
File: ${tdir}/symlink.test
63
Link: ${tdir}/singletest
62
File: ${output}/symlink.test
63
Link: ${output}/singletest
65
65
<target name="test-single">
66
<touch file="${tdir}/symlink.test"/>
67
<symlink resource="${tdir}/symlink.test"
68
link="${tdir}/singletest"
66
<touch file="${output}/symlink.test"/>
67
<symlink resource="${output}/symlink.test"
68
link="${output}/singletest"
69
69
failonerror="yes"/>
70
70
<sleep seconds="${delay}"/> <!-- make sure OS has time to catch up -->
71
<available file="${tdir}/symlink.test"
71
<available file="${output}/symlink.test"
72
72
property="test.single.file.created"/>
73
<available file="${tdir}/singletest"
73
<available file="${output}/singletest"
74
74
property="test.single.link.created"/>
113
Dir: ${tdir}/symtest1
114
Dir: ${tdir}/symtest1/symtest2
115
Dir: ${tdir}/symtest1/symtest3
116
File: ${tdir}/symtest1/file1
117
File: ${tdir}/symtest1/symtest2/file2
118
File: ${tdir}/symtest1/symtest3/fileA
119
File: ${tdir}/symtest1/symtest3/fileB
120
File: ${tdir}/symtest1/symtest3/fileC
121
Link: ${tdir}/symtest1/link1==>${tdir}/symtest1/file1
122
Link: ${tdir}/symtest1/link2==>${tdir}/symtest1/symtest2/file2
123
Link: ${tdir}/symtest1/symtest2/link3==>
124
${tdir}/symtest1/symtest2/file2
125
Link: ${tdir}/symtest1/dirlink==>${tdir}/symtest1/symtest3
126
Link: ${tdir}/symtest1/dirlink2==>${tdir}/symtest1/symtest3
127
Link: ${tdir}/symtest1/dirlink3==>${tdir}/symtest1/symtest3
128
File: ${tdir}/symtest1/recorded.links
129
File: ${tdir}/symtest1/symtest2/recorded.links
113
Dir: ${output}/symtest1
114
Dir: ${output}/symtest1/symtest2
115
Dir: ${output}/symtest1/symtest3
116
File: ${output}/symtest1/file1
117
File: ${output}/symtest1/symtest2/file2
118
File: ${output}/symtest1/symtest3/fileA
119
File: ${output}/symtest1/symtest3/fileB
120
File: ${output}/symtest1/symtest3/fileC
121
Link: ${output}/symtest1/link1==>${output}/symtest1/file1
122
Link: ${output}/symtest1/link2==>${output}/symtest1/symtest2/file2
123
Link: ${output}/symtest1/symtest2/link3==>
124
${output}/symtest1/symtest2/file2
125
Link: ${output}/symtest1/dirlink==>${output}/symtest1/symtest3
126
Link: ${output}/symtest1/dirlink2==>${output}/symtest1/symtest3
127
Link: ${output}/symtest1/dirlink3==>${output}/symtest1/symtest3
128
File: ${output}/symtest1/recorded.links
129
File: ${output}/symtest1/symtest2/recorded.links
134
134
<target name="test-record">
136
<mkdir dir="${tdir}/symtest1"/>
137
<mkdir dir="${tdir}/symtest1/symtest2"/>
138
<mkdir dir="${tdir}/symtest1/symtest3"/>
139
<touch file="${tdir}/symtest1/file1"/>
140
<touch file="${tdir}/symtest1/symtest2/file2"/>
142
<touch file="${tdir}/symtest1/symtest3/fileA"/>
143
<touch file="${tdir}/symtest1/symtest3/fileB"/>
144
<touch file="${tdir}/symtest1/symtest3/fileC"/>
146
<symlink resource="${tdir}/symtest1/file1"
147
link="${tdir}/symtest1/link1"
149
<symlink resource="${tdir}/symtest1/symtest2/file2"
150
link="${tdir}/symtest1/link2"
152
<symlink resource="${tdir}/symtest1/symtest2/file2"
153
link="${tdir}/symtest1/symtest2/link3"
155
<symlink resource="${tdir}/symtest1/symtest3"
156
link="${tdir}/symtest1/dirlink"
158
<symlink resource="${tdir}/symtest1/symtest3"
159
link="${tdir}/symtest1/dirlink2"
136
<mkdir dir="${output}/symtest1"/>
137
<mkdir dir="${output}/symtest1/symtest2"/>
138
<mkdir dir="${output}/symtest1/symtest3"/>
139
<touch file="${output}/symtest1/file1"/>
140
<touch file="${output}/symtest1/symtest2/file2"/>
142
<touch file="${output}/symtest1/symtest3/fileA"/>
143
<touch file="${output}/symtest1/symtest3/fileB"/>
144
<touch file="${output}/symtest1/symtest3/fileC"/>
146
<symlink resource="${output}/symtest1/file1"
147
link="${output}/symtest1/link1"
149
<symlink resource="${output}/symtest1/symtest2/file2"
150
link="${output}/symtest1/link2"
152
<symlink resource="${output}/symtest1/symtest2/file2"
153
link="${output}/symtest1/symtest2/link3"
155
<symlink resource="${output}/symtest1/symtest3"
156
link="${output}/symtest1/dirlink"
158
<symlink resource="${output}/symtest1/symtest3"
159
link="${output}/symtest1/dirlink2"
160
160
failonerror="no"/>
161
<symlink resource="${tdir}/symtest1/symtest3"
162
link="${tdir}/symtest1/dirlink3"
161
<symlink resource="${output}/symtest1/symtest3"
162
link="${output}/symtest1/dirlink3"
163
163
failonerror="no"/>
165
165
<sleep seconds="${delay}"/> <!-- make sure OS has time to catch up -->
167
167
<symlink action="record" linkfilename="recorded.links">
168
<fileset dir="${tdir}/symtest1" includes="**/**"/>
168
<fileset dir="${output}/symtest1" includes="**/**"/>
171
171
<sleep seconds="${delay}"/> <!-- make sure OS has time to catch up -->
173
173
<!-- Test to see if the directories were created -->
175
<available file="${tdir}/symtest1"
175
<available file="${output}/symtest1"
177
177
property="test.record.dir1.created"/>
179
<available file="${tdir}/symtest1/symtest2"
179
<available file="${output}/symtest1/symtest2"
181
181
property="test.record.dir2.created"/>
183
<available file="${tdir}/symtest1/symtest3"
183
<available file="${output}/symtest1/symtest3"
185
185
property="test.record.dir3.created"/>
187
187
<!-- Test to see if the Files were created -->
189
<available file="${tdir}/symtest1/file1"
189
<available file="${output}/symtest1/file1"
190
190
property="test.record.file1.created"/>
192
<available file="${tdir}/symtest1/symtest2/file2"
192
<available file="${output}/symtest1/symtest2/file2"
193
193
property="test.record.file2.created"/>
195
<available file="${tdir}/symtest1/symtest3/fileA"
195
<available file="${output}/symtest1/symtest3/fileA"
196
196
property="test.record.fileA.created"/>
198
<available file="${tdir}/symtest1/symtest3/fileB"
198
<available file="${output}/symtest1/symtest3/fileB"
199
199
property="test.record.fileB.created"/>
201
<available file="${tdir}/symtest1/symtest3/fileC"
201
<available file="${output}/symtest1/symtest3/fileC"
202
202
property="test.record.fileC.created"/>
204
204
<!-- Test to see if the links were created -->
206
<available file="${tdir}/symtest1/link1"
206
<available file="${output}/symtest1/link1"
207
207
property="test.record.link1.created"/>
209
<available file="${tdir}/symtest1/link2"
209
<available file="${output}/symtest1/link2"
210
210
property="test.record.link2.created"/>
212
<available file="${tdir}/symtest1/symtest2/link3"
212
<available file="${output}/symtest1/symtest2/link3"
213
213
property="test.record.link3.created"/>
215
<available file="${tdir}/symtest1/dirlink"
215
<available file="${output}/symtest1/dirlink"
216
216
property="test.record.dirlink.created"/>
218
218
<!-- this is redundant for this test, but used in the recreate test -->
220
<available file="${tdir}/symtest1/dirlink2"
220
<available file="${output}/symtest1/dirlink2"
221
221
property="test.record.dirlink2.created"/>
223
223
<!-- Test to see if the linkfiles were created -->
225
<available file="${tdir}/symtest1/recorded.links"
225
<available file="${output}/symtest1/recorded.links"
226
226
property="test.record.dir1.recorded"/>
228
<available file="${tdir}/symtest1/symtest2/recorded.links"
228
<available file="${output}/symtest1/symtest2/recorded.links"
229
229
property="test.record.dir2.recorded"/>
231
231
<!-- THIS should not be set -->
233
<available file="${tdir}/symtest1/symtest3/recorded.links"
233
<available file="${output}/symtest1/symtest3/recorded.links"
234
234
property="test.record.dir3.recorded"
235
235
value="ERROR: symtest3/recorded.links should not exist"/>
244
Link: ${tdir}/symtest1/link1==>${tdir}/symtest1/file1
245
Link: ${tdir}/symtest1/link2==>${tdir}/symtest1/symtest2/file2
246
Link: ${tdir}/symtest1/symtest2/link3==>
247
${tdir}/symtest1/symtest2/file2
248
Link: ${tdir}/symtest1/dirlink==>${tdir}/symtest1/symtest3
249
Link: ${tdir}/symtest1/dirlink3==>${tdir}/symtest1/symtest3
244
Link: ${output}/symtest1/link1==>${output}/symtest1/file1
245
Link: ${output}/symtest1/link2==>${output}/symtest1/symtest2/file2
246
Link: ${output}/symtest1/symtest2/link3==>
247
${output}/symtest1/symtest2/file2
248
Link: ${output}/symtest1/dirlink==>${output}/symtest1/symtest3
249
Link: ${output}/symtest1/dirlink3==>${output}/symtest1/symtest3
252
Link: ${tdir}/symtest1/dirlink3==>${tdir}/symtest1/symtest2
252
Link: ${output}/symtest1/dirlink3==>${output}/symtest1/symtest2
255
Link: ${tdir}/symtest1/link1==>${tdir}/symtest1/file1
256
Link: ${tdir}/symtest1/link2==>${tdir}/symtest1/symtest2/file2
257
Link: ${tdir}/symtest1/symtest2/link3==>
258
${tdir}/symtest1/symtest2/file2
259
Link: ${tdir}/symtest1/dirlink==>${tdir}/symtest1/symtest3
255
Link: ${output}/symtest1/link1==>${output}/symtest1/file1
256
Link: ${output}/symtest1/link2==>${output}/symtest1/symtest2/file2
257
Link: ${output}/symtest1/symtest2/link3==>
258
${output}/symtest1/symtest2/file2
259
Link: ${output}/symtest1/dirlink==>${output}/symtest1/symtest3
262
Link: ${tdir}/symtest1/dirlink3==>${tdir}/symtest1/symtest2
262
Link: ${output}/symtest1/dirlink3==>${output}/symtest1/symtest2
264
${tdir}/symtest1/dirlink3==>${tdir}/symtest1/symtest3
264
${output}/symtest1/dirlink3==>${output}/symtest1/symtest3
266
266
Should Not Create (bug 25181):
267
Link: ${tdir}/symtest1/symtest3/dirlink2==>${tdir}/symtest1/symtest3
267
Link: ${output}/symtest1/symtest3/dirlink2==>${output}/symtest1/symtest3
270
270
<target name="test-recreate" depends="test-record">
272
<symlink action="delete" link="${tdir}/symtest1/link1"/>
273
<symlink action="delete" link="${tdir}/symtest1/link2"/>
274
<symlink action="delete" link="${tdir}/symtest1/symtest2/link3"/>
275
<symlink action="delete" link="${tdir}/symtest1/dirlink"/>
272
<symlink action="delete" link="${output}/symtest1/link1"/>
273
<symlink action="delete" link="${output}/symtest1/link2"/>
274
<symlink action="delete" link="${output}/symtest1/symtest2/link3"/>
275
<symlink action="delete" link="${output}/symtest1/dirlink"/>
276
276
<!-- dirlink2 intentionally not deleted to test bug 25181 -->
277
<symlink action="delete" link="${tdir}/symtest1/dirlink3"/>
277
<symlink action="delete" link="${output}/symtest1/dirlink3"/>
279
279
<sleep seconds="${delay}"/> <!-- make sure OS has time to catch up -->
281
<symlink resource="${tdir}/symtest1/symtest2"
282
link="${tdir}/symtest1/dirlink3"
281
<symlink resource="${output}/symtest1/symtest2"
282
link="${output}/symtest1/dirlink3"
283
283
failonerror="no"/>
285
285
<sleep seconds="${delay}"/> <!-- make sure OS has time to catch up -->
287
<available file="${tdir}/symtest1/link1"
287
<available file="${output}/symtest1/link1"
288
288
property="test.recreate.link1.not.removed"
289
289
value="ERROR: rm -f symtest1/link1 failed"/>
291
<available file="${tdir}/symtest1/link2"
291
<available file="${output}/symtest1/link2"
292
292
property="test.recreate.link2.not.removed"
293
293
value="ERROR: rm -f symtest1/link2 failed"/>
295
<available file="${tdir}/symtest1/symtest2/link3"
295
<available file="${output}/symtest1/symtest2/link3"
296
296
property="test.recreate.link3.not.removed"
297
297
value="ERROR: rm -f symtest1/symtest2/link3 failed"/>
299
<available file="${tdir}/symtest1/zdirlink"
299
<available file="${output}/symtest1/zdirlink"
300
300
property="test.recreate.zdirlink.not.removed"
301
301
value="ERROR: rm -f symtest1/zdirlink failed"/>
303
303
<sleep seconds="${delay}"/> <!-- make sure OS has time to do the execs -->
305
305
<symlink action="recreate">
306
<fileset dir="${tdir}/symtest1" includes="**/recorded.links"/>
306
<fileset dir="${output}/symtest1" includes="**/recorded.links"/>
309
309
<sleep seconds="${delay}"/> <!-- make sure OS has time to catch up -->
311
<available file="${tdir}/symtest1/link1"
311
<available file="${output}/symtest1/link1"
312
312
property="test.recreate.link1.recreated"/>
314
<available file="${tdir}/symtest1/link2"
314
<available file="${output}/symtest1/link2"
315
315
property="test.recreate.link2.recreated"/>
317
<available file="${tdir}/symtest1/symtest2/link3"
317
<available file="${output}/symtest1/symtest2/link3"
318
318
property="test.recreate.link3.recreated"/>
320
<available file="${tdir}/symtest1/dirlink"
320
<available file="${output}/symtest1/dirlink"
321
321
property="test.recreate.dirlink.recreated"/>
323
323
<!-- this should not get set -->
324
<available file="${tdir}/symtest1/symtest3/symtest3"
324
<available file="${output}/symtest1/symtest3/symtest3"
325
325
property="test.recreate.dirlink2.recreated.twice"
326
326
value="ERROR: dirlink2 was created a second time (bug 25181)"/>
328
<touch file="${tdir}/symtest1/dirlink3/WhereAmI"/>
328
<touch file="${output}/symtest1/dirlink3/WhereAmI"/>
330
330
<sleep seconds="${delay}"/> <!-- make sure OS has time to do the execs -->
332
<available file="${tdir}/symtest1/symtest3/WhereAmI"
332
<available file="${output}/symtest1/symtest3/WhereAmI"
333
333
property="test.recreate.dirlink3.was.altered"/>
337
337
<!-- actually tests the symlink methods in FileUtils, but this
338
338
testfixture already has all the necessary envirnment in place
340
<target name="test-fileutils" depends="setup">
341
<mkdir dir="${tdir}/dir1"/>
342
<mkdir dir="${tdir}/dir2"/>
343
<touch file="${tdir}/file1"/>
344
<touch file="${tdir}/file2"/>
345
<symlink link="${tdir}/dir.there" resource="${tdir}/dir1"/>
346
<symlink link="${tdir}/dir.notthere" resource="${tdir}/dir2"/>
347
<symlink link="${tdir}/file.there" resource="${tdir}/file1"/>
348
<symlink link="${tdir}/file.notthere" resource="${tdir}/file2"/>
349
<delete dir="${tdir}/dir2"/>
350
<delete file="${tdir}/file2"/>
353
<!-- CALL THIS to clean things up afterwards -->
355
<target name="teardown">
356
<delete dir="${tdir}"/>
340
<target name="test-fileutils" depends="setUp">
341
<mkdir dir="${output}/dir1"/>
342
<mkdir dir="${output}/dir2"/>
343
<touch file="${output}/file1"/>
344
<touch file="${output}/file2"/>
345
<symlink link="${output}/dir.there" resource="${output}/dir1"/>
346
<symlink link="${output}/dir.notthere" resource="${output}/dir2"/>
347
<symlink link="${output}/file.there" resource="${output}/file1"/>
348
<symlink link="${output}/file.notthere" resource="${output}/file2"/>
349
<delete dir="${output}/dir2"/>
350
<delete file="${output}/file2"/>