Vendor dependencies for 0.3.0 release

This commit is contained in:
2025-09-27 10:29:08 -05:00
parent 0c8d39d483
commit 82ab7f317b
26803 changed files with 16134934 additions and 0 deletions

212
vendor/crossbeam-deque/tests/steal.rs vendored Normal file
View File

@@ -0,0 +1,212 @@
use crossbeam_deque::Steal::Success;
use crossbeam_deque::{Injector, Worker};
#[test]
fn steal_fifo() {
let w = Worker::new_fifo();
for i in 1..=3 {
w.push(i);
}
let s = w.stealer();
assert_eq!(s.steal(), Success(1));
assert_eq!(s.steal(), Success(2));
assert_eq!(s.steal(), Success(3));
}
#[test]
fn steal_lifo() {
let w = Worker::new_lifo();
for i in 1..=3 {
w.push(i);
}
let s = w.stealer();
assert_eq!(s.steal(), Success(1));
assert_eq!(s.steal(), Success(2));
assert_eq!(s.steal(), Success(3));
}
#[test]
fn steal_injector() {
let q = Injector::new();
for i in 1..=3 {
q.push(i);
}
assert_eq!(q.steal(), Success(1));
assert_eq!(q.steal(), Success(2));
assert_eq!(q.steal(), Success(3));
}
#[test]
fn steal_batch_fifo_fifo() {
let w = Worker::new_fifo();
for i in 1..=4 {
w.push(i);
}
let s = w.stealer();
let w2 = Worker::new_fifo();
assert_eq!(s.steal_batch(&w2), Success(()));
assert_eq!(w2.pop(), Some(1));
assert_eq!(w2.pop(), Some(2));
}
#[test]
fn steal_batch_lifo_lifo() {
let w = Worker::new_lifo();
for i in 1..=4 {
w.push(i);
}
let s = w.stealer();
let w2 = Worker::new_lifo();
assert_eq!(s.steal_batch(&w2), Success(()));
assert_eq!(w2.pop(), Some(2));
assert_eq!(w2.pop(), Some(1));
}
#[test]
fn steal_batch_fifo_lifo() {
let w = Worker::new_fifo();
for i in 1..=4 {
w.push(i);
}
let s = w.stealer();
let w2 = Worker::new_lifo();
assert_eq!(s.steal_batch(&w2), Success(()));
assert_eq!(w2.pop(), Some(1));
assert_eq!(w2.pop(), Some(2));
}
#[test]
fn steal_batch_lifo_fifo() {
let w = Worker::new_lifo();
for i in 1..=4 {
w.push(i);
}
let s = w.stealer();
let w2 = Worker::new_fifo();
assert_eq!(s.steal_batch(&w2), Success(()));
assert_eq!(w2.pop(), Some(2));
assert_eq!(w2.pop(), Some(1));
}
#[test]
fn steal_batch_injector_fifo() {
let q = Injector::new();
for i in 1..=4 {
q.push(i);
}
let w2 = Worker::new_fifo();
assert_eq!(q.steal_batch(&w2), Success(()));
assert_eq!(w2.pop(), Some(1));
assert_eq!(w2.pop(), Some(2));
}
#[test]
fn steal_batch_injector_lifo() {
let q = Injector::new();
for i in 1..=4 {
q.push(i);
}
let w2 = Worker::new_lifo();
assert_eq!(q.steal_batch(&w2), Success(()));
assert_eq!(w2.pop(), Some(1));
assert_eq!(w2.pop(), Some(2));
}
#[test]
fn steal_batch_and_pop_fifo_fifo() {
let w = Worker::new_fifo();
for i in 1..=6 {
w.push(i);
}
let s = w.stealer();
let w2 = Worker::new_fifo();
assert_eq!(s.steal_batch_and_pop(&w2), Success(1));
assert_eq!(w2.pop(), Some(2));
assert_eq!(w2.pop(), Some(3));
}
#[test]
fn steal_batch_and_pop_lifo_lifo() {
let w = Worker::new_lifo();
for i in 1..=6 {
w.push(i);
}
let s = w.stealer();
let w2 = Worker::new_lifo();
assert_eq!(s.steal_batch_and_pop(&w2), Success(3));
assert_eq!(w2.pop(), Some(2));
assert_eq!(w2.pop(), Some(1));
}
#[test]
fn steal_batch_and_pop_fifo_lifo() {
let w = Worker::new_fifo();
for i in 1..=6 {
w.push(i);
}
let s = w.stealer();
let w2 = Worker::new_lifo();
assert_eq!(s.steal_batch_and_pop(&w2), Success(1));
assert_eq!(w2.pop(), Some(2));
assert_eq!(w2.pop(), Some(3));
}
#[test]
fn steal_batch_and_pop_lifo_fifo() {
let w = Worker::new_lifo();
for i in 1..=6 {
w.push(i);
}
let s = w.stealer();
let w2 = Worker::new_fifo();
assert_eq!(s.steal_batch_and_pop(&w2), Success(3));
assert_eq!(w2.pop(), Some(2));
assert_eq!(w2.pop(), Some(1));
}
#[test]
fn steal_batch_and_pop_injector_fifo() {
let q = Injector::new();
for i in 1..=6 {
q.push(i);
}
let w2 = Worker::new_fifo();
assert_eq!(q.steal_batch_and_pop(&w2), Success(1));
assert_eq!(w2.pop(), Some(2));
assert_eq!(w2.pop(), Some(3));
}
#[test]
fn steal_batch_and_pop_injector_lifo() {
let q = Injector::new();
for i in 1..=6 {
q.push(i);
}
let w2 = Worker::new_lifo();
assert_eq!(q.steal_batch_and_pop(&w2), Success(1));
assert_eq!(w2.pop(), Some(2));
assert_eq!(w2.pop(), Some(3));
}