script.sh 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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. if [[ -z $DONT_RUN_TESTS ]]; then
  14. $QEMU target/**/debug/rustc_builtins-*
  15. fi
  16. cargo test --target $TARGET --release --no-run
  17. if [[ -z $DONT_RUN_TESTS ]]; then
  18. $QEMU target/**/release/rustc_builtins-*
  19. fi
  20. else if [[ -z $DONT_RUN_TESTS ]]; then
  21. cargo test --target $TARGET
  22. cargo test --target $TARGET --release
  23. fi
  24. }
  25. inspect() {
  26. $PREFIX$NM -g --defined-only target/**/debug/*.rlib
  27. set +e
  28. $PREFIX$OBJDUMP -Cd target/**/debug/*.rlib
  29. $PREFIX$OBJDUMP -Cd target/**/release/*.rlib
  30. set -e
  31. }
  32. main() {
  33. if [[ $DOCKER == "y" ]]; then
  34. docker run \
  35. -e DOCKER=i \
  36. -e TARGET=$TARGET \
  37. -e TRAVIS_OS_NAME=$TRAVIS_OS_NAME \
  38. -v $(pwd):/mnt \
  39. ubuntu:16.04 \
  40. sh -c 'set -ex;
  41. cd /mnt;
  42. export PATH="$PATH:$HOME/.cargo/bin";
  43. bash ci/install.sh;
  44. bash ci/script.sh'
  45. else
  46. build
  47. run_tests
  48. inspect
  49. fi
  50. }
  51. main