Skip to content

Commit 926b1fe

Browse files
committed
Cleanup test structure for Chain and unsync Bump
1 parent 404ab04 commit 926b1fe

File tree

3 files changed

+50
-18
lines changed

3 files changed

+50
-18
lines changed

static-alloc/Cargo.toml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,8 @@ required-features = ["DISABLED"]
4848
[[test]]
4949
name = "unsync"
5050
path = "tests/unsync.rs"
51-
required-features = ["alloc"]
51+
52+
[[test]]
53+
name = "chain"
54+
path = "tests/chain.rs"
55+
required-features = ["nightly_chain"]

static-alloc/tests/chain.rs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
use static_alloc::leaked::LeakBox;
2+
use static_alloc::unsync::Chain;
3+
4+
#[test]
5+
#[cfg(feature = "nightly_chain")]
6+
fn unsync_chain() {
7+
let chain = Chain::new(20).unwrap();
8+
9+
let n1 = chain.bump_box::<u64>().unwrap();
10+
assert_eq!(chain.remaining_capacity(), 12);
11+
12+
let n2 = chain.bump_box::<u64>().unwrap();
13+
assert_eq!(chain.remaining_capacity(), 4);
14+
15+
let n3 = chain.bump_box::<u32>().unwrap();
16+
assert_eq!(chain.remaining_capacity(), 0);
17+
18+
assert!(chain.bump_box::<u32>().is_err());
19+
20+
chain.chain(Chain::new(40).unwrap());
21+
assert!(chain.bump_box::<u32>().is_ok());
22+
23+
let mut n1 = LeakBox::write(n1, 10);
24+
let mut n2 = LeakBox::write(n2, 20);
25+
let mut n3 = LeakBox::write(n3, 30);
26+
27+
*n1 += 1;
28+
*n2 += 2;
29+
*n3 += 3;
30+
31+
assert_eq!(*n1, 11);
32+
assert_eq!(*n2, 22);
33+
assert_eq!(*n3, 33);
34+
}

static-alloc/tests/unsync.rs

Lines changed: 11 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,16 @@
1+
use core::mem::MaybeUninit;
12
use static_alloc::leaked::LeakBox;
2-
use static_alloc::unsync::{Chain, MemBump};
3+
use static_alloc::unsync::MemBump;
34

45
#[test]
5-
fn unsync_bump() {
6-
let chain = Chain::new(20).unwrap();
6+
fn raw_from_mem() {
7+
let mut memory = [MaybeUninit::new(0); 128];
8+
let bump = MemBump::from_mem(&mut memory)
9+
.expect("Enough memory for its metadata");
710

8-
let n1 = chain.bump_box::<u64>().unwrap();
9-
assert_eq!(chain.remaining_capacity(), 12);
10-
11-
let n2 = chain.bump_box::<u64>().unwrap();
12-
assert_eq!(chain.remaining_capacity(), 4);
13-
14-
let n3 = chain.bump_box::<u32>().unwrap();
15-
assert_eq!(chain.remaining_capacity(), 0);
16-
17-
assert!(chain.bump_box::<u32>().is_err());
18-
19-
chain.chain(Chain::new(40).unwrap());
20-
assert!(chain.bump_box::<u32>().is_ok());
11+
let n1 = bump.bump_box::<u64>().unwrap();
12+
let n2 = bump.bump_box::<u64>().unwrap();
13+
let n3 = bump.bump_box::<u64>().unwrap();
2114

2215
let mut n1 = LeakBox::write(n1, 10);
2316
let mut n2 = LeakBox::write(n2, 20);
@@ -33,7 +26,8 @@ fn unsync_bump() {
3326
}
3427

3528
#[test]
36-
fn bump() {
29+
#[cfg(feature = "alloc")]
30+
fn allocate_with_fixed_capacity() {
3731
const CAPACITY: usize = 16;
3832
let bump = MemBump::new(CAPACITY);
3933
for i in 0..CAPACITY {

0 commit comments

Comments
 (0)