Skip to content

Commit 7eb7b95

Browse files
committed
travis: Cleanup code and check minimal versions
By using --package and bash arrays, we can make the testing scripts much more readable. We also remove deprecated keys/functionality so that the .travis.yml file validates without warnings. Signed-off-by: Joe Richey <[email protected]>
1 parent 66047af commit 7eb7b95

File tree

2 files changed

+56
-50
lines changed

2 files changed

+56
-50
lines changed

.travis.yml

+56-49
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
language: rust
2-
sudo: false
2+
os: linux
33

4-
matrix:
4+
jobs:
55
include:
66
- name: "Linux, 1.32.0"
77
rust: 1.32.0
8-
os: linux
98

109
- name: "OSX, 1.32.0"
1110
rust: 1.32.0
@@ -20,7 +19,7 @@ matrix:
2019
install:
2120
- rustup target add aarch64-apple-ios
2221
script:
23-
- cargo test
22+
- cargo test --package getrandom --package cpurand-getrandom --tests
2423
- cargo build --target aarch64-apple-ios
2524

2625
- name: "Linux, beta"
@@ -63,46 +62,44 @@ matrix:
6362
- cargo web prepare-emscripten
6463
env: EMCC_CFLAGS="-s ERROR_ON_UNDEFINED_SYMBOLS=0"
6564
script:
66-
# We cannot run emscripten test binaries (see rust-lang/rust#63649).
67-
# However, we can still build and link all tests to make sure that works.
68-
# This is actually useful as it finds stuff such as rust-random/rand#669
65+
# Test our supported web targets (running tests doesn't currently work)
6966
- cargo web test --target wasm32-unknown-emscripten --no-run
7067
- cargo web test --target asmjs-unknown-emscripten --no-run
71-
# wasi tests
7268
- cargo test --target wasm32-wasi
73-
# stdweb tests (Node, Chrome)
74-
- cd custom/stdweb
75-
- cargo web test --nodejs --target=wasm32-unknown-unknown
76-
- cargo web test --target=wasm32-unknown-unknown
77-
# wasm-bindgen tests (Node, Firefox, Chrome)
78-
- cd ../wasm-bindgen
79-
- cargo test --target wasm32-unknown-unknown --test node
80-
- GECKODRIVER=$HOME/geckodriver cargo test --target wasm32-unknown-unknown --test web
81-
- CHROMEDRIVER=$HOME/chromedriver cargo test --target wasm32-unknown-unknown --test web
69+
# stdweb (wasm32-unknown-unknown) tests (Node, Chrome)
70+
- cargo web test --package stdweb-getrandom
71+
- cargo web test --package stdweb-getrandom --nodejs
72+
# wasm-bindgen (wasm32-unknown-unknown) tests (Node, Firefox, Chrome)
73+
- cargo test --package wasm-bindgen-getrandom
74+
--target wasm32-unknown-unknown --test node
75+
- GECKODRIVER=$HOME/geckodriver
76+
cargo test --package wasm-bindgen-getrandom
77+
--target wasm32-unknown-unknown --test web
78+
- CHROMEDRIVER=$HOME/chromedriver
79+
cargo test --package wasm-bindgen-getrandom
80+
--target wasm32-unknown-unknown --test web
8281

8382
- &nightly_and_docs
8483
name: "Linux, nightly, docs"
8584
rust: nightly
86-
os: linux
8785
install:
8886
- rustup target add wasm32-unknown-unknown
8987
- cargo --list | egrep "^\s*deadlinks$" -q || cargo install cargo-deadlinks
9088
- cargo deadlinks -V
9189
script:
92-
# Check that our tests pass in the default configuration
93-
- cargo test
94-
- cargo test --benches
9590
# Check that setting various features does not break the build
9691
- cargo build --features=std
9792
- cargo build --features=custom
9893
# remove cached documentation, otherwise files from previous PRs can get included
9994
- rm -rf target/doc
10095
- cargo doc --no-deps --features=std,custom
101-
- cargo doc --no-deps --manifest-path=custom/wasm-bindgen/Cargo.toml --target=wasm32-unknown-unknown
96+
- cargo doc --no-deps --package cpurand-getrandom
97+
- cargo doc --no-deps --package wasm-bindgen-getrandom --target=wasm32-unknown-unknown
10298
- cargo deadlinks --dir target/doc
103-
# also test minimum dependency versions are usable
99+
# Check that our tests pass in the default/minimal configuration
100+
- cargo test --package getrandom --package cpurand-getrandom --tests --benches
104101
- cargo generate-lockfile -Z minimal-versions
105-
- cargo test --features=std,custom
102+
- cargo test --package getrandom --package cpurand-getrandom --tests --benches
106103

107104
- <<: *nightly_and_docs
108105
name: "OSX, nightly, docs"
@@ -111,37 +108,48 @@ matrix:
111108
- name: "cross-platform build only"
112109
rust: nightly
113110
install:
114-
- rustup target add x86_64-sun-solaris
115-
- rustup target add x86_64-unknown-cloudabi
116-
- rustup target add x86_64-unknown-freebsd
117-
- rustup target add x86_64-fuchsia
118-
- rustup target add x86_64-unknown-netbsd
119-
- rustup target add x86_64-unknown-redox
120-
- rustup target add x86_64-fortanix-unknown-sgx
111+
- export STD_TARGETS=(
112+
x86_64-sun-solaris
113+
x86_64-unknown-cloudabi
114+
x86_64-unknown-freebsd
115+
x86_64-fuchsia
116+
x86_64-unknown-netbsd
117+
x86_64-unknown-redox
118+
x86_64-fortanix-unknown-sgx
119+
)
120+
- export NO_STD_TARGETS=(
121+
x86_64-unknown-uefi
122+
x86_64-unknown-hermit
123+
x86_64-unknown-l4re-uclibc
124+
x86_64-uwp-windows-gnu
125+
x86_64-wrs-vxworks
126+
)
127+
- for TARGET in ${STD_TARGETS[@]}; do rustup target add $TARGET; done
121128
# For no_std targets
122129
- rustup component add rust-src
123-
- cargo install cargo-xbuild || true
130+
- cargo --list | egrep "^\s*xbuild$" -q || cargo install cargo-xbuild
124131
script:
125-
# We test that getrandom and cpurand build for all x86 targets
126-
- cd custom/cpurand
127-
- cargo build --target=x86_64-sun-solaris
128-
- cargo build --target=x86_64-unknown-cloudabi
129-
- cargo build --target=x86_64-unknown-freebsd
130-
- cargo build --target=x86_64-fuchsia
131-
- cargo build --target=x86_64-unknown-netbsd
132-
- cargo build --target=x86_64-unknown-redox
133-
- cargo build --target=x86_64-fortanix-unknown-sgx
134-
- cargo xbuild --target=x86_64-unknown-uefi
135-
- cargo xbuild --target=x86_64-unknown-hermit
136-
- cargo xbuild --target=x86_64-unknown-l4re-uclibc
137-
- cargo xbuild --target=x86_64-uwp-windows-gnu
138-
- cargo xbuild --target=x86_64-wrs-vxworks
132+
# As all of the targets here are x86, it is enough to test that
133+
# getrandom and getrandom-cpu build for all x86 targets.
134+
- for TARGET in ${STD_TARGETS[@]}; do
135+
cargo build --package cpurand-getrandom --target $TARGET;
136+
done
137+
- for TARGET in ${NO_STD_TARGETS[@]}; do
138+
cargo xbuild --package cpurand-getrandom --target $TARGET;
139+
done
140+
# Also check that minimum versions build
141+
- cargo generate-lockfile -Z minimal-versions
142+
- for TARGET in ${STD_TARGETS[@]}; do
143+
cargo build --package cpurand-getrandom --target $TARGET;
144+
done
145+
- for TARGET in ${NO_STD_TARGETS[@]}; do
146+
cargo xbuild --package cpurand-getrandom --target $TARGET;
147+
done
139148

140149
# Trust cross-built/emulated targets. We must repeat all non-default values.
141150
- name: "Linux (MIPS, big-endian)"
142151
env: TARGET=mips-unknown-linux-gnu
143152
rust: stable
144-
sudo: required
145153
dist: trusty
146154
services: docker
147155
install:
@@ -153,7 +161,6 @@ matrix:
153161
- name: "Android (ARMv7)"
154162
env: TARGET=armv7-linux-androideabi
155163
rust: stable
156-
sudo: required
157164
dist: trusty
158165
services: docker
159166
install:
@@ -181,7 +188,7 @@ before_script:
181188
- export RUSTFLAGS="-D warnings"
182189

183190
script:
184-
- cargo test
191+
- cargo test --package getrandom --package cpurand-getrandom --tests
185192

186193
after_script: set +e
187194

benches/mod.rs

-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
#![feature(test)]
2-
extern crate getrandom;
32
extern crate test;
43

54
#[bench]

0 commit comments

Comments
 (0)