@@ -7,10 +7,13 @@ main() {
7
7
8
8
cargo check --target " $TARGET " --features device
9
9
10
+ # A `critical_section` implementation is always needed.
11
+ needed_features=cortex-m/single-core-critical-section
12
+
10
13
if [ " $TARGET " = x86_64-unknown-linux-gnu ] && [ " $TRAVIS_RUST_VERSION " = stable ]; then
11
14
( cd macros && cargo check && cargo test )
12
15
13
- cargo test --features device --test compiletest
16
+ cargo test --features " device, ${needed_features} " --test compiletest
14
17
fi
15
18
16
19
local examples=(
@@ -43,35 +46,35 @@ main() {
43
46
if [ " $TARGET " != x86_64-unknown-linux-gnu ]; then
44
47
# Only test on stable and nightly, not MSRV.
45
48
if [ " $TRAVIS_RUST_VERSION " = stable ] || [ " $TRAVIS_RUST_VERSION " = nightly ]; then
46
- RUSTDOCFLAGS=" -Cpanic=abort" cargo test --doc
49
+ RUSTDOCFLAGS=" -Cpanic=abort" cargo test --features " ${needed_features} " -- doc
47
50
fi
48
51
49
52
for linker in " ${linkers[@]} " ; do
50
53
for ex in " ${examples[@]} " ; do
51
- cargo rustc --target " $TARGET " --example " $ex " -- $linker
52
- cargo rustc --target " $TARGET " --example " $ex " --release -- $linker
54
+ cargo rustc --target " $TARGET " --example " $ex " --features " ${needed_features} " -- $linker
55
+ cargo rustc --target " $TARGET " --example " $ex " --features " ${needed_features} " -- release -- $linker
53
56
done
54
57
for ex in " ${fail_examples[@]} " ; do
55
- ! cargo rustc --target " $TARGET " --example " $ex " -- $linker
56
- ! cargo rustc --target " $TARGET " --example " $ex " --release -- $linker
58
+ ! cargo rustc --target " $TARGET " --example " $ex " --features " ${needed_features} " -- $linker
59
+ ! cargo rustc --target " $TARGET " --example " $ex " --features " ${needed_features} " -- release -- $linker
57
60
done
58
- cargo rustc --target " $TARGET " --example device --features device -- $linker
59
- cargo rustc --target " $TARGET " --example device --features device --release -- $linker
61
+ cargo rustc --target " $TARGET " --example device --features " device, ${needed_features} " -- $linker
62
+ cargo rustc --target " $TARGET " --example device --features " device, ${needed_features} " --release -- $linker
60
63
61
- cargo rustc --target " $TARGET " --example minimal --features set-sp -- $linker
62
- cargo rustc --target " $TARGET " --example minimal --features set-sp --release -- $linker
63
- cargo rustc --target " $TARGET " --example minimal --features set-vtor -- $linker
64
- cargo rustc --target " $TARGET " --example minimal --features set-vtor --release -- $linker
64
+ cargo rustc --target " $TARGET " --example minimal --features " set-sp, ${needed_features} " -- $linker
65
+ cargo rustc --target " $TARGET " --example minimal --features " set-sp, ${needed_features} " --release -- $linker
66
+ cargo rustc --target " $TARGET " --example minimal --features " set-vtor, ${needed_features} " -- $linker
67
+ cargo rustc --target " $TARGET " --example minimal --features " set-vtor, ${needed_features} " --release -- $linker
65
68
done
66
69
fi
67
70
68
71
case $TARGET in
69
72
thumbv6m-none-eabi|thumbv7m-none-eabi)
70
73
for linker in " ${linkers[@]} " ; do
71
74
env RUSTFLAGS=" $linker -C link-arg=-Tlink.x" cargo run \
72
- --target " $TARGET " --example qemu | grep " x = 42"
75
+ --target " $TARGET " --features " ${needed_features} " -- example qemu | grep " x = 42"
73
76
env RUSTFLAGS=" $linker -C link-arg=-Tlink.x" cargo run \
74
- --target " $TARGET " --example qemu --release | grep " x = 42"
77
+ --target " $TARGET " --features " ${needed_features} " -- example qemu --release | grep " x = 42"
75
78
done
76
79
77
80
;;
0 commit comments