@@ -30,13 +30,15 @@ if [ "$TARGET" = arm-linux-androideabi ]; then
30
30
export CFLAGS=' -march=armv7'
31
31
fi
32
32
33
- cargo build --locked --release --target " $TARGET " " ${FEATURES[@]} "
34
-
35
- runtest () {
36
- cargo test --locked --release --target " $TARGET " " ${FEATURES[@]} " " $@ "
33
+ target_cargo () {
34
+ cmd= " $1 "
35
+ shift
36
+ cargo " ${cmd} " --locked --release --target " $TARGET " " ${FEATURES[@]} " " $@ "
37
37
}
38
38
39
- run_download_pkg_test () {
39
+ target_cargo build
40
+
41
+ download_pkg_test () {
40
42
features=(' --no-default-features' ' --features' ' curl-backend,reqwest-backend,reqwest-default-tls' )
41
43
case " $TARGET " in
42
44
# these platforms aren't supported by ring:
@@ -49,21 +51,38 @@ run_download_pkg_test() {
49
51
* ) features+=(' --features' ' reqwest-rustls-tls' ) ;;
50
52
esac
51
53
52
- cargo test --locked --release --target " $TARGET " " ${features[@]} " -p download
54
+ cargo " $1 " --locked --release --target " $TARGET " " ${features[@]} " -p download
53
55
}
54
56
55
- if [ -z " $SKIP_TESTS " ]; then
56
- cargo run --locked --release --target " $TARGET " " ${FEATURES[@]} " -- --dump-testament
57
- run_download_pkg_test
58
- runtest --bin rustup-init
59
- runtest --lib --all
60
- runtest --doc --all
57
+ # Machines have 7GB of RAM, and our target/ contents is large enough that
58
+ # thrashing will occur if we build-run-build-run rather than
59
+ # build-build-build-run-run-run.
60
+ build_test () {
61
+ cmd=" $1 "
62
+ shift
63
+ download_pkg_test " ${cmd} "
64
+ target_cargo " ${cmd} " --bin rustup-init
65
+ target_cargo " ${cmd} " --lib --all
66
+ if [ " build" != " ${cmd} " ]; then
67
+ target_cargo " ${cmd} " --doc --all
68
+ fi
61
69
62
- runtest --test dist -- --test-threads 1
70
+ if [ " build" = " ${cmd} " ]; then
71
+ target_cargo " ${cmd} " --test dist
72
+ else
73
+ # free runners have 2 or 3(mac) cores
74
+ target_cargo " ${cmd} " --test dist -- --test-threads 2
75
+ fi
63
76
64
77
find tests -maxdepth 1 -type f ! -path ' */dist.rs' -name ' *.rs' \
65
78
| sed -e ' s@^tests/@@;s@\.rs$@@g' \
66
79
| while read -r test ; do
67
- runtest --test " ${test} "
80
+ target_cargo " ${cmd} " --test " ${test} "
68
81
done
82
+ }
83
+
84
+ if [ -z " $SKIP_TESTS " ]; then
85
+ cargo run --locked --release --target " $TARGET " " ${FEATURES[@]} " -- --dump-testament
86
+ build_test build
87
+ build_test test
69
88
fi
0 commit comments