fix pstr_iter_tests test
This commit is contained in:
@@ -678,16 +678,7 @@ impl Heap {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn clear(&mut self) {
|
pub(crate) fn clear(&mut self) {
|
||||||
unsafe {
|
*self = Heap::new();
|
||||||
let layout =
|
|
||||||
alloc::Layout::from_size_align(self.inner.byte_cap, size_of::<HeapCellValue>())
|
|
||||||
.unwrap();
|
|
||||||
alloc::dealloc(self.inner.ptr, layout);
|
|
||||||
}
|
|
||||||
|
|
||||||
self.inner.ptr = ptr::null_mut();
|
|
||||||
self.inner.byte_len = 0;
|
|
||||||
self.inner.byte_cap = 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn store_resource_error(&mut self) {
|
pub(crate) fn store_resource_error(&mut self) {
|
||||||
|
|||||||
@@ -217,6 +217,8 @@ mod test {
|
|||||||
fn pstr_iter_tests() {
|
fn pstr_iter_tests() {
|
||||||
let mut wam = MockWAM::new();
|
let mut wam = MockWAM::new();
|
||||||
|
|
||||||
|
let init_len = wam.machine_st.heap.cell_len();
|
||||||
|
|
||||||
let pstr_cell = wam.machine_st.heap.allocate_pstr("abc ").unwrap();
|
let pstr_cell = wam.machine_st.heap.allocate_pstr("abc ").unwrap();
|
||||||
wam.machine_st
|
wam.machine_st
|
||||||
.heap
|
.heap
|
||||||
@@ -233,7 +235,7 @@ mod test {
|
|||||||
assert_eq!(
|
assert_eq!(
|
||||||
iter.next(),
|
iter.next(),
|
||||||
Some(PStrIteratee::PStrSlice {
|
Some(PStrIteratee::PStrSlice {
|
||||||
slice_loc: heap_index!(1),
|
slice_loc: heap_index!(init_len),
|
||||||
slice_len: "abc ".len()
|
slice_len: "abc ".len()
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
@@ -241,9 +243,9 @@ mod test {
|
|||||||
assert!(!iter.is_cyclic());
|
assert!(!iter.is_cyclic());
|
||||||
}
|
}
|
||||||
|
|
||||||
assert_eq!(wam.machine_st.heap[2], empty_list_as_cell!());
|
assert_eq!(wam.machine_st.heap[init_len + 1], empty_list_as_cell!());
|
||||||
|
|
||||||
wam.machine_st.heap[2] = pstr_loc_as_cell!(heap_index!(3));
|
wam.machine_st.heap[init_len + 1] = pstr_loc_as_cell!(heap_index!(init_len + 2));
|
||||||
|
|
||||||
wam.machine_st.heap.allocate_pstr("def").unwrap();
|
wam.machine_st.heap.allocate_pstr("def").unwrap();
|
||||||
let h = wam.machine_st.heap.cell_len();
|
let h = wam.machine_st.heap.cell_len();
|
||||||
@@ -256,14 +258,14 @@ mod test {
|
|||||||
assert_eq!(
|
assert_eq!(
|
||||||
iter.next(),
|
iter.next(),
|
||||||
Some(PStrIteratee::PStrSlice {
|
Some(PStrIteratee::PStrSlice {
|
||||||
slice_loc: heap_index!(1),
|
slice_loc: heap_index!(init_len),
|
||||||
slice_len: "abc ".len()
|
slice_len: "abc ".len()
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
iter.next(),
|
iter.next(),
|
||||||
Some(PStrIteratee::PStrSlice {
|
Some(PStrIteratee::PStrSlice {
|
||||||
slice_loc: heap_index!(3),
|
slice_loc: heap_index!(init_len + 2),
|
||||||
slice_len: "def".len(),
|
slice_len: "def".len(),
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
@@ -282,14 +284,14 @@ mod test {
|
|||||||
assert_eq!(
|
assert_eq!(
|
||||||
iter.next(),
|
iter.next(),
|
||||||
Some(PStrIteratee::PStrSlice {
|
Some(PStrIteratee::PStrSlice {
|
||||||
slice_loc: heap_index!(1),
|
slice_loc: heap_index!(init_len),
|
||||||
slice_len: "abc ".len()
|
slice_len: "abc ".len()
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
iter.next(),
|
iter.next(),
|
||||||
Some(PStrIteratee::PStrSlice {
|
Some(PStrIteratee::PStrSlice {
|
||||||
slice_loc: heap_index!(3),
|
slice_loc: heap_index!(init_len + 2),
|
||||||
slice_len: "def".len(),
|
slice_len: "def".len(),
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
@@ -298,7 +300,7 @@ mod test {
|
|||||||
assert!(!iter.is_cyclic());
|
assert!(!iter.is_cyclic());
|
||||||
}
|
}
|
||||||
|
|
||||||
wam.machine_st.heap[h] = pstr_loc_as_cell!(heap_index!(3));
|
wam.machine_st.heap[h] = pstr_loc_as_cell!(heap_index!(init_len + 2));
|
||||||
|
|
||||||
{
|
{
|
||||||
let mut iter = HeapPStrIter::new(&wam.machine_st.heap, 0);
|
let mut iter = HeapPStrIter::new(&wam.machine_st.heap, 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user