From 7f92a8ee7ba86b28488f5c6c3d7230818ccc5c67 Mon Sep 17 00:00:00 2001 From: Paolo Teti Date: Sun, 18 Feb 2018 18:15:57 +0100 Subject: [PATCH] Fix CI for thumb* targets Main fix is inside 'utest' all the rest are minor fixes due to the new 'testcrate'. Still allow failures on TravisCI for a while. --- ci/run.sh | 29 +++++++++++++++-------------- testcrate/Cargo.toml | 11 +++++++---- testcrate/src/lib.rs | 2 ++ testcrate/tests/aeabi_memclr.rs | 1 + testcrate/tests/aeabi_memcpy.rs | 1 + testcrate/tests/aeabi_memset.rs | 1 + testcrate/tests/generated.rs | 29 +++++++++++++++++++++++++++++ 7 files changed, 56 insertions(+), 18 deletions(-) diff --git a/ci/run.sh b/ci/run.sh index bc40e2d..3196400 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -24,29 +24,30 @@ fi # Test our implementation case $1 in thumb*) - for t in $(ls tests); do + run="xargo test --manifest-path testcrate/Cargo.toml --target $1" + for t in $(ls testcrate/tests); do t=${t%.rs} - # TODO(#154) enable these tests when aeabi_*mul are implemented - case $t in - powi*f2) - continue - ;; - esac - - xargo test --test $t --target $1 --features 'mem gen-tests' --no-run + RUSTFLAGS="-C debug-assertions=no -C lto" \ + CARGO_INCREMENTAL=0 \ + $run --test $t --features 'no_std mem c' --no-run qemu-arm-static target/${1}/debug/$t-* + done - xargo test --test $t --target $1 --features 'mem gen-tests' --no-run --release + for t in $(ls testcrate/tests); do + t=${t%.rs} + RUSTFLAGS="-C lto" \ + CARGO_INCREMENTAL=0 \ + $run --test $t --features 'no_std mem c' --no-run --release qemu-arm-static target/${1}/release/$t-* done ;; *) run="cargo test --manifest-path testcrate/Cargo.toml --target $1" - $run - $run --release - $run --features c - $run --features c --release + $run --features mangled-names + $run --features mangled-names --release + $run --features 'mangled-names c' + $run --features 'mangled-names c' --release ;; esac diff --git a/testcrate/Cargo.toml b/testcrate/Cargo.toml index 834df68..d88acda 100644 --- a/testcrate/Cargo.toml +++ b/testcrate/Cargo.toml @@ -14,12 +14,15 @@ rand = { version = "0.4", features = ["i128_support"] } [dependencies.compiler_builtins] path = ".." default-features = false -features = ["mangled-names", "no-lang-items"] +features = ["no-lang-items"] [target.'cfg(all(target_arch = "arm", not(any(target_env = "gnu", target_env = "musl")), target_os = "linux"))'.dev-dependencies] -test = { git = "https://github.com/japaric/utest" } -utest-cortex-m-qemu = { default-features = false, git = "https://github.com/japaric/utest" } -utest-macros = { git = "https://github.com/japaric/utest" } +test = { git = "https://github.com/paoloteti/utest", branch = "ci" } +utest-cortex-m-qemu = { default-features = false, git = "https://github.com/paoloteti/utest", branch = "ci" } +utest-macros = { git = "https://github.com/paoloteti/utest", branch = "ci" } [features] c = ["compiler_builtins/c"] +mem = ["compiler_builtins/mem"] +mangled-names = ["compiler_builtins/mangled-names"] +no_std = [] diff --git a/testcrate/src/lib.rs b/testcrate/src/lib.rs index 31e1bb2..ae9e4e2 100644 --- a/testcrate/src/lib.rs +++ b/testcrate/src/lib.rs @@ -1,3 +1,5 @@ +#![cfg_attr(feature = "no_std", no_std)] + #[cfg(test)] mod tests { #[test] diff --git a/testcrate/tests/aeabi_memclr.rs b/testcrate/tests/aeabi_memclr.rs index 72e944e..08fbd4f 100644 --- a/testcrate/tests/aeabi_memclr.rs +++ b/testcrate/tests/aeabi_memclr.rs @@ -3,6 +3,7 @@ target_os = "linux", feature = "mem"))] #![feature(compiler_builtins_lib)] +#![feature(lang_items)] #![no_std] extern crate compiler_builtins; diff --git a/testcrate/tests/aeabi_memcpy.rs b/testcrate/tests/aeabi_memcpy.rs index 2ba942c..76dad89 100644 --- a/testcrate/tests/aeabi_memcpy.rs +++ b/testcrate/tests/aeabi_memcpy.rs @@ -3,6 +3,7 @@ target_os = "linux", feature = "mem"))] #![feature(compiler_builtins_lib)] +#![feature(lang_items)] #![no_std] extern crate compiler_builtins; diff --git a/testcrate/tests/aeabi_memset.rs b/testcrate/tests/aeabi_memset.rs index 0919f14..71fe37e 100644 --- a/testcrate/tests/aeabi_memset.rs +++ b/testcrate/tests/aeabi_memset.rs @@ -3,6 +3,7 @@ target_os = "linux", feature = "mem"))] #![feature(compiler_builtins_lib)] +#![feature(lang_items)] #![no_std] extern crate compiler_builtins; diff --git a/testcrate/tests/generated.rs b/testcrate/tests/generated.rs index 1a43f43..1263dc2 100644 --- a/testcrate/tests/generated.rs +++ b/testcrate/tests/generated.rs @@ -1,6 +1,35 @@ +#![feature(compiler_builtins_lib)] #![feature(i128_type)] +#![feature(lang_items, core_float, core_float_bits)] #![allow(bad_style)] +#![allow(unused_imports)] +#![no_std] + +use core::num::Float; extern crate compiler_builtins; +#[cfg(all(target_arch = "arm", + not(any(target_env = "gnu", target_env = "musl")), + target_os = "linux", + test))] +extern crate utest_cortex_m_qemu; + +#[cfg(all(target_arch = "arm", + not(any(target_env = "gnu", target_env = "musl")), + target_os = "linux", + test))] +#[macro_use] +extern crate utest_macros; + +#[cfg(all(target_arch = "arm", + not(any(target_env = "gnu", target_env = "musl")), + target_os = "linux", + test))] +macro_rules! panic { // overrides `panic!` + ($($tt:tt)*) => { + upanic!($($tt)*); + }; +} + include!(concat!(env!("OUT_DIR"), "/generated.rs"));