diff --git a/build_sysroot/build_sysroot.sh b/build_sysroot/build_sysroot.sh index 26f6607b2aa..ff122e21e4f 100755 --- a/build_sysroot/build_sysroot.sh +++ b/build_sysroot/build_sysroot.sh @@ -12,7 +12,6 @@ popd >/dev/null # Cleanup for previous run # v Clean target dir except for build scripts and incremental cache rm -r target/*/{debug,release}/{build,deps,examples,libsysroot*,native} || true -rm -r sysroot_src/src/{libcore,libtest}/target/ || true rm Cargo.lock test_target/Cargo.lock 2>/dev/null || true rm -r sysroot/ 2>/dev/null || true diff --git a/build_sysroot/prepare_sysroot_src.sh b/build_sysroot/prepare_sysroot_src.sh index c96c3b36ba2..882454754ed 100755 --- a/build_sysroot/prepare_sysroot_src.sh +++ b/build_sysroot/prepare_sysroot_src.sh @@ -24,7 +24,8 @@ git commit -m "Initial commit" -q for file in $(ls ../../patches/ | grep -v patcha); do echo "[GIT] apply" $file git apply ../../patches/$file -git commit --no-gpg-sign -am "Patch $file" +git add -A +git commit --no-gpg-sign -m "Patch $file" done popd diff --git a/example/std_example.rs b/example/std_example.rs index d6734e74498..eccffc62140 100644 --- a/example/std_example.rs +++ b/example/std_example.rs @@ -1,4 +1,5 @@ #![feature(core_intrinsics)] +#![feature(is_sorted)] use std::arch::x86_64::*; use std::io::Write; @@ -76,6 +77,9 @@ fn main() { let _a = 1u32 << 2u8; + let empty: [i32; 0] = []; + assert!(empty.is_sorted()); + println!("{:?}", unsafe { std::intrinsics::caller_location() }); unsafe { diff --git a/patches/0022-core-Disable-not-compiling-tests.patch b/patches/0022-core-Disable-not-compiling-tests.patch new file mode 100644 index 00000000000..77cdd0c56e9 --- /dev/null +++ b/patches/0022-core-Disable-not-compiling-tests.patch @@ -0,0 +1,123 @@ +From f6befc4bb51d84f5f1cf35938a168c953d421350 Mon Sep 17 00:00:00 2001 +From: bjorn3 +Date: Sun, 24 Nov 2019 15:10:23 +0100 +Subject: [PATCH] [core] Disable not compiling tests + +--- + src/libcore/tests/Cargo.toml | 8 ++++++++ + src/libcore/tests/num/flt2dec/mod.rs | 1 - + src/libcore/tests/num/int_macros.rs | 2 ++ + src/libcore/tests/num/uint_macros.rs | 2 ++ + src/libcore/tests/ptr.rs | 2 ++ + src/libcore/tests/slice.rs | 2 ++ + 6 files changed, 16 insertions(+), 1 deletion(-) + create mode 100644 src/libcore/tests/Cargo.toml + +diff --git a/src/libcore/tests/Cargo.toml b/src/libcore/tests/Cargo.toml +new file mode 100644 +index 0000000..46fd999 +--- /dev/null ++++ b/src/libcore/tests/Cargo.toml +@@ -0,0 +1,8 @@ ++[package] ++name = "core" ++version = "0.0.0" ++edition = "2018" ++ ++[lib] ++name = "coretests" ++path = "lib.rs" +diff --git a/src/libcore/tests/num/flt2dec/mod.rs b/src/libcore/tests/num/flt2dec/mod.rs +index a35897e..f0bf645 100644 +--- a/src/libcore/tests/num/flt2dec/mod.rs ++++ b/src/libcore/tests/num/flt2dec/mod.rs +@@ -13,7 +13,6 @@ mod strategy { + mod dragon; + mod grisu; + } +-mod random; + + pub fn decode_finite(v: T) -> Decoded { + match decode(v).1 { +diff --git a/src/libcore/tests/num/int_macros.rs b/src/libcore/tests/num/int_macros.rs +index 0475aeb..9558198 100644 +--- a/src/libcore/tests/num/int_macros.rs ++++ b/src/libcore/tests/num/int_macros.rs +@@ -88,6 +88,7 @@ mod tests { + assert_eq!(C.count_zeros(), bits as u32 - 5); + } + ++ /* + #[test] + fn test_rotate() { + assert_eq!(A.rotate_left(6).rotate_right(2).rotate_right(4), A); +@@ -112,6 +113,7 @@ mod tests { + assert_eq!(B.rotate_left(64), B); + assert_eq!(C.rotate_left(64), C); + } ++ */ + + #[test] + fn test_swap_bytes() { +diff --git a/src/libcore/tests/num/uint_macros.rs b/src/libcore/tests/num/uint_macros.rs +index 04ed14f..a6e372e 100644 +--- a/src/libcore/tests/num/uint_macros.rs ++++ b/src/libcore/tests/num/uint_macros.rs +@@ -52,6 +52,7 @@ mod tests { + assert!(C.count_zeros() == bits as u32 - 5); + } + ++ /* + #[test] + fn test_rotate() { + assert_eq!(A.rotate_left(6).rotate_right(2).rotate_right(4), A); +@@ -76,6 +77,7 @@ mod tests { + assert_eq!(B.rotate_left(64), B); + assert_eq!(C.rotate_left(64), C); + } ++ */ + + #[test] + fn test_swap_bytes() { +diff --git a/src/libcore/tests/ptr.rs b/src/libcore/tests/ptr.rs +index 1a6be3a..42dbd59 100644 +--- a/src/libcore/tests/ptr.rs ++++ b/src/libcore/tests/ptr.rs +@@ -250,6 +250,7 @@ fn test_unsized_nonnull() { + assert!(ys == zs); + } + ++/* + #[test] + #[allow(warnings)] + // Have a symbol for the test below. It doesn’t need to be an actual variadic function, match the +@@ -289,6 +290,7 @@ fn write_unaligned_drop() { + } + DROPS.with(|d| assert_eq!(*d.borrow(), [0])); + } ++*/ + + #[test] + #[cfg(not(miri))] // Miri does not compute a maximal `mid` for `align_offset` +diff --git a/src/libcore/tests/slice.rs b/src/libcore/tests/slice.rs +index 6609bc3..241b497 100644 +--- a/src/libcore/tests/slice.rs ++++ b/src/libcore/tests/slice.rs +@@ -1209,6 +1209,7 @@ fn brute_force_rotate_test_1() { + } + } + ++/* + #[test] + #[cfg(not(target_arch = "wasm32"))] + fn sort_unstable() { +@@ -1394,6 +1395,7 @@ fn partition_at_index() { + v.partition_at_index(0); + assert!(v == [0xDEADBEEF]); + } ++*/ + + #[test] + #[should_panic(expected = "index 0 greater than length of slice")] +-- +2.21.0 (Apple Git-122) diff --git a/patches/0023-core-Ignore-failing-tests.patch b/patches/0023-core-Ignore-failing-tests.patch new file mode 100644 index 00000000000..d5e46569260 --- /dev/null +++ b/patches/0023-core-Ignore-failing-tests.patch @@ -0,0 +1,183 @@ +From dd82e95c9de212524e14fc60155de1ae40156dfc Mon Sep 17 00:00:00 2001 +From: bjorn3 +Date: Sun, 24 Nov 2019 15:34:06 +0100 +Subject: [PATCH] [core] Ignore failing tests + +--- + src/libcore/tests/iter.rs | 4 ++++ + src/libcore/tests/num/bignum.rs | 10 ++++++++++ + src/libcore/tests/num/mod.rs | 5 +++-- + src/libcore/tests/time.rs | 1 + + 4 files changed, 18 insertions(+), 2 deletions(-) + +diff --git a/src/libcore/tests/iter.rs b/src/libcore/tests/iter.rs +index c9096b7..be37fcd 100644 +--- a/src/libcore/tests/iter.rs ++++ b/src/libcore/tests/iter.rs +@@ -342,6 +342,7 @@ fn test_iterator_step_by_nth() { + } + + #[test] ++#[ignore] + fn test_iterator_step_by_nth_overflow() { + #[cfg(target_pointer_width = "8")] + type Bigger = u16; +@@ -2184,6 +2185,7 @@ fn test_range_inclusive_folds() { + } + + #[test] ++#[ignore] + fn test_range_size_hint() { + use core::usize::MAX as UMAX; + assert_eq!((0..0usize).size_hint(), (0, Some(0))); +@@ -2210,6 +2212,7 @@ fn test_range_size_hint() { + } + + #[test] ++#[ignore] + fn test_range_inclusive_size_hint() { + use core::usize::MAX as UMAX; + assert_eq!((1..=0usize).size_hint(), (0, Some(0))); +@@ -2305,6 +2308,7 @@ fn test_repeat_with_take_collect() { + } + + #[test] ++#[ignore] + fn test_successors() { + let mut powers_of_10 = successors(Some(1_u16), |n| n.checked_mul(10)); + assert_eq!(powers_of_10.by_ref().collect::>(), &[1, 10, 100, 1_000, 10_000]); +diff --git a/src/libcore/tests/num/bignum.rs b/src/libcore/tests/num/bignum.rs +index b9e15ec..32f6de8 100644 +--- a/src/libcore/tests/num/bignum.rs ++++ b/src/libcore/tests/num/bignum.rs +@@ -3,6 +3,7 @@ use core::num::bignum::tests::Big8x3 as Big; + + #[test] + #[should_panic] ++#[ignore] + fn test_from_u64_overflow() { + Big::from_u64(0x1000000); + } +@@ -19,12 +20,14 @@ fn test_add() { + + #[test] + #[should_panic] ++#[ignore] + fn test_add_overflow_1() { + Big::from_small(1).add(&Big::from_u64(0xffffff)); + } + + #[test] + #[should_panic] ++#[ignore] + fn test_add_overflow_2() { + Big::from_u64(0xffffff).add(&Big::from_small(1)); + } +@@ -42,6 +45,7 @@ fn test_add_small() { + + #[test] + #[should_panic] ++#[ignore] + fn test_add_small_overflow() { + Big::from_u64(0xffffff).add_small(1); + } +@@ -76,6 +80,7 @@ fn test_mul_small() { + + #[test] + #[should_panic] ++#[ignore] + fn test_mul_small_overflow() { + Big::from_u64(0x800000).mul_small(2); + } +@@ -118,12 +123,14 @@ fn test_mul_pow5() { + + #[test] + #[should_panic] ++#[ignore] + fn test_mul_pow5_overflow_1() { + Big::from_small(1).mul_pow5(12); + } + + #[test] + #[should_panic] ++#[ignore] + fn test_mul_pow5_overflow_2() { + Big::from_small(230).mul_pow5(8); + } +@@ -141,12 +148,14 @@ fn test_mul_digits() { + + #[test] + #[should_panic] ++#[ignore] + fn test_mul_digits_overflow_1() { + Big::from_u64(0x800000).mul_digits(&[2]); + } + + #[test] + #[should_panic] ++#[ignore] + fn test_mul_digits_overflow_2() { + Big::from_u64(0x1000).mul_digits(&[0, 0x10]); + } +@@ -206,6 +215,7 @@ fn test_get_bit() { + + #[test] + #[should_panic] ++#[ignore] + fn test_get_bit_out_of_range() { + Big::from_small(42).get_bit(24); + } +diff --git a/src/libcore/tests/num/mod.rs b/src/libcore/tests/num/mod.rs +index a17c094..5bb11d2 100644 +--- a/src/libcore/tests/num/mod.rs ++++ b/src/libcore/tests/num/mod.rs +@@ -63,6 +63,7 @@ pub fn test_num(ten: T, two: T) where + } + + #[test] ++#[ignore] + fn from_str_issue7588() { + let u : Option = u8::from_str_radix("1000", 10).ok(); + assert_eq!(u, None); +@@ -613,11 +614,9 @@ test_impl_try_from_signed_to_unsigned_err! { test_try_i64u32, i64, u32 } + test_impl_try_from_signed_to_unsigned_err! { test_try_i128u8, i128, u8 } + test_impl_try_from_signed_to_unsigned_err! { test_try_i128u16, i128, u16 } + test_impl_try_from_signed_to_unsigned_err! { test_try_i128u32, i128, u32 } +-test_impl_try_from_signed_to_unsigned_err! { test_try_i128u64, i128, u64 } + + assume_usize_width! { + test_impl_try_from_signed_to_unsigned_err! { test_try_isizeu8, isize, u8 } +- test_impl_try_from_signed_to_unsigned_err! { test_try_i128usize, i128, usize } + + cfg_block! { + #[cfg(target_pointer_width = "16")] { +@@ -640,6 +639,7 @@ macro_rules! test_float { + ($modname: ident, $fty: ty, $inf: expr, $neginf: expr, $nan: expr) => { mod $modname { + // FIXME(nagisa): these tests should test for sign of -0.0 + #[test] ++ #[ignore] + fn min() { + assert_eq!((0.0 as $fty).min(0.0), 0.0); + assert_eq!((-0.0 as $fty).min(-0.0), -0.0); +@@ -662,6 +662,7 @@ macro_rules! test_float { + assert!(($nan as $fty).min($nan).is_nan()); + } + #[test] ++ #[ignore] + fn max() { + assert_eq!((0.0 as $fty).max(0.0), 0.0); + assert_eq!((-0.0 as $fty).max(-0.0), -0.0); +diff --git a/src/libcore/tests/time.rs b/src/libcore/tests/time.rs +index fac70c4..9107a02 100644 +--- a/src/libcore/tests/time.rs ++++ b/src/libcore/tests/time.rs +@@ -127,6 +127,7 @@ fn mul() { + } + + #[test] ++#[ignore] + fn checked_mul() { + assert_eq!(Duration::new(0, 1).checked_mul(2), Some(Duration::new(0, 2))); + assert_eq!(Duration::new(1, 1).checked_mul(3), Some(Duration::new(3, 3))); +-- +2.21.0 (Apple Git-122) diff --git a/test.sh b/test.sh index 1f87c7203e3..1211461ac0e 100755 --- a/test.sh +++ b/test.sh @@ -76,6 +76,11 @@ cp ./target/*/debug/main ./raytracer_cg_clif hyperfine --runs ${RUN_RUNS:-10} ./raytracer_cg_llvm ./raytracer_cg_clif popd +pushd build_sysroot/sysroot_src/src/libcore/tests +rm -r sysroot_src/src/**/*/target/ || true +cargo test +popd + pushd regex echo "[TEST] rust-lang/regex example shootout-regex-dna" ../cargo.sh clean