瀏覽代碼

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.
Paolo Teti 7 年之前
父節點
當前提交
7f92a8ee7b

+ 15 - 14
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
 

+ 7 - 4
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 = []

+ 2 - 0
testcrate/src/lib.rs

@@ -1,3 +1,5 @@
+#![cfg_attr(feature = "no_std", no_std)]
+
 #[cfg(test)]
 mod tests {
     #[test]

+ 1 - 0
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;

+ 1 - 0
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;

+ 1 - 0
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;

+ 29 - 0
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"));