aboutsummaryrefslogtreecommitdiff
path: root/cortex-m-rt/ci/script.sh
diff options
context:
space:
mode:
authorGravatar bors[bot] <26634292+bors[bot]@users.noreply.github.com> 2022-01-23 14:20:02 +0000
committerGravatar GitHub <noreply@github.com> 2022-01-23 14:20:02 +0000
commitc350114d8002d91bd71d08e7ad6ee2e960c2ed35 (patch)
treeb741c9324aca7c68fae566afdcabf34c8175a134 /cortex-m-rt/ci/script.sh
parent92552c73d3b56dc86007450633950d16ebe0e495 (diff)
parent391fb7edb90131f295ae759ff780f2a4233dada2 (diff)
downloadcortex-m-c350114d8002d91bd71d08e7ad6ee2e960c2ed35.tar.gz
cortex-m-c350114d8002d91bd71d08e7ad6ee2e960c2ed35.tar.zst
cortex-m-c350114d8002d91bd71d08e7ad6ee2e960c2ed35.zip
Merge #391c-m-rt-v0.7.1
391: Merge cortex-m-rt into this repository r=thejpster a=adamgreig This PR merges the cortex-m-rt repository (with history) into this repo, inside the `cortex-m-rt` folder which is added to the workspace. The main advantage is easier combined testing of cortex-m with cortex-m-rt (including on-hardware tests e.g. #355), and in the future easier changes across the two projects. The MSRV of cortex-m-rt is bumped 1.39 -> 1.40 to align it with cortex-m itself. I've updated the CI to run the same tests and checks as before, and updated references to the old URL. If/after this is merged, I propose adding a note to the old repo's README and then archiving it. An alternative to this technique would be adding all the files in one new commit (not preserving history), if anyone thinks that would be neater. NB: This PR also adds an inline to ITM to fix a clippy hard error. For future reference, the git work was: ``` cd cortex-m-rt git filter-repo --to-subdirectory-filter cortex-m-rt cd ../cortex-m git remote add rt ../cortex-m-rt git fetch rt git merge --allow-unrelated-histories rt/master ``` Co-authored-by: bors[bot] <bors[bot]@users.noreply.github.com> Co-authored-by: Jonathan 'theJPster' Pallant <github@thejpster.org.uk> Co-authored-by: Adam Greig <adam@adamgreig.com> Co-authored-by: Jonas Schievink <jonasschievink@gmail.com> Co-authored-by: Jorge Aparicio <jorge@japaric.io> Co-authored-by: Emil Fresk <emil.fresk@gmail.com> Co-authored-by: Daniel Egger <daniel@eggers-club.de> Co-authored-by: Niklas Claesson <nicke.claesson@gmail.com> Co-authored-by: bors[bot] <26634292+bors[bot]@users.noreply.github.com> Co-authored-by: Vadim Kaushan <admin@disasm.info>
Diffstat (limited to 'cortex-m-rt/ci/script.sh')
-rwxr-xr-xcortex-m-rt/ci/script.sh80
1 files changed, 80 insertions, 0 deletions
diff --git a/cortex-m-rt/ci/script.sh b/cortex-m-rt/ci/script.sh
new file mode 100755
index 0000000..08ff863
--- /dev/null
+++ b/cortex-m-rt/ci/script.sh
@@ -0,0 +1,80 @@
+#!/usr/bin/env bash
+
+set -euxo pipefail
+
+main() {
+ cargo check --target "$TARGET"
+
+ cargo check --target "$TARGET" --features device
+
+ if [ "$TARGET" = x86_64-unknown-linux-gnu ] && [ "$TRAVIS_RUST_VERSION" = stable ]; then
+ ( cd macros && cargo check && cargo test )
+
+ cargo test --features device --test compiletest
+ fi
+
+ local examples=(
+ alignment
+ divergent-default-handler
+ divergent-exception
+ entry-static
+ main
+ minimal
+ override-exception
+ pre_init
+ qemu
+ state
+ unsafe-default-handler
+ unsafe-entry
+ unsafe-exception
+ unsafe-hard-fault
+ )
+ local fail_examples=(
+ data_overflow
+ )
+ local linkers=(
+ # Link with arm-none-eabi-ld
+ "-C linker=arm-none-eabi-ld"
+ # Link with arm-none-eabi-gcc, requires -nostartfiles
+ "-C linker=arm-none-eabi-gcc -C link-arg=-nostartfiles"
+ # Link with rust-lld (default)
+ ""
+ )
+ if [ "$TARGET" != x86_64-unknown-linux-gnu ]; then
+ # Only test on stable and nightly, not MSRV.
+ if [ "$TRAVIS_RUST_VERSION" = stable ] || [ "$TRAVIS_RUST_VERSION" = nightly ]; then
+ RUSTDOCFLAGS="-Cpanic=abort" cargo test --doc
+ fi
+
+ for linker in "${linkers[@]}"; do
+ for ex in "${examples[@]}"; do
+ cargo rustc --target "$TARGET" --example "$ex" -- $linker
+ cargo rustc --target "$TARGET" --example "$ex" --release -- $linker
+ done
+ for ex in "${fail_examples[@]}"; do
+ ! cargo rustc --target "$TARGET" --example "$ex" -- $linker
+ ! cargo rustc --target "$TARGET" --example "$ex" --release -- $linker
+ done
+ cargo rustc --target "$TARGET" --example device --features device -- $linker
+ cargo rustc --target "$TARGET" --example device --features device --release -- $linker
+ done
+ fi
+
+ case $TARGET in
+ thumbv6m-none-eabi|thumbv7m-none-eabi)
+ for linker in "${linkers[@]}"; do
+ env RUSTFLAGS="$linker -C link-arg=-Tlink.x" cargo run \
+ --target "$TARGET" --example qemu | grep "x = 42"
+ env RUSTFLAGS="$linker -C link-arg=-Tlink.x" cargo run \
+ --target "$TARGET" --example qemu --release | grep "x = 42"
+ done
+
+ ;;
+ esac
+
+ if [ "$TARGET" = x86_64-unknown-linux-gnu ]; then
+ ./check-blobs.sh
+ fi
+}
+
+main