Merge pull request #18 from japaric/ppc64le

CI: test powerpc64le-unknown-linux-gnu
master
Jorge Aparicio 2016-08-08 21:57:32 -05:00 committed by GitHub
commit 7e04b20c48
4 changed files with 73 additions and 11 deletions

View File

@ -60,6 +60,10 @@ matrix:
- libc6-powerpc-cross - libc6-powerpc-cross
- libc6-dev-powerpc-cross - libc6-dev-powerpc-cross
- qemu-user-static - qemu-user-static
- env: TARGET=powerpc64le-unknown-linux-gnu
os: linux
services: docker
sudo: required
- env: TARGET=x86_64-apple-darwin - env: TARGET=x86_64-apple-darwin
os: osx os: osx
- env: TARGET=x86_64-unknown-linux-gnu - env: TARGET=x86_64-unknown-linux-gnu
@ -68,6 +72,9 @@ matrix:
# FIXME(#2) # FIXME(#2)
- env: TARGET=armv7-unknown-linux-gnueabihf - env: TARGET=armv7-unknown-linux-gnueabihf
os: linux os: linux
# FIXME QEMU blows up
- env: TARGET=powerpc64le-unknown-linux-gnu
os: linux
before_install: before_install:
- export PATH="$PATH:$HOME/.cargo/bin" - export PATH="$PATH:$HOME/.cargo/bin"

View File

@ -28,4 +28,13 @@ case $TARGET in
export PREFIX=powerpc-linux-gnu- export PREFIX=powerpc-linux-gnu-
export QEMU_LD_PREFIX=/usr/powerpc-linux-gnu export QEMU_LD_PREFIX=/usr/powerpc-linux-gnu
;; ;;
powerpc64le-unknown-linux-gnu)
# NOTE $DOCKER values: 'y' (yes, call docker), 'i' (inside a docker container) or 'n' ("no)
if [[ -z $DOCKER ]]; then
export DOCKER=y
fi
export PREFIX=powerpc64le-linux-gnu-
export QEMU=qemu-ppc64le
export QEMU_LD_PREFIX=/usr/powerpc64le-linux-gnu
;;
esac esac

View File

@ -2,6 +2,23 @@ set -ex
. $(dirname $0)/env.sh . $(dirname $0)/env.sh
install_deps() {
if [[ ${DOCKER} == "i" ]]; then
apt-get update
apt-get install -y --no-install-recommends \
ca-certificates curl
fi
}
install_qemu() {
case $TARGET in
powerpc64le-unknown-linux-gnu)
apt-get install -y --no-install-recommends \
qemu-user
;;
esac
}
install_binutils() { install_binutils() {
case $TRAVIS_OS_NAME in case $TRAVIS_OS_NAME in
osx) osx)
@ -16,7 +33,11 @@ install_c_toolchain() {
case $TARGET in case $TARGET in
aarch64-unknown-linux-gnu) aarch64-unknown-linux-gnu)
sudo apt-get install -y --no-install-recommends \ sudo apt-get install -y --no-install-recommends \
gcc-aarch64-linux-gnu libc6-arm64-cross libc6-dev-arm64-cross gcc-aarch64-linux-gnu libc6-dev-arm64-cross
;;
powerpc64le-unknown-linux-gnu)
apt-get install -y --no-install-recommends \
gcc-powerpc64le-linux-gnu libc6-dev-ppc64el-cross
;; ;;
*) *)
;; ;;
@ -49,11 +70,15 @@ EOF
} }
main() { main() {
install_binutils if [[ ${DOCKER:-n} != "y" ]]; then
install_c_toolchain install_deps
install_rust install_qemu
add_rustup_target install_binutils
configure_cargo install_c_toolchain
install_rust
add_rustup_target
configure_cargo
fi
} }
main main

View File

@ -12,8 +12,15 @@ run_tests() {
export RUST_TEST_THREADS=1 export RUST_TEST_THREADS=1
fi fi
cargo test --target $TARGET if [[ $QEMU ]]; then
cargo test --target $TARGET --release cargo test --target $TARGET --no-run
$QEMU target/**/debug/rustc_builtins-*
cargo test --target $TARGET --release --no-run
$QEMU target/**/release/rustc_builtins-*
else
cargo test --target $TARGET
cargo test --target $TARGET --release
fi
} }
inspect() { inspect() {
@ -25,9 +32,23 @@ inspect() {
} }
main() { main() {
build if [[ $DOCKER == "y" ]]; then
run_tests docker run \
inspect -e DOCKER=i \
-e TARGET=$TARGET \
-e TRAVIS_OS_NAME=$TRAVIS_OS_NAME \
-v $(pwd):/mnt \
ubuntu:16.04 \
sh -c 'set -ex;
cd /mnt;
export PATH="$PATH:$HOME/.cargo/bin";
bash ci/install.sh;
bash ci/script.sh'
else
build
run_tests
inspect
fi
} }
main main