about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbjorn3 <bjorn3@users.noreply.github.com>2019-11-24 15:44:39 +0100
committerbjorn3 <bjorn3@users.noreply.github.com>2019-11-24 15:44:39 +0100
commite9d3569e08987e3d034a6c239d71ef8ec15c7cf2 (patch)
tree3a2bd94c6c05de697e0085f621d545abc78e93c6
parent53e083323257d0d79d9f0b2d365232a3c1f085ca (diff)
downloadrust-e9d3569e08987e3d034a6c239d71ef8ec15c7cf2.tar.gz
rust-e9d3569e08987e3d034a6c239d71ef8ec15c7cf2.zip
Run libcore tests
-rwxr-xr-xbuild_sysroot/build_sysroot.sh1
-rwxr-xr-xbuild_sysroot/prepare_sysroot_src.sh3
-rw-r--r--example/std_example.rs4
-rw-r--r--patches/0022-core-Disable-not-compiling-tests.patch123
-rw-r--r--patches/0023-core-Ignore-failing-tests.patch183
-rwxr-xr-xtest.sh5
6 files changed, 317 insertions, 2 deletions
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 <bjorn3@users.noreply.github.com>
+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<T: DecodableFloat>(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 <bjorn3@users.noreply.github.com>
+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::<Vec<_>>(), &[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<T>(ten: T, two: T) where
+ }
+ 
+ #[test]
++#[ignore]
+ fn from_str_issue7588() {
+     let u : Option<u8> = 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