mirror of
https://git.proxmox.com/git/rustc
synced 2026-01-17 15:16:42 +00:00
589 lines
18 KiB
Bash
Executable File
589 lines
18 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
S="$(cd $(dirname $0) && pwd)"
|
|
|
|
TEST_DIR="$S/test"
|
|
TMP_DIR="$S/tmp"
|
|
WORK_DIR="$TMP_DIR/workdir"
|
|
OUT_DIR="$TMP_DIR/outdir"
|
|
PREFIX_DIR="$TMP_DIR/prefix"
|
|
|
|
case $(uname -s) in
|
|
|
|
MINGW* | MSYS*)
|
|
WINDOWS=1
|
|
;;
|
|
esac
|
|
|
|
pre() {
|
|
echo
|
|
echo "test: $1"
|
|
echo
|
|
rm -Rf "$WORK_DIR"
|
|
rm -Rf "$OUT_DIR"
|
|
rm -Rf "$PREFIX_DIR"
|
|
mkdir -p "$WORK_DIR"
|
|
mkdir -p "$OUT_DIR"
|
|
mkdir -p "$PREFIX_DIR"
|
|
}
|
|
|
|
post() {
|
|
rm -Rf "$WORK_DIR"
|
|
rm -Rf "$OUT_DIR"
|
|
rm -Rf "$PREFIX_DIR"
|
|
}
|
|
|
|
need_ok() {
|
|
if [ $? -ne 0 ]
|
|
then
|
|
echo
|
|
echo "TEST FAILED!"
|
|
echo
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
try() {
|
|
cmd="$@"
|
|
echo \$ "$cmd"
|
|
OUTPUT=`$@`
|
|
if [ $? -ne 0 ]; then
|
|
echo
|
|
# Using /bin/echo to avoid escaping
|
|
/bin/echo "$OUTPUT"
|
|
echo
|
|
echo "TEST FAILED!"
|
|
echo
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
expect_fail() {
|
|
cmd="$@"
|
|
echo \$ "$cmd"
|
|
OUTPUT=`$@`
|
|
if [ $? -eq 0 ]; then
|
|
echo
|
|
# Using /bin/echo to avoid escaping
|
|
/bin/echo "$OUTPUT"
|
|
echo
|
|
echo "TEST FAILED!"
|
|
echo
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# Installation tests
|
|
|
|
pre "basic install"
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image1" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR"
|
|
try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
|
|
try test -e "$PREFIX_DIR/something-to-install"
|
|
try test -e "$PREFIX_DIR/dir-to-install/foo"
|
|
try test -e "$PREFIX_DIR/bin/program"
|
|
try test -e "$PREFIX_DIR/bin/program2"
|
|
try test -e "$PREFIX_DIR/bin/bad-bin"
|
|
post
|
|
|
|
pre "basic uninstall"
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image1" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR"
|
|
try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
|
|
try "$WORK_DIR/package/install.sh --uninstall" --prefix="$PREFIX_DIR"
|
|
try test ! -e "$PREFIX_DIR/something-to-install"
|
|
try test ! -e "$PREFIX_DIR/dir-to-install/foo"
|
|
try test ! -e "$PREFIX_DIR/bin/program"
|
|
try test ! -e "$PREFIX_DIR/bin/program2"
|
|
try test ! -e "$PREFIX_DIR/bin/bad-bin"
|
|
try test ! -e "$PREFIX_DIR/lib/packagelib"
|
|
post
|
|
|
|
pre "not installed files"
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image1" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--non-installed-prefixes=something-to-not-install,dir-to-not-install
|
|
try test -e "$WORK_DIR/package/something-to-not-install"
|
|
try test -e "$WORK_DIR/package/dir-to-not-install"
|
|
try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
|
|
try test ! -e "$PREFIX_DIR/something-to-not-install"
|
|
try test ! -e "$PREFIX_DIR/dir-to-not-install"
|
|
post
|
|
|
|
pre "verify override"
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image1" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--verify-bin=program2
|
|
try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
|
|
post
|
|
|
|
pre "tarball with package name"
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image1" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--package-name=rustc-nightly
|
|
try "$WORK_DIR/rustc-nightly/install.sh" --prefix="$PREFIX_DIR"
|
|
try test -e "$OUT_DIR/rustc-nightly.tar.gz"
|
|
post
|
|
|
|
pre "bulk directory"
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image1" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--bulk-dirs=dir-to-install
|
|
try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
|
|
try test -e "$PREFIX_DIR/something-to-install"
|
|
try test -e "$PREFIX_DIR/dir-to-install/foo"
|
|
try test -e "$PREFIX_DIR/bin/program"
|
|
try test -e "$PREFIX_DIR/bin/program2"
|
|
try test -e "$PREFIX_DIR/bin/bad-bin"
|
|
try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR" --uninstall
|
|
try test ! -e "$PREFIX_DIR/dir-to-install"
|
|
post
|
|
|
|
pre "nested bulk directory"
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image4" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--bulk-dirs=dir-to-install/qux
|
|
try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
|
|
try test -e "$PREFIX_DIR/dir-to-install/qux/bar"
|
|
try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR" --uninstall
|
|
try test ! -e "$PREFIX_DIR/dir-to-install/qux"
|
|
post
|
|
|
|
pre "only bulk directory, no files"
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image5" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--bulk-dirs=dir-to-install
|
|
try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
|
|
try test -e "$PREFIX_DIR/dir-to-install/foo"
|
|
try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR" --uninstall
|
|
try test ! -e "$PREFIX_DIR/dir-to-install/foo"
|
|
post
|
|
|
|
pre "nested not installed files"
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image4" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--non-installed-prefixes=dir-to-install/qux/bar
|
|
try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
|
|
try test ! -e "$PREFIX_DIR/dir-to-install/qux/bar"
|
|
post
|
|
|
|
# Upgrade tests
|
|
|
|
pre "upgrade v1 -> v2"
|
|
mkdir "$WORK_DIR/v1"
|
|
try sh "$S/test/rust-installer-v1/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image2" \
|
|
--work-dir="$WORK_DIR/v1" \
|
|
--output-dir="$OUT_DIR/v1" \
|
|
--verify-bin=oldprogram \
|
|
--rel-manifest-dir=packagelib
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image1" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--rel-manifest-dir=packagelib \
|
|
--legacy-manifest-dirs=packagelib
|
|
try "$WORK_DIR/v1/package/install.sh" --prefix="$PREFIX_DIR"
|
|
try test -e "$PREFIX_DIR/something-to-install"
|
|
try test -e "$PREFIX_DIR/dir-to-install/bar"
|
|
try test -e "$PREFIX_DIR/bin/oldprogram"
|
|
try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
|
|
try test ! -e "$PREFIX_DIR/dir-to-install/bar"
|
|
try test ! -e "$PREFIX_DIR/bin/oldprogram"
|
|
try test -e "$PREFIX_DIR/something-to-install"
|
|
try test -e "$PREFIX_DIR/dir-to-install/foo"
|
|
try test -e "$PREFIX_DIR/bin/program"
|
|
try test -e "$PREFIX_DIR/bin/program2"
|
|
try test -e "$PREFIX_DIR/bin/bad-bin"
|
|
try "$WORK_DIR/package/install.sh --uninstall" --prefix="$PREFIX_DIR"
|
|
try test ! -e "$PREFIX_DIR/something-to-install"
|
|
try test ! -e "$PREFIX_DIR/dir-to-install/foo"
|
|
try test ! -e "$PREFIX_DIR/bin/program"
|
|
try test ! -e "$PREFIX_DIR/bin/program2"
|
|
try test ! -e "$PREFIX_DIR/bin/bad-bin"
|
|
try test ! -e "$PREFIX_DIR/lib/packagelib"
|
|
post
|
|
|
|
pre "upgrade v1 -> v2 with multiple legacy manifests"
|
|
mkdir "$WORK_DIR/v1"
|
|
try sh "$S/test/rust-installer-v1/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image2" \
|
|
--work-dir="$WORK_DIR/v1" \
|
|
--output-dir="$OUT_DIR/v1" \
|
|
--verify-bin=oldprogram \
|
|
--rel-manifest-dir=rustlib
|
|
try sh "$S/test/rust-installer-v1/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image3" \
|
|
--work-dir="$WORK_DIR/v1b" \
|
|
--output-dir="$OUT_DIR/v1b" \
|
|
--verify-bin=cargo \
|
|
--rel-manifest-dir=cargo
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image1" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--rel-manifest-dir=packagelib \
|
|
--legacy-manifest-dirs=rustlib,cargo
|
|
try "$WORK_DIR/v1/package/install.sh" --prefix="$PREFIX_DIR"
|
|
try "$WORK_DIR/v1b/package/install.sh" --prefix="$PREFIX_DIR"
|
|
try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
|
|
try test ! -e "$PREFIX_DIR/dir-to-install/bar"
|
|
try test ! -e "$PREFIX_DIR/bin/oldprogram"
|
|
try test ! -e "$PREFIX_DIR/bin/cargo"
|
|
try test ! -e "$PREFIX_DIR/lib/cargo"
|
|
try test -e "$PREFIX_DIR/something-to-install"
|
|
try test -e "$PREFIX_DIR/dir-to-install/foo"
|
|
try test -e "$PREFIX_DIR/bin/program"
|
|
try test -e "$PREFIX_DIR/bin/program2"
|
|
try test -e "$PREFIX_DIR/bin/bad-bin"
|
|
try "$WORK_DIR/package/install.sh --uninstall" --prefix="$PREFIX_DIR"
|
|
try test ! -e "$PREFIX_DIR/something-to-install"
|
|
try test ! -e "$PREFIX_DIR/dir-to-install/foo"
|
|
try test ! -e "$PREFIX_DIR/bin/program"
|
|
try test ! -e "$PREFIX_DIR/bin/program2"
|
|
try test ! -e "$PREFIX_DIR/bin/bad-bin"
|
|
try test ! -e "$PREFIX_DIR/lib/packagelib"
|
|
post
|
|
|
|
pre "multiple components"
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image1" \
|
|
--work-dir="$WORK_DIR/c1" \
|
|
--output-dir="$OUT_DIR/c1" \
|
|
--component-name=rustc
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image3" \
|
|
--work-dir="$WORK_DIR/c2" \
|
|
--output-dir="$OUT_DIR/c2" \
|
|
--verify-bin=cargo \
|
|
--component-name=cargo
|
|
try "$WORK_DIR/c1/package/install.sh" --prefix="$PREFIX_DIR"
|
|
try "$WORK_DIR/c2/package/install.sh" --prefix="$PREFIX_DIR"
|
|
try test -e "$PREFIX_DIR/something-to-install"
|
|
try test -e "$PREFIX_DIR/dir-to-install/foo"
|
|
try test -e "$PREFIX_DIR/bin/program"
|
|
try test -e "$PREFIX_DIR/bin/program2"
|
|
try test -e "$PREFIX_DIR/bin/bad-bin"
|
|
try test -e "$PREFIX_DIR/bin/cargo"
|
|
try "$WORK_DIR/c1/package/install.sh" --prefix="$PREFIX_DIR" --uninstall
|
|
try test ! -e "$PREFIX_DIR/something-to-install"
|
|
try test ! -e "$PREFIX_DIR/dir-to-install/foo"
|
|
try test ! -e "$PREFIX_DIR/bin/program"
|
|
try test ! -e "$PREFIX_DIR/bin/program2"
|
|
try test ! -e "$PREFIX_DIR/bin/bad-bin"
|
|
try "$WORK_DIR/c2/package/install.sh" --prefix="$PREFIX_DIR" --uninstall
|
|
try test ! -e "$PREFIX_DIR/bin/cargo"
|
|
try test ! -e "$PREFIX_DIR/lib/packagelib"
|
|
post
|
|
|
|
# Combined installer tests
|
|
|
|
pre "combine installers"
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image1" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--package-name=rustc \
|
|
--component-name=rustc
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image3" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--verify-bin=cargo \
|
|
--package-name=cargo \
|
|
--component-name=cargo
|
|
try sh "$S/combine-installers.sh" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--package-name=rust \
|
|
--input-tarballs="$OUT_DIR/rustc.tar.gz,$OUT_DIR/cargo.tar.gz"
|
|
try "$WORK_DIR/rust/install.sh" --prefix="$PREFIX_DIR"
|
|
try test -e "$PREFIX_DIR/something-to-install"
|
|
try test -e "$PREFIX_DIR/dir-to-install/foo"
|
|
try test -e "$PREFIX_DIR/bin/program"
|
|
try test -e "$PREFIX_DIR/bin/program2"
|
|
try test -e "$PREFIX_DIR/bin/bad-bin"
|
|
try test -e "$PREFIX_DIR/bin/cargo"
|
|
try "$WORK_DIR/rust/install.sh --uninstall" --prefix="$PREFIX_DIR"
|
|
try test ! -e "$PREFIX_DIR/something-to-install"
|
|
try test ! -e "$PREFIX_DIR/dir-to-install/foo"
|
|
try test ! -e "$PREFIX_DIR/bin/program"
|
|
try test ! -e "$PREFIX_DIR/bin/program2"
|
|
try test ! -e "$PREFIX_DIR/bin/bad-bin"
|
|
try test ! -e "$PREFIX_DIR/bin/cargo"
|
|
try test ! -e "$PREFIX_DIR/lib/packagelib"
|
|
post
|
|
|
|
pre "combine three installers"
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image1" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--package-name=rustc \
|
|
--component-name=rustc
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image3" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--verify-bin=cargo \
|
|
--package-name=cargo \
|
|
--component-name=cargo
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image4" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--package-name=rust-docs \
|
|
--component-name=rust-docs
|
|
try sh "$S/combine-installers.sh" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--package-name=rust \
|
|
--input-tarballs="$OUT_DIR/rustc.tar.gz,$OUT_DIR/cargo.tar.gz,$OUT_DIR/rust-docs.tar.gz"
|
|
try "$WORK_DIR/rust/install.sh" --prefix="$PREFIX_DIR"
|
|
try test -e "$PREFIX_DIR/something-to-install"
|
|
try test -e "$PREFIX_DIR/dir-to-install/foo"
|
|
try test -e "$PREFIX_DIR/bin/program"
|
|
try test -e "$PREFIX_DIR/bin/program2"
|
|
try test -e "$PREFIX_DIR/bin/bad-bin"
|
|
try test -e "$PREFIX_DIR/bin/cargo"
|
|
try test -e "$PREFIX_DIR/dir-to-install/qux/bar"
|
|
try "$WORK_DIR/rust/install.sh --uninstall" --prefix="$PREFIX_DIR"
|
|
try test ! -e "$PREFIX_DIR/something-to-install"
|
|
try test ! -e "$PREFIX_DIR/dir-to-install/foo"
|
|
try test ! -e "$PREFIX_DIR/bin/program"
|
|
try test ! -e "$PREFIX_DIR/bin/program2"
|
|
try test ! -e "$PREFIX_DIR/bin/bad-bin"
|
|
try test ! -e "$PREFIX_DIR/bin/cargo"
|
|
try test ! -e "$PREFIX_DIR/lib/packagelib"
|
|
try test ! -e "$PREFIX_DIR/dir-to-install/qux/bar"
|
|
post
|
|
|
|
pre "combine installers with overlay"
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image1" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--package-name=rustc \
|
|
--component-name=rustc
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image3" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--verify-bin=cargo \
|
|
--package-name=cargo \
|
|
--component-name=cargo
|
|
mkdir -p "$WORK_DIR/overlay"
|
|
touch "$WORK_DIR/overlay/README"
|
|
try sh "$S/combine-installers.sh" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--package-name=rust \
|
|
--input-tarballs="$OUT_DIR/rustc.tar.gz,$OUT_DIR/cargo.tar.gz" \
|
|
--non-installed-overlay="$WORK_DIR/overlay"
|
|
try test -e "$WORK_DIR/rust/README"
|
|
try "$WORK_DIR/rust/install.sh" --prefix="$PREFIX_DIR"
|
|
try test ! -e "$PREFIX_DIR/README"
|
|
post
|
|
|
|
pre "combined with bulk dirs"
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image1" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--package-name=rustc \
|
|
--component-name=rustc \
|
|
--bulk-dirs=dir-to-install
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image3" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--verify-bin=cargo \
|
|
--package-name=cargo \
|
|
--component-name=cargo
|
|
try sh "$S/combine-installers.sh" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--package-name=rust \
|
|
--input-tarballs="$OUT_DIR/rustc.tar.gz,$OUT_DIR/cargo.tar.gz"
|
|
try "$WORK_DIR/rust/install.sh" --prefix="$PREFIX_DIR"
|
|
try test -e "$PREFIX_DIR/dir-to-install/foo"
|
|
try "$WORK_DIR/rust/install.sh --uninstall" --prefix="$PREFIX_DIR"
|
|
try test ! -e "$PREFIX_DIR/dir-to-install"
|
|
post
|
|
|
|
pre "combine install with separate uninstall"
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image1" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--package-name=rustc \
|
|
--component-name=rustc \
|
|
--rel-manifest-dir=rustlib
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image3" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--verify-bin=cargo \
|
|
--package-name=cargo \
|
|
--component-name=cargo \
|
|
--rel-manifest-dir=rustlib
|
|
try sh "$S/combine-installers.sh" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--package-name=rust \
|
|
--input-tarballs="$OUT_DIR/rustc.tar.gz,$OUT_DIR/cargo.tar.gz" \
|
|
--rel-manifest-dir=rustlib
|
|
try "$WORK_DIR/rust/install.sh" --prefix="$PREFIX_DIR"
|
|
try test -e "$PREFIX_DIR/something-to-install"
|
|
try test -e "$PREFIX_DIR/dir-to-install/foo"
|
|
try test -e "$PREFIX_DIR/bin/program"
|
|
try test -e "$PREFIX_DIR/bin/program2"
|
|
try test -e "$PREFIX_DIR/bin/bad-bin"
|
|
try test -e "$PREFIX_DIR/bin/cargo"
|
|
try "$WORK_DIR/rustc/install.sh --uninstall" --prefix="$PREFIX_DIR"
|
|
try test ! -e "$PREFIX_DIR/something-to-install"
|
|
try test ! -e "$PREFIX_DIR/dir-to-install/foo"
|
|
try test ! -e "$PREFIX_DIR/bin/program"
|
|
try test ! -e "$PREFIX_DIR/bin/program2"
|
|
try test ! -e "$PREFIX_DIR/bin/bad-bin"
|
|
try "$WORK_DIR/cargo/install.sh --uninstall" --prefix="$PREFIX_DIR"
|
|
try test ! -e "$PREFIX_DIR/bin/cargo"
|
|
try test ! -e "$PREFIX_DIR/lib/packagelib"
|
|
post
|
|
|
|
pre "combined v1 -> v2 upgrade"
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image1" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--package-name=rustc \
|
|
--component-name=rustc \
|
|
--rel-manifest-dir=rustlib
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image3" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--verify-bin=cargo \
|
|
--package-name=cargo \
|
|
--component-name=cargo \
|
|
--rel-manifest-dir=rustlib
|
|
try sh "$S/combine-installers.sh" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--package-name=rust \
|
|
--input-tarballs="$OUT_DIR/rustc.tar.gz,$OUT_DIR/cargo.tar.gz" \
|
|
--rel-manifest-dir=rustlib \
|
|
--legacy-manifest-dirs=cargo,rustlib
|
|
try sh "$S/test/rust-installer-v1/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image2" \
|
|
--work-dir="$WORK_DIR/v1" \
|
|
--output-dir="$OUT_DIR/v1" \
|
|
--verify-bin=oldprogram \
|
|
--rel-manifest-dir=rustlib
|
|
try sh "$S/test/rust-installer-v1/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image3" \
|
|
--work-dir="$WORK_DIR/v1b" \
|
|
--output-dir="$OUT_DIR/v1b" \
|
|
--verify-bin=cargo \
|
|
--rel-manifest-dir=cargo
|
|
try "$WORK_DIR/v1/package//install.sh" --prefix="$PREFIX_DIR"
|
|
try "$WORK_DIR/v1b/package//install.sh" --prefix="$PREFIX_DIR"
|
|
try "$WORK_DIR/rust/install.sh" --prefix="$PREFIX_DIR"
|
|
try test ! -e "$PREFIX_DIR/dir-to-install/bar"
|
|
try test ! -e "$PREFIX_DIR/bin/oldprogram"
|
|
try test ! -e "$PREFIX_DIR/lib/cargo"
|
|
try test -e "$PREFIX_DIR/something-to-install"
|
|
try test -e "$PREFIX_DIR/dir-to-install/foo"
|
|
try test -e "$PREFIX_DIR/bin/program"
|
|
try test -e "$PREFIX_DIR/bin/program2"
|
|
try test -e "$PREFIX_DIR/bin/bad-bin"
|
|
try test -e "$PREFIX_DIR/bin/cargo"
|
|
try test -e "$PREFIX_DIR/lib/rustlib"
|
|
try "$WORK_DIR/rust/install.sh --uninstall" --prefix="$PREFIX_DIR"
|
|
try test ! -e "$PREFIX_DIR/something-to-install"
|
|
try test ! -e "$PREFIX_DIR/dir-to-install/foo"
|
|
try test ! -e "$PREFIX_DIR/bin/program"
|
|
try test ! -e "$PREFIX_DIR/bin/program2"
|
|
try test ! -e "$PREFIX_DIR/bin/bad-bin"
|
|
try test ! -e "$PREFIX_DIR/bin/cargo"
|
|
try test ! -e "$PREFIX_DIR/lib/rustlib"
|
|
post
|
|
|
|
# Smoke tests
|
|
|
|
pre "can't run bins error"
|
|
try sh "$S/gen-installer.sh" \
|
|
--verify-bin=bad-bin \
|
|
--image-dir="$TEST_DIR/image1" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR"
|
|
expect_fail "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
|
|
post
|
|
|
|
if [ ! -n "$WINDOWS" ]; then
|
|
# chmod doesn't work on windows
|
|
pre "can't write error"
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image1" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR"
|
|
chmod u-w "$PREFIX_DIR"
|
|
expect_fail "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
|
|
chmod u+w "$PREFIX_DIR"
|
|
post
|
|
fi
|
|
|
|
pre "can't install to installer"
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image1" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--package-name=my-package
|
|
expect_fail "$WORK_DIR/my-package/install.sh" --prefix="$WORK_DIR/my-package"
|
|
post
|
|
|
|
pre "upgrade from future installer error"
|
|
try sh "$S/gen-installer.sh" \
|
|
--image-dir="$TEST_DIR/image1" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR" \
|
|
--rel-manifest-dir=rustlib
|
|
try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
|
|
echo 100 > "$PREFIX_DIR/lib/rustlib/rust-installer-version"
|
|
expect_fail "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR"
|
|
post
|
|
|
|
pre "disable-verify"
|
|
try sh "$S/gen-installer.sh" \
|
|
--verify-bin=bad-bin \
|
|
--image-dir="$TEST_DIR/image1" \
|
|
--work-dir="$WORK_DIR" \
|
|
--output-dir="$OUT_DIR"
|
|
try "$WORK_DIR/package/install.sh" --prefix="$PREFIX_DIR" --disable-verify
|
|
post
|
|
|
|
# TODO: DESTDIR
|
|
# TODO: mandir/libdir/bindir, etc.
|
|
|
|
echo
|
|
echo "TOTAL SUCCESS!"
|
|
echo
|