script.sh 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. set -ex
  2. . $(dirname $0)/env.sh
  3. build() {
  4. cargo build --target $TARGET
  5. cargo build --target $TARGET --release
  6. }
  7. run_tests() {
  8. if [[ $QEMU_LD_PREFIX ]]; then
  9. export RUST_TEST_THREADS=1
  10. fi
  11. if [[ $QEMU ]]; then
  12. cargo test --target $TARGET --no-run
  13. $QEMU target/**/debug/rustc_builtins-*
  14. cargo test --target $TARGET --release --no-run
  15. $QEMU target/**/release/rustc_builtins-*
  16. else
  17. cargo test --target $TARGET
  18. cargo test --target $TARGET --release
  19. fi
  20. }
  21. inspect() {
  22. $PREFIX$NM -g --defined-only target/**/debug/*.rlib
  23. set +e
  24. $PREFIX$OBJDUMP -Cd target/**/debug/*.rlib
  25. $PREFIX$OBJDUMP -Cd target/**/release/*.rlib
  26. set -e
  27. }
  28. main() {
  29. if [[ $DOCKER == "y" ]]; then
  30. docker run \
  31. -e DOCKER=i \
  32. -e TARGET=$TARGET \
  33. -e TRAVIS_OS_NAME=$TRAVIS_OS_NAME \
  34. -v $(pwd):/mnt \
  35. ubuntu:16.04 \
  36. sh -c 'set -ex;
  37. cd /mnt;
  38. export PATH="$PATH:$HOME/.cargo/bin";
  39. bash ci/install.sh;
  40. bash ci/script.sh'
  41. else
  42. build
  43. run_tests
  44. inspect
  45. fi
  46. }
  47. main