]> git.proxmox.com Git - rustc.git/blame - src/rust-installer/test/rust-installer-v2/test.sh
New upstream version 1.16.0+dfsg1
[rustc.git] / src / rust-installer / test / rust-installer-v2 / test.sh
CommitLineData
3157f602
XL
1#!/bin/sh
2
3S="$(cd $(dirname $0) && pwd)"
4
5TEST_DIR="$S/test"
6TMP_DIR="$S/tmp"
7WORK_DIR="$TMP_DIR/workdir"
8OUT_DIR="$TMP_DIR/outdir"
9PREFIX_DIR="$TMP_DIR/prefix"
10
11case $(uname -s) in
12
13 MINGW* | MSYS*)
14 WINDOWS=1
15 ;;
16esac
17
18pre() {
19 echo
20 echo "test: $1"
21 echo
22 rm -Rf "$WORK_DIR"
23 rm -Rf "$OUT_DIR"
24 rm -Rf "$PREFIX_DIR"
25 mkdir -p "$WORK_DIR"
26 mkdir -p "$OUT_DIR"
27 mkdir -p "$PREFIX_DIR"
28}
29
30post() {
31 rm -Rf "$WORK_DIR"
32 rm -Rf "$OUT_DIR"
33 rm -Rf "$PREFIX_DIR"
34}
35
36need_ok() {
37 if [ $? -ne 0 ]
38 then
39 echo
40 echo "TEST FAILED!"
41 echo
42 exit 1
43 fi
44}
45
46try() {
47 cmd="$@"
48 echo \$ "$cmd"
49 OUTPUT=`$@`
50 if [ $? -ne 0 ]; then
51 echo
52 # Using /bin/echo to avoid escaping
53 /bin/echo "$OUTPUT"
54 echo
55 echo "TEST FAILED!"
56 echo
57 exit 1
58 fi
59}
60
61expect_fail() {
62 cmd="$@"
63 echo \$ "$cmd"
64 OUTPUT=`$@`
65 if [ $? -eq 0 ]; then
66 echo
67 # Using /bin/echo to avoid escaping
68 /bin/echo "$OUTPUT"
69 echo
70 echo "TEST FAILED!"
71 echo
72 exit 1
73 fi
74}
75
76# Installation tests
77
78pre "basic install"
79try sh "$S/gen-installer.sh" \
80 --image-dir="$TEST_DIR/image1" \
81 --work-dir="$WORK_DIR" \
82 --output-dir="$OUT_DIR"
83try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
84try test -e "$PREFIX_DIR/something-to-install"
85try test -e "$PREFIX_DIR/dir-to-install/foo"
86try test -e "$PREFIX_DIR/bin/program"
87try test -e "$PREFIX_DIR/bin/program2"
88try test -e "$PREFIX_DIR/bin/bad-bin"
89post
90
91pre "basic uninstall"
92try sh "$S/gen-installer.sh" \
93 --image-dir="$TEST_DIR/image1" \
94 --work-dir="$WORK_DIR" \
95 --output-dir="$OUT_DIR"
96try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
97try "$WORK_DIR/package/install.sh --uninstall" --prefix="$PREFIX_DIR"
98try test ! -e "$PREFIX_DIR/something-to-install"
99try test ! -e "$PREFIX_DIR/dir-to-install/foo"
100try test ! -e "$PREFIX_DIR/bin/program"
101try test ! -e "$PREFIX_DIR/bin/program2"
102try test ! -e "$PREFIX_DIR/bin/bad-bin"
103try test ! -e "$PREFIX_DIR/lib/packagelib"
104post
105
106pre "not installed files"
107try sh "$S/gen-installer.sh" \
108 --image-dir="$TEST_DIR/image1" \
109 --work-dir="$WORK_DIR" \
110 --output-dir="$OUT_DIR" \
111 --non-installed-prefixes=something-to-not-install,dir-to-not-install
112try test -e "$WORK_DIR/package/something-to-not-install"
113try test -e "$WORK_DIR/package/dir-to-not-install"
114try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
115try test ! -e "$PREFIX_DIR/something-to-not-install"
116try test ! -e "$PREFIX_DIR/dir-to-not-install"
117post
118
119pre "verify override"
120try sh "$S/gen-installer.sh" \
121 --image-dir="$TEST_DIR/image1" \
122 --work-dir="$WORK_DIR" \
123 --output-dir="$OUT_DIR" \
124 --verify-bin=program2
125try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
126post
127
128pre "tarball with package name"
129try sh "$S/gen-installer.sh" \
130 --image-dir="$TEST_DIR/image1" \
131 --work-dir="$WORK_DIR" \
132 --output-dir="$OUT_DIR" \
133 --package-name=rustc-nightly
134try "$WORK_DIR/rustc-nightly/install.sh" --prefix="$PREFIX_DIR"
135try test -e "$OUT_DIR/rustc-nightly.tar.gz"
136post
137
138pre "bulk directory"
139try sh "$S/gen-installer.sh" \
140 --image-dir="$TEST_DIR/image1" \
141 --work-dir="$WORK_DIR" \
142 --output-dir="$OUT_DIR" \
143 --bulk-dirs=dir-to-install
144try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
145try test -e "$PREFIX_DIR/something-to-install"
146try test -e "$PREFIX_DIR/dir-to-install/foo"
147try test -e "$PREFIX_DIR/bin/program"
148try test -e "$PREFIX_DIR/bin/program2"
149try test -e "$PREFIX_DIR/bin/bad-bin"
150try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR" --uninstall
151try test ! -e "$PREFIX_DIR/dir-to-install"
152post
153
154pre "nested bulk directory"
155try sh "$S/gen-installer.sh" \
156 --image-dir="$TEST_DIR/image4" \
157 --work-dir="$WORK_DIR" \
158 --output-dir="$OUT_DIR" \
159 --bulk-dirs=dir-to-install/qux
160try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
161try test -e "$PREFIX_DIR/dir-to-install/qux/bar"
162try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR" --uninstall
163try test ! -e "$PREFIX_DIR/dir-to-install/qux"
164post
165
166pre "only bulk directory, no files"
167try sh "$S/gen-installer.sh" \
168 --image-dir="$TEST_DIR/image5" \
169 --work-dir="$WORK_DIR" \
170 --output-dir="$OUT_DIR" \
171 --bulk-dirs=dir-to-install
172try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
173try test -e "$PREFIX_DIR/dir-to-install/foo"
174try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR" --uninstall
175try test ! -e "$PREFIX_DIR/dir-to-install/foo"
176post
177
178pre "nested not installed files"
179try sh "$S/gen-installer.sh" \
180 --image-dir="$TEST_DIR/image4" \
181 --work-dir="$WORK_DIR" \
182 --output-dir="$OUT_DIR" \
183 --non-installed-prefixes=dir-to-install/qux/bar
184try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
185try test ! -e "$PREFIX_DIR/dir-to-install/qux/bar"
186post
187
188# Upgrade tests
189
190pre "upgrade v1 -> v2"
191mkdir "$WORK_DIR/v1"
192try sh "$S/test/rust-installer-v1/gen-installer.sh" \
193 --image-dir="$TEST_DIR/image2" \
194 --work-dir="$WORK_DIR/v1" \
195 --output-dir="$OUT_DIR/v1" \
196 --verify-bin=oldprogram \
197 --rel-manifest-dir=packagelib
198try sh "$S/gen-installer.sh" \
199 --image-dir="$TEST_DIR/image1" \
200 --work-dir="$WORK_DIR" \
201 --output-dir="$OUT_DIR" \
202 --rel-manifest-dir=packagelib \
203 --legacy-manifest-dirs=packagelib
204try "$WORK_DIR/v1/package/install.sh" --prefix="$PREFIX_DIR"
205try test -e "$PREFIX_DIR/something-to-install"
206try test -e "$PREFIX_DIR/dir-to-install/bar"
207try test -e "$PREFIX_DIR/bin/oldprogram"
208try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
209try test ! -e "$PREFIX_DIR/dir-to-install/bar"
210try test ! -e "$PREFIX_DIR/bin/oldprogram"
211try test -e "$PREFIX_DIR/something-to-install"
212try test -e "$PREFIX_DIR/dir-to-install/foo"
213try test -e "$PREFIX_DIR/bin/program"
214try test -e "$PREFIX_DIR/bin/program2"
215try test -e "$PREFIX_DIR/bin/bad-bin"
216try "$WORK_DIR/package/install.sh --uninstall" --prefix="$PREFIX_DIR"
217try test ! -e "$PREFIX_DIR/something-to-install"
218try test ! -e "$PREFIX_DIR/dir-to-install/foo"
219try test ! -e "$PREFIX_DIR/bin/program"
220try test ! -e "$PREFIX_DIR/bin/program2"
221try test ! -e "$PREFIX_DIR/bin/bad-bin"
222try test ! -e "$PREFIX_DIR/lib/packagelib"
223post
224
225pre "upgrade v1 -> v2 with multiple legacy manifests"
226mkdir "$WORK_DIR/v1"
227try sh "$S/test/rust-installer-v1/gen-installer.sh" \
228 --image-dir="$TEST_DIR/image2" \
229 --work-dir="$WORK_DIR/v1" \
230 --output-dir="$OUT_DIR/v1" \
231 --verify-bin=oldprogram \
232 --rel-manifest-dir=rustlib
233try sh "$S/test/rust-installer-v1/gen-installer.sh" \
234 --image-dir="$TEST_DIR/image3" \
235 --work-dir="$WORK_DIR/v1b" \
236 --output-dir="$OUT_DIR/v1b" \
237 --verify-bin=cargo \
238 --rel-manifest-dir=cargo
239try sh "$S/gen-installer.sh" \
240 --image-dir="$TEST_DIR/image1" \
241 --work-dir="$WORK_DIR" \
242 --output-dir="$OUT_DIR" \
243 --rel-manifest-dir=packagelib \
244 --legacy-manifest-dirs=rustlib,cargo
245try "$WORK_DIR/v1/package/install.sh" --prefix="$PREFIX_DIR"
246try "$WORK_DIR/v1b/package/install.sh" --prefix="$PREFIX_DIR"
247try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
248try test ! -e "$PREFIX_DIR/dir-to-install/bar"
249try test ! -e "$PREFIX_DIR/bin/oldprogram"
250try test ! -e "$PREFIX_DIR/bin/cargo"
251try test ! -e "$PREFIX_DIR/lib/cargo"
252try test -e "$PREFIX_DIR/something-to-install"
253try test -e "$PREFIX_DIR/dir-to-install/foo"
254try test -e "$PREFIX_DIR/bin/program"
255try test -e "$PREFIX_DIR/bin/program2"
256try test -e "$PREFIX_DIR/bin/bad-bin"
257try "$WORK_DIR/package/install.sh --uninstall" --prefix="$PREFIX_DIR"
258try test ! -e "$PREFIX_DIR/something-to-install"
259try test ! -e "$PREFIX_DIR/dir-to-install/foo"
260try test ! -e "$PREFIX_DIR/bin/program"
261try test ! -e "$PREFIX_DIR/bin/program2"
262try test ! -e "$PREFIX_DIR/bin/bad-bin"
263try test ! -e "$PREFIX_DIR/lib/packagelib"
264post
265
266pre "multiple components"
267try sh "$S/gen-installer.sh" \
268 --image-dir="$TEST_DIR/image1" \
269 --work-dir="$WORK_DIR/c1" \
270 --output-dir="$OUT_DIR/c1" \
271 --component-name=rustc
272try sh "$S/gen-installer.sh" \
273 --image-dir="$TEST_DIR/image3" \
274 --work-dir="$WORK_DIR/c2" \
275 --output-dir="$OUT_DIR/c2" \
276 --verify-bin=cargo \
277 --component-name=cargo
278try "$WORK_DIR/c1/package/install.sh" --prefix="$PREFIX_DIR"
279try "$WORK_DIR/c2/package/install.sh" --prefix="$PREFIX_DIR"
280try test -e "$PREFIX_DIR/something-to-install"
281try test -e "$PREFIX_DIR/dir-to-install/foo"
282try test -e "$PREFIX_DIR/bin/program"
283try test -e "$PREFIX_DIR/bin/program2"
284try test -e "$PREFIX_DIR/bin/bad-bin"
285try test -e "$PREFIX_DIR/bin/cargo"
286try "$WORK_DIR/c1/package/install.sh" --prefix="$PREFIX_DIR" --uninstall
287try test ! -e "$PREFIX_DIR/something-to-install"
288try test ! -e "$PREFIX_DIR/dir-to-install/foo"
289try test ! -e "$PREFIX_DIR/bin/program"
290try test ! -e "$PREFIX_DIR/bin/program2"
291try test ! -e "$PREFIX_DIR/bin/bad-bin"
292try "$WORK_DIR/c2/package/install.sh" --prefix="$PREFIX_DIR" --uninstall
293try test ! -e "$PREFIX_DIR/bin/cargo"
294try test ! -e "$PREFIX_DIR/lib/packagelib"
295post
296
297# Combined installer tests
298
299pre "combine installers"
300try sh "$S/gen-installer.sh" \
301 --image-dir="$TEST_DIR/image1" \
302 --work-dir="$WORK_DIR" \
303 --output-dir="$OUT_DIR" \
304 --package-name=rustc \
305 --component-name=rustc
306try sh "$S/gen-installer.sh" \
307 --image-dir="$TEST_DIR/image3" \
308 --work-dir="$WORK_DIR" \
309 --output-dir="$OUT_DIR" \
310 --verify-bin=cargo \
311 --package-name=cargo \
312 --component-name=cargo
313try sh "$S/combine-installers.sh" \
314 --work-dir="$WORK_DIR" \
315 --output-dir="$OUT_DIR" \
316 --package-name=rust \
317 --input-tarballs="$OUT_DIR/rustc.tar.gz,$OUT_DIR/cargo.tar.gz"
318try "$WORK_DIR/rust/install.sh" --prefix="$PREFIX_DIR"
319try test -e "$PREFIX_DIR/something-to-install"
320try test -e "$PREFIX_DIR/dir-to-install/foo"
321try test -e "$PREFIX_DIR/bin/program"
322try test -e "$PREFIX_DIR/bin/program2"
323try test -e "$PREFIX_DIR/bin/bad-bin"
324try test -e "$PREFIX_DIR/bin/cargo"
325try "$WORK_DIR/rust/install.sh --uninstall" --prefix="$PREFIX_DIR"
326try test ! -e "$PREFIX_DIR/something-to-install"
327try test ! -e "$PREFIX_DIR/dir-to-install/foo"
328try test ! -e "$PREFIX_DIR/bin/program"
329try test ! -e "$PREFIX_DIR/bin/program2"
330try test ! -e "$PREFIX_DIR/bin/bad-bin"
331try test ! -e "$PREFIX_DIR/bin/cargo"
332try test ! -e "$PREFIX_DIR/lib/packagelib"
333post
334
335pre "combine three installers"
336try sh "$S/gen-installer.sh" \
337 --image-dir="$TEST_DIR/image1" \
338 --work-dir="$WORK_DIR" \
339 --output-dir="$OUT_DIR" \
340 --package-name=rustc \
341 --component-name=rustc
342try sh "$S/gen-installer.sh" \
343 --image-dir="$TEST_DIR/image3" \
344 --work-dir="$WORK_DIR" \
345 --output-dir="$OUT_DIR" \
346 --verify-bin=cargo \
347 --package-name=cargo \
348 --component-name=cargo
349try sh "$S/gen-installer.sh" \
350 --image-dir="$TEST_DIR/image4" \
351 --work-dir="$WORK_DIR" \
352 --output-dir="$OUT_DIR" \
353 --package-name=rust-docs \
354 --component-name=rust-docs
355try sh "$S/combine-installers.sh" \
356 --work-dir="$WORK_DIR" \
357 --output-dir="$OUT_DIR" \
358 --package-name=rust \
359 --input-tarballs="$OUT_DIR/rustc.tar.gz,$OUT_DIR/cargo.tar.gz,$OUT_DIR/rust-docs.tar.gz"
360try "$WORK_DIR/rust/install.sh" --prefix="$PREFIX_DIR"
361try test -e "$PREFIX_DIR/something-to-install"
362try test -e "$PREFIX_DIR/dir-to-install/foo"
363try test -e "$PREFIX_DIR/bin/program"
364try test -e "$PREFIX_DIR/bin/program2"
365try test -e "$PREFIX_DIR/bin/bad-bin"
366try test -e "$PREFIX_DIR/bin/cargo"
367try test -e "$PREFIX_DIR/dir-to-install/qux/bar"
368try "$WORK_DIR/rust/install.sh --uninstall" --prefix="$PREFIX_DIR"
369try test ! -e "$PREFIX_DIR/something-to-install"
370try test ! -e "$PREFIX_DIR/dir-to-install/foo"
371try test ! -e "$PREFIX_DIR/bin/program"
372try test ! -e "$PREFIX_DIR/bin/program2"
373try test ! -e "$PREFIX_DIR/bin/bad-bin"
374try test ! -e "$PREFIX_DIR/bin/cargo"
375try test ! -e "$PREFIX_DIR/lib/packagelib"
376try test ! -e "$PREFIX_DIR/dir-to-install/qux/bar"
377post
378
379pre "combine installers with overlay"
380try sh "$S/gen-installer.sh" \
381 --image-dir="$TEST_DIR/image1" \
382 --work-dir="$WORK_DIR" \
383 --output-dir="$OUT_DIR" \
384 --package-name=rustc \
385 --component-name=rustc
386try sh "$S/gen-installer.sh" \
387 --image-dir="$TEST_DIR/image3" \
388 --work-dir="$WORK_DIR" \
389 --output-dir="$OUT_DIR" \
390 --verify-bin=cargo \
391 --package-name=cargo \
392 --component-name=cargo
393mkdir -p "$WORK_DIR/overlay"
394touch "$WORK_DIR/overlay/README"
395try sh "$S/combine-installers.sh" \
396 --work-dir="$WORK_DIR" \
397 --output-dir="$OUT_DIR" \
398 --package-name=rust \
399 --input-tarballs="$OUT_DIR/rustc.tar.gz,$OUT_DIR/cargo.tar.gz" \
400 --non-installed-overlay="$WORK_DIR/overlay"
401try test -e "$WORK_DIR/rust/README"
402try "$WORK_DIR/rust/install.sh" --prefix="$PREFIX_DIR"
403try test ! -e "$PREFIX_DIR/README"
404post
405
406pre "combined with bulk dirs"
407try sh "$S/gen-installer.sh" \
408 --image-dir="$TEST_DIR/image1" \
409 --work-dir="$WORK_DIR" \
410 --output-dir="$OUT_DIR" \
411 --package-name=rustc \
412 --component-name=rustc \
413 --bulk-dirs=dir-to-install
414try sh "$S/gen-installer.sh" \
415 --image-dir="$TEST_DIR/image3" \
416 --work-dir="$WORK_DIR" \
417 --output-dir="$OUT_DIR" \
418 --verify-bin=cargo \
419 --package-name=cargo \
420 --component-name=cargo
421try sh "$S/combine-installers.sh" \
422 --work-dir="$WORK_DIR" \
423 --output-dir="$OUT_DIR" \
424 --package-name=rust \
425 --input-tarballs="$OUT_DIR/rustc.tar.gz,$OUT_DIR/cargo.tar.gz"
426try "$WORK_DIR/rust/install.sh" --prefix="$PREFIX_DIR"
427try test -e "$PREFIX_DIR/dir-to-install/foo"
428try "$WORK_DIR/rust/install.sh --uninstall" --prefix="$PREFIX_DIR"
429try test ! -e "$PREFIX_DIR/dir-to-install"
430post
431
432pre "combine install with separate uninstall"
433try sh "$S/gen-installer.sh" \
434 --image-dir="$TEST_DIR/image1" \
435 --work-dir="$WORK_DIR" \
436 --output-dir="$OUT_DIR" \
437 --package-name=rustc \
438 --component-name=rustc \
439 --rel-manifest-dir=rustlib
440try sh "$S/gen-installer.sh" \
441 --image-dir="$TEST_DIR/image3" \
442 --work-dir="$WORK_DIR" \
443 --output-dir="$OUT_DIR" \
444 --verify-bin=cargo \
445 --package-name=cargo \
446 --component-name=cargo \
447 --rel-manifest-dir=rustlib
448try sh "$S/combine-installers.sh" \
449 --work-dir="$WORK_DIR" \
450 --output-dir="$OUT_DIR" \
451 --package-name=rust \
452 --input-tarballs="$OUT_DIR/rustc.tar.gz,$OUT_DIR/cargo.tar.gz" \
453 --rel-manifest-dir=rustlib
454try "$WORK_DIR/rust/install.sh" --prefix="$PREFIX_DIR"
455try test -e "$PREFIX_DIR/something-to-install"
456try test -e "$PREFIX_DIR/dir-to-install/foo"
457try test -e "$PREFIX_DIR/bin/program"
458try test -e "$PREFIX_DIR/bin/program2"
459try test -e "$PREFIX_DIR/bin/bad-bin"
460try test -e "$PREFIX_DIR/bin/cargo"
461try "$WORK_DIR/rustc/install.sh --uninstall" --prefix="$PREFIX_DIR"
462try test ! -e "$PREFIX_DIR/something-to-install"
463try test ! -e "$PREFIX_DIR/dir-to-install/foo"
464try test ! -e "$PREFIX_DIR/bin/program"
465try test ! -e "$PREFIX_DIR/bin/program2"
466try test ! -e "$PREFIX_DIR/bin/bad-bin"
467try "$WORK_DIR/cargo/install.sh --uninstall" --prefix="$PREFIX_DIR"
468try test ! -e "$PREFIX_DIR/bin/cargo"
469try test ! -e "$PREFIX_DIR/lib/packagelib"
470post
471
472pre "combined v1 -> v2 upgrade"
473try sh "$S/gen-installer.sh" \
474 --image-dir="$TEST_DIR/image1" \
475 --work-dir="$WORK_DIR" \
476 --output-dir="$OUT_DIR" \
477 --package-name=rustc \
478 --component-name=rustc \
479 --rel-manifest-dir=rustlib
480try sh "$S/gen-installer.sh" \
481 --image-dir="$TEST_DIR/image3" \
482 --work-dir="$WORK_DIR" \
483 --output-dir="$OUT_DIR" \
484 --verify-bin=cargo \
485 --package-name=cargo \
486 --component-name=cargo \
487 --rel-manifest-dir=rustlib
488try sh "$S/combine-installers.sh" \
489 --work-dir="$WORK_DIR" \
490 --output-dir="$OUT_DIR" \
491 --package-name=rust \
492 --input-tarballs="$OUT_DIR/rustc.tar.gz,$OUT_DIR/cargo.tar.gz" \
493 --rel-manifest-dir=rustlib \
494 --legacy-manifest-dirs=cargo,rustlib
495try sh "$S/test/rust-installer-v1/gen-installer.sh" \
496 --image-dir="$TEST_DIR/image2" \
497 --work-dir="$WORK_DIR/v1" \
498 --output-dir="$OUT_DIR/v1" \
499 --verify-bin=oldprogram \
500 --rel-manifest-dir=rustlib
501try sh "$S/test/rust-installer-v1/gen-installer.sh" \
502 --image-dir="$TEST_DIR/image3" \
503 --work-dir="$WORK_DIR/v1b" \
504 --output-dir="$OUT_DIR/v1b" \
505 --verify-bin=cargo \
506 --rel-manifest-dir=cargo
507try "$WORK_DIR/v1/package//install.sh" --prefix="$PREFIX_DIR"
508try "$WORK_DIR/v1b/package//install.sh" --prefix="$PREFIX_DIR"
509try "$WORK_DIR/rust/install.sh" --prefix="$PREFIX_DIR"
510try test ! -e "$PREFIX_DIR/dir-to-install/bar"
511try test ! -e "$PREFIX_DIR/bin/oldprogram"
512try test ! -e "$PREFIX_DIR/lib/cargo"
513try test -e "$PREFIX_DIR/something-to-install"
514try test -e "$PREFIX_DIR/dir-to-install/foo"
515try test -e "$PREFIX_DIR/bin/program"
516try test -e "$PREFIX_DIR/bin/program2"
517try test -e "$PREFIX_DIR/bin/bad-bin"
518try test -e "$PREFIX_DIR/bin/cargo"
519try test -e "$PREFIX_DIR/lib/rustlib"
520try "$WORK_DIR/rust/install.sh --uninstall" --prefix="$PREFIX_DIR"
521try test ! -e "$PREFIX_DIR/something-to-install"
522try test ! -e "$PREFIX_DIR/dir-to-install/foo"
523try test ! -e "$PREFIX_DIR/bin/program"
524try test ! -e "$PREFIX_DIR/bin/program2"
525try test ! -e "$PREFIX_DIR/bin/bad-bin"
526try test ! -e "$PREFIX_DIR/bin/cargo"
527try test ! -e "$PREFIX_DIR/lib/rustlib"
528post
529
530# Smoke tests
531
532pre "can't run bins error"
533try sh "$S/gen-installer.sh" \
534 --verify-bin=bad-bin \
535 --image-dir="$TEST_DIR/image1" \
536 --work-dir="$WORK_DIR" \
537 --output-dir="$OUT_DIR"
538expect_fail "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
539post
540
541if [ ! -n "$WINDOWS" ]; then
542 # chmod doesn't work on windows
543 pre "can't write error"
544 try sh "$S/gen-installer.sh" \
545 --image-dir="$TEST_DIR/image1" \
546 --work-dir="$WORK_DIR" \
547 --output-dir="$OUT_DIR"
548 chmod u-w "$PREFIX_DIR"
549 expect_fail "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
550 chmod u+w "$PREFIX_DIR"
551 post
552fi
553
554pre "can't install to installer"
555try sh "$S/gen-installer.sh" \
556 --image-dir="$TEST_DIR/image1" \
557 --work-dir="$WORK_DIR" \
558 --output-dir="$OUT_DIR" \
559 --package-name=my-package
560expect_fail "$WORK_DIR/my-package/install.sh" --prefix="$WORK_DIR/my-package"
561post
562
563pre "upgrade from future installer error"
564try sh "$S/gen-installer.sh" \
565 --image-dir="$TEST_DIR/image1" \
566 --work-dir="$WORK_DIR" \
567 --output-dir="$OUT_DIR" \
568 --rel-manifest-dir=rustlib
569try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
570echo 100 > "$PREFIX_DIR/lib/rustlib/rust-installer-version"
571expect_fail "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
572post
573
574pre "disable-verify"
575try sh "$S/gen-installer.sh" \
576 --verify-bin=bad-bin \
577 --image-dir="$TEST_DIR/image1" \
578 --work-dir="$WORK_DIR" \
579 --output-dir="$OUT_DIR"
580try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR" --disable-verify
581post
582
583# TODO: DESTDIR
584# TODO: mandir/libdir/bindir, etc.
585
586echo
587echo "TOTAL SUCCESS!"
588echo