lexical 5.2.0

Lexical, to- and from-string conversion routines.
Documentation
# Travis configurations are partially derived from trust.
# See ci/README.md for license information.

dist: xenial
language: rust
services: docker
sudo: required

addons:
  apt:
    update: true
    sources:
    - deadsnakes

matrix:
  include:
    - rust: stable
      env: TARGET=x86_64-unknown-linux-gnu ENABLE_FFI_TESTS=1 ENABLE_DERIVE_TESTS=1

    - rust: beta
      env: TARGET=x86_64-unknown-linux-gnu

    - rust: nightly
      env: TARGET=x86_64-unknown-linux-gnu NO_STD=1

    # All tests should work.
    - rust: 1.37.0
      env: TARGET=x86_64-unknown-linux-gnu

    - rust: 1.38.0
      env: TARGET=x86_64-unknown-linux-gnu

    - rust: 1.39.0
      env: TARGET=x86_64-unknown-linux-gnu

    # Android
    - env: TARGET=aarch64-linux-android DISABLE_TESTS=1
    - env: TARGET=arm-linux-androideabi DISABLE_TESTS=1
    - env: TARGET=armv7-linux-androideabi DISABLE_TESTS=1
    - env: TARGET=i686-linux-android DISABLE_TESTS=1
    - env: TARGET=x86_64-linux-android DISABLE_TESTS=1

    # iOS
    - env: TARGET=aarch64-apple-ios DISABLE_TESTS=1
      os: osx
    - env: TARGET=armv7-apple-ios DISABLE_TESTS=1
      os: osx
    - env: TARGET=armv7s-apple-ios DISABLE_TESTS=1
      os: osx
    - env: TARGET=i386-apple-ios DISABLE_TESTS=1
      os: osx
    - env: TARGET=x86_64-apple-ios DISABLE_TESTS=1
      os: osx

    # Linux
    # All of the following fail to compile benches due to an issue
    # with the binary format (ELF) and relocations in the bench binary.
    # Every test, except for i686-unknown-linux-musl, fails on the benches.
    - env: TARGET=aarch64-unknown-linux-gnu DISABLE_BENCHES=1
    - env: TARGET=arm-unknown-linux-gnueabi DISABLE_BENCHES=1
    - env: TARGET=armv7-unknown-linux-gnueabihf DISABLE_BENCHES=1
    - env: TARGET=i686-unknown-linux-gnu DISABLE_BENCHES=1
    - env: TARGET=i686-unknown-linux-musl
    - env: TARGET=mips-unknown-linux-gnu DISABLE_BENCHES=1
    - env: TARGET=mips64-unknown-linux-gnuabi64 DISABLE_BENCHES=1
    - env: TARGET=mips64el-unknown-linux-gnuabi64 DISABLE_BENCHES=1
    - env: TARGET=mipsel-unknown-linux-gnu DISABLE_BENCHES=1
    - env: TARGET=powerpc-unknown-linux-gnu DISABLE_BENCHES=1
    - env: TARGET=powerpc64-unknown-linux-gnu DISABLE_BENCHES=1
    - env: TARGET=powerpc64le-unknown-linux-gnu DISABLE_BENCHES=1
    - env: TARGET=s390x-unknown-linux-gnu DISABLE_TESTS=1
    - env: TARGET=x86_64-unknown-linux-gnu DISABLE_BENCHES=1
    - env: TARGET=x86_64-unknown-linux-musl DISABLE_BENCHES=1

    # OSX
    - env: TARGET=i686-apple-darwin
      os: osx
    - env: TARGET=x86_64-apple-darwin
      os: osx

    # *BSD
    - env: TARGET=i686-unknown-freebsd DISABLE_TESTS=1
    - env: TARGET=x86_64-unknown-freebsd DISABLE_TESTS=1
    - env: TARGET=x86_64-unknown-netbsd DISABLE_TESTS=1

    # Windows
    # Benches fail since the following option is not recognized:
    #   '--enable-long-section-names'
    - env: TARGET=x86_64-pc-windows-gnu DISABLE_BENCHES=1

    - rust: nightly
      os: windows
      install:
      script: DISABLE_CROSS=1 bash ci/script.sh

  allow_failures:
    - rust: nightly

before_install:
  - set -e
  - rustup self update

install:
  # Build essential is already installed, so we just need Python3.6+ and Googletest.
  - if [ ! -z $ENABLE_FFI_TESTS ]; then sudo apt-get install python3.6 -y ; fi
  - if [ ! -z $ENABLE_FFI_TESTS ]; then sh ci/install_gtest.sh ; fi
  # Install rust target and source the correct environment.
  - sh ci/install_rust.sh
  - source ~/.cargo/env || true

script:
  - bash ci/script.sh

after_script: set +e