aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/build.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r--.github/workflows/build.yml135
1 files changed, 3 insertions, 132 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 4d7ed95..fd8c073 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -198,139 +198,10 @@ jobs:
sudo apt update
sudo apt install -y qemu-system-arm
- - name: Run-pass tests
- run: |
- # Print the path
- echo $PATH
-
- arm_example() {
- local COMMAND=$1
- local EXAMPLE=$2
- local BUILD_MODE=$3
- local FEATURES=$4
- local BUILD_NUM=$5
-
- if [ $BUILD_MODE = "release" ]; then
- local RELEASE_FLAG="--release"
- else
- local RELEASE_FLAG=""
- fi
-
- if [ -n "$FEATURES" ]; then
- local FEATURES_FLAG="--features $FEATURES"
- local FEATURES_STR=${FEATURES/,/_}_
- else
- local FEATURES_FLAG=""
- local FEATURES_STR=""
- fi
- local CARGO_FLAGS="--example $EXAMPLE --target ${{ matrix.target }} $RELEASE_FLAG $FEATURES_FLAG"
-
- if [ $COMMAND = "run" ]; then
- cargo $COMMAND $CARGO_FLAGS | diff -u ci/expected/$EXAMPLE.run -
- else
- cargo $COMMAND $CARGO_FLAGS
- fi
- cargo objcopy $CARGO_FLAGS -- -O ihex ci/builds/${EXAMPLE}_${FEATURES_STR}${BUILD_MODE}_${BUILD_NUM}.hex
- }
-
- mkdir -p ci/builds
- exs=(
- idle
- init
- hardware
- preempt
- binds
-
- resource
- lock
- multilock
- only-shared-access
-
- task
- message
- capacity
-
- not-sync
-
- generics
- pool
- ramfunc
-
- peripherals-taken
- )
-
- for ex in ${exs[@]}; do
- if [ $ex = pool ]; then
- if [ ${{ matrix.target }} = thumbv6m-none-eabi ]; then
- continue
- fi
-
- td=$(mktemp -d)
-
- cargo run --example $ex --target ${{ matrix.target }} --features __v7 >\
- $td/pool.run
- grep 'foo(0x2' $td/pool.run
- grep 'bar(0x2' $td/pool.run
- cargo objcopy --example $ex --target ${{ matrix.target }} --features __v7 -- -O ihex ci/builds/${ex}___v7_debug_1.hex
-
- cargo run --example $ex --target ${{ matrix.target }} --features __v7 --release >\
- $td/pool.run
- grep 'foo(0x2' $td/pool.run
- grep 'bar(0x2' $td/pool.run
- cargo objcopy --example $ex --target ${{ matrix.target }} --features __v7 --release -- -O ihex ci/builds/${ex}___v7_release_1.hex
-
- rm -rf $td
-
- continue
- fi
-
- if [ $ex = types ]; then
- if [ ${{ matrix.target }} = thumbv6m-none-eabi ]; then
- continue
- fi
-
- arm_example "run" $ex "debug" "__v7" "1"
- arm_example "run" $ex "release" "__v7" "1"
-
- continue
- fi
-
- arm_example "run" $ex "debug" "" "1"
- if [ $ex = types ]; then
- arm_example "run" $ex "release" "" "1"
- else
- arm_example "build" $ex "release" "" "1"
- fi
- done
-
- built=()
- cargo clean
- for ex in ${exs[@]}; do
- if [ $ex = types ] || [ $ex = pool ]; then
- if [ ${{ matrix.target }} = thumbv6m-none-eabi ]; then
- continue
- fi
-
- arm_example "build" $ex "debug" "__v7" "2"
- cmp ci/builds/${ex}___v7_debug_1.hex \
- ci/builds/${ex}___v7_debug_2.hex
- arm_example "build" $ex "release" "__v7" "2"
- cmp ci/builds/${ex}___v7_release_1.hex \
- ci/builds/${ex}___v7_release_2.hex
- else
- arm_example "build" $ex "debug" "" "2"
- cmp ci/builds/${ex}_debug_1.hex \
- ci/builds/${ex}_debug_2.hex
- arm_example "build" $ex "release" "" "2"
- cmp ci/builds/${ex}_release_1.hex \
- ci/builds/${ex}_release_2.hex
- fi
-
- built+=( $ex )
- done
-
- ( cd target/${{ matrix.target }}/release/examples/ && size ${built[@]} )
+ - name: Run-pass tests
+ run:
+ cargo xtask --target ${{ matrix.target }}
# Check the correctness of macros/ crate
checkmacros: