Run x86_64-unknown-linux-gnu tests under valgrind

This commit is contained in:
gnzlbg 2018-11-03 17:12:09 +01:00 committed by gnzlbg
parent 0b7c2fdbb4
commit 74eb0389fd
3 changed files with 55 additions and 29 deletions

View File

@ -46,16 +46,23 @@ matrix:
- name: "powerpc64le-unknown-linux-gnu"
env: TARGET=powerpc64le-unknown-linux-gnu
- name: "x86_64-unknown-linux-gnu (nightly)"
env: TARGET=x86_64-unknown-linux-gnu #JEMALLOC_SYS_VERIFY_CONFIGURE=1
env: TARGET=x86_64-unknown-linux-gnu VALGRIND=1 #JEMALLOC_SYS_VERIFY_CONFIGURE=1
install: true
addons: &valgrind
apt:
packages:
- valgrind
- autoconf
- name: "x86_64-unknown-linux-gnu (beta)"
env: TARGET=x86_64-unknown-linux-gnu
env: TARGET=x86_64-unknown-linux-gnu VALGRIND=1
rust: beta
install: true
addons: *valgrind
- name: "x86_64-unknown-linux-gnu (stable)"
env: TARGET=x86_64-unknown-linux-gnu
env: TARGET=x86_64-unknown-linux-gnu VALGRIND=1
rust: stable
install: true
addons: *valgrind
- name: "x86_64-unknown-linux-musl"
env: TARGET=x86_64-unknown-linux-musl NOBGT=1
@ -80,6 +87,8 @@ matrix:
os: osx
osx_image: xcode10
rust: stable
# FIXME: valgrind fails on OSX
# https://github.com/alexcrichton/jemallocator/issues/86
- name: "x86_64-apple-darwin (nightly)"
env: TARGET=x86_64-apple-darwin
os: osx

View File

@ -36,36 +36,37 @@ The following table describes the supported platforms:
* `build`: does the library compile for the target?
* `run`: do the tests pass on the target?
* `valgrind`: do the tests pass under valgrind?
Tier 1 targets are tested on all Rust channels (stable, beta, and nightly). All
other targets are only tested on Rust nightly.
| Linux targets: | build | run |
|-------------------------------------|-----------|---------|
| `aarch64-unknown-linux-gnu` | ✓ | ✓ |
| `arm-unknown-linux-gnueabi` | ✓ | ✓ |
| `armv7-unknown-linux-gnueabi` | ✓ | ✓ |
| `i586-unknown-linux-gnu` | ✓ | ✓ |
| `i686-unknown-linux-gnu` (tier 1) | ✓ | ✓ |
| `mips-unknown-linux-gnu` | ✓ | ✓ |
| `mipsel-unknown-linux-musl` | ✓ | ✓ |
| `mips64-unknown-linux-gnuabi64` | ✓ | ✓ |
| `mips64el-unknown-linux-gnuabi64` | ✓ | ✓ |
| `powerpc-unknown-linux-gnu` | ✓ | ✓ |
| `powerpc64-unknown-linux-gnu` | ✓ | ✓ |
| `powerpc64le-unknown-linux-gnu` | ✓ | ✓ |
| `x86_64-unknown-linux-gnu` (tier 1) | ✓ | ✓ |
| **MacOSX targets:** | **build** | **run** |
| `x86_64-apple-darwin` (tier 1) | ✓ | ✓ |
| `i686-apple-darwin` (tier 1) | ✓ | ✓ |
| **Windows targets:** | **build** | **run** |
| `x86_64-pc-windows-msvc` (tier 1) | ✗ | ✗ |
| `i686-pc-windows-msvc` (tier 1) | ✗ | ✗ |
| `x86_64-pc-windows-gnu` (tier 1) | ✓ | ✓ |
| `i686-pc-windows-gnu` (tier 1) | ✓ | ✓ |
| **Android targets:** | **build** | **run** |
| `aarch64-linux-android` | ✓ | ✓ |
| `x86_64-linux-android` | ✓ | ✓ |
| Linux targets: | build | run | valgrind |
|-------------------------------------|-----------|---------|--------------|
| `aarch64-unknown-linux-gnu` | ✓ | ✓ | ✗ |
| `arm-unknown-linux-gnueabi` | ✓ | ✓ | ✗ |
| `armv7-unknown-linux-gnueabi` | ✓ | ✓ | ✗ |
| `i586-unknown-linux-gnu` | ✓ | ✓ | ✗ |
| `i686-unknown-linux-gnu` (tier 1) | ✓ | ✓ | ✗ |
| `mips-unknown-linux-gnu` | ✓ | ✓ | ✗ |
| `mipsel-unknown-linux-musl` | ✓ | ✓ | ✗ |
| `mips64-unknown-linux-gnuabi64` | ✓ | ✓ | ✗ |
| `mips64el-unknown-linux-gnuabi64` | ✓ | ✓ | ✗ |
| `powerpc-unknown-linux-gnu` | ✓ | ✓ | ✗ |
| `powerpc64-unknown-linux-gnu` | ✓ | ✓ | ✗ |
| `powerpc64le-unknown-linux-gnu` | ✓ | ✓ | ✗ |
| `x86_64-unknown-linux-gnu` (tier 1) | ✓ | ✓ | ✓ |
| **MacOSX targets:** | **build** | **run** | **valgrind** |
| `x86_64-apple-darwin` (tier 1) | ✓ | ✓ | ✗ |
| `i686-apple-darwin` (tier 1) | ✓ | ✓ | ✗ |
| **Windows targets:** | **build** | **run** | **valgrind** |
| `x86_64-pc-windows-msvc` (tier 1) | ✗ | ✗ | ✗ |
| `i686-pc-windows-msvc` (tier 1) | ✗ | ✗ | ✗ |
| `x86_64-pc-windows-gnu` (tier 1) | ✓ | ✓ | ✗ |
| `i686-pc-windows-gnu` (tier 1) | ✓ | ✓ | ✗ |
| **Android targets:** | **build** | **run** | **valgrind** |
| `aarch64-linux-android` | ✓ | ✓ | ✗ |
| `x86_64-linux-android` | ✓ | ✓ | ✗ |
## Features

View File

@ -25,6 +25,22 @@ then
cargo install cross || echo "cross is already installed"
fi
if [ "${VALGRIND}" = "1" ]
then
case "${TARGET}" in
"x86_64-unknown-linux-gnu")
export CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUNNER=valgrind
;;
"x86_64-apple-darwin")
export CARGO_TARGET_X86_64_APPLE_DARWIN_RUNNER=valgrind
;;
*)
echo "Specify how to run valgrind for TARGET=${TARGET}"
exit 1
;;
esac
fi
${CARGO_CMD} test -vv --target "${TARGET}"
${CARGO_CMD} test -vv --target "${TARGET}" --features profiling
${CARGO_CMD} test -vv --target "${TARGET}" --features debug