summaryrefslogtreecommitdiffstats
path: root/library/alloc/tests
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:20:29 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:20:29 +0000
commit631cd5845e8de329d0e227aaa707d7ea228b8f8f (patch)
treea1b87c8f8cad01cf18f7c5f57a08f102771ed303 /library/alloc/tests
parentAdding debian version 1.69.0+dfsg1-1. (diff)
downloadrustc-631cd5845e8de329d0e227aaa707d7ea228b8f8f.tar.xz
rustc-631cd5845e8de329d0e227aaa707d7ea228b8f8f.zip
Merging upstream version 1.70.0+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'library/alloc/tests')
-rw-r--r--library/alloc/tests/boxed.rs15
-rw-r--r--library/alloc/tests/lib.rs6
-rw-r--r--library/alloc/tests/str.rs26
-rw-r--r--library/alloc/tests/vec.rs22
-rw-r--r--library/alloc/tests/vec_deque.rs23
5 files changed, 55 insertions, 37 deletions
diff --git a/library/alloc/tests/boxed.rs b/library/alloc/tests/boxed.rs
index af49826ff..68ebd8e35 100644
--- a/library/alloc/tests/boxed.rs
+++ b/library/alloc/tests/boxed.rs
@@ -179,18 +179,3 @@ unsafe impl const Allocator for ConstAllocator {
self
}
}
-
-#[test]
-fn const_box() {
- const VALUE: u32 = {
- let mut boxed = Box::new_in(1u32, ConstAllocator);
- assert!(*boxed == 1);
-
- *boxed = 42;
- assert!(*boxed == 42);
-
- *Box::leak(boxed)
- };
-
- assert!(VALUE == 42);
-}
diff --git a/library/alloc/tests/lib.rs b/library/alloc/tests/lib.rs
index 2a93a242d..0667cd7bc 100644
--- a/library/alloc/tests/lib.rs
+++ b/library/alloc/tests/lib.rs
@@ -3,12 +3,11 @@
#![feature(assert_matches)]
#![feature(btree_drain_filter)]
#![feature(cow_is_borrowed)]
-#![feature(const_box)]
#![feature(const_convert)]
#![feature(const_cow_is_borrowed)]
#![feature(const_heap)]
#![feature(const_mut_refs)]
-#![feature(const_nonnull_slice_from_raw_parts)]
+#![feature(const_slice_from_raw_parts_mut)]
#![feature(const_ptr_write)]
#![feature(const_try)]
#![feature(core_intrinsics)]
@@ -25,7 +24,6 @@
#![feature(binary_heap_into_iter_sorted)]
#![feature(binary_heap_drain_sorted)]
#![feature(slice_ptr_get)]
-#![feature(binary_heap_retain)]
#![feature(binary_heap_as_slice)]
#![feature(inplace_iteration)]
#![feature(iter_advance_by)]
@@ -38,13 +36,11 @@
#![feature(const_default_impls)]
#![feature(const_trait_impl)]
#![feature(const_str_from_utf8)]
-#![feature(nonnull_slice_from_raw_parts)]
#![feature(panic_update_hook)]
#![feature(pointer_is_aligned)]
#![feature(slice_flatten)]
#![feature(thin_box)]
#![feature(strict_provenance)]
-#![feature(once_cell)]
#![feature(drain_keep_rest)]
#![deny(fuzzy_provenance_casts)]
#![deny(unsafe_op_in_unsafe_fn)]
diff --git a/library/alloc/tests/str.rs b/library/alloc/tests/str.rs
index 4d182be02..c1dbbde08 100644
--- a/library/alloc/tests/str.rs
+++ b/library/alloc/tests/str.rs
@@ -1499,13 +1499,25 @@ fn test_split_whitespace() {
#[test]
fn test_lines() {
- let data = "\nMäry häd ä little lämb\n\r\nLittle lämb\n";
- let lines: Vec<&str> = data.lines().collect();
- assert_eq!(lines, ["", "Märy häd ä little lämb", "", "Little lämb"]);
-
- let data = "\r\nMäry häd ä little lämb\n\nLittle lämb"; // no trailing \n
- let lines: Vec<&str> = data.lines().collect();
- assert_eq!(lines, ["", "Märy häd ä little lämb", "", "Little lämb"]);
+ fn t(data: &str, expected: &[&str]) {
+ let lines: Vec<&str> = data.lines().collect();
+ assert_eq!(lines, expected);
+ }
+ t("", &[]);
+ t("\n", &[""]);
+ t("\n2nd", &["", "2nd"]);
+ t("\r\n", &[""]);
+ t("bare\r", &["bare\r"]);
+ t("bare\rcr", &["bare\rcr"]);
+ t("Text\n\r", &["Text", "\r"]);
+ t(
+ "\nMäry häd ä little lämb\n\r\nLittle lämb\n",
+ &["", "Märy häd ä little lämb", "", "Little lämb"],
+ );
+ t(
+ "\r\nMäry häd ä little lämb\n\nLittle lämb",
+ &["", "Märy häd ä little lämb", "", "Little lämb"],
+ );
}
#[test]
diff --git a/library/alloc/tests/vec.rs b/library/alloc/tests/vec.rs
index 2f07c2911..3ee16f04e 100644
--- a/library/alloc/tests/vec.rs
+++ b/library/alloc/tests/vec.rs
@@ -1,5 +1,7 @@
use core::alloc::{Allocator, Layout};
+use core::assert_eq;
use core::iter::IntoIterator;
+use core::num::NonZeroUsize;
use core::ptr::NonNull;
use std::alloc::System;
use std::assert_matches::assert_matches;
@@ -1062,21 +1064,21 @@ fn test_into_iter_leak() {
#[test]
fn test_into_iter_advance_by() {
- let mut i = [1, 2, 3, 4, 5].into_iter();
- i.advance_by(0).unwrap();
- i.advance_back_by(0).unwrap();
+ let mut i = vec![1, 2, 3, 4, 5].into_iter();
+ assert_eq!(i.advance_by(0), Ok(()));
+ assert_eq!(i.advance_back_by(0), Ok(()));
assert_eq!(i.as_slice(), [1, 2, 3, 4, 5]);
- i.advance_by(1).unwrap();
- i.advance_back_by(1).unwrap();
+ assert_eq!(i.advance_by(1), Ok(()));
+ assert_eq!(i.advance_back_by(1), Ok(()));
assert_eq!(i.as_slice(), [2, 3, 4]);
- assert_eq!(i.advance_back_by(usize::MAX), Err(3));
+ assert_eq!(i.advance_back_by(usize::MAX), Err(NonZeroUsize::new(usize::MAX - 3).unwrap()));
- assert_eq!(i.advance_by(usize::MAX), Err(0));
+ assert_eq!(i.advance_by(usize::MAX), Err(NonZeroUsize::new(usize::MAX).unwrap()));
- i.advance_by(0).unwrap();
- i.advance_back_by(0).unwrap();
+ assert_eq!(i.advance_by(0), Ok(()));
+ assert_eq!(i.advance_back_by(0), Ok(()));
assert_eq!(i.len(), 0);
}
@@ -1124,7 +1126,7 @@ fn test_into_iter_zst() {
for _ in vec![C; 5].into_iter().rev() {}
let mut it = vec![C, C].into_iter();
- it.advance_by(1).unwrap();
+ assert_eq!(it.advance_by(1), Ok(()));
drop(it);
let mut it = vec![C, C].into_iter();
diff --git a/library/alloc/tests/vec_deque.rs b/library/alloc/tests/vec_deque.rs
index 5a0b852e8..ddc27e34e 100644
--- a/library/alloc/tests/vec_deque.rs
+++ b/library/alloc/tests/vec_deque.rs
@@ -1,3 +1,4 @@
+use core::num::NonZeroUsize;
use std::assert_matches::assert_matches;
use std::collections::TryReserveErrorKind::*;
use std::collections::{vec_deque::Drain, VecDeque};
@@ -426,6 +427,28 @@ fn test_into_iter() {
assert_eq!(it.next(), Some(7));
assert_eq!(it.size_hint(), (5, Some(5)));
}
+
+ // advance_by
+ {
+ let mut d = VecDeque::new();
+ for i in 0..=4 {
+ d.push_back(i);
+ }
+ for i in 6..=8 {
+ d.push_front(i);
+ }
+
+ let mut it = d.into_iter();
+ assert_eq!(it.advance_by(1), Ok(()));
+ assert_eq!(it.next(), Some(7));
+ assert_eq!(it.advance_back_by(1), Ok(()));
+ assert_eq!(it.next_back(), Some(3));
+
+ let mut it = VecDeque::from(vec![1, 2, 3, 4, 5]).into_iter();
+ assert_eq!(it.advance_by(10), Err(NonZeroUsize::new(5).unwrap()));
+ let mut it = VecDeque::from(vec![1, 2, 3, 4, 5]).into_iter();
+ assert_eq!(it.advance_back_by(10), Err(NonZeroUsize::new(5).unwrap()));
+ }
}
#[test]