Skip to content

Commit f4a43cd

Browse files
committed
mem: more tests for queue
1 parent db756f2 commit f4a43cd

File tree

1 file changed

+45
-1
lines changed

1 file changed

+45
-1
lines changed

Diff for: kernel/src/mem/queue.rs

+45-1
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ mod tests {
186186
setup_memory(1000);
187187
let mut queue = Queue::<usize, 10>::new();
188188
for i in 0..10 {
189-
queue.push_back(i).unwrap();
189+
assert_eq!(queue.push_back(i), Ok(()));
190190
}
191191
// sanity check that queue really is full
192192
assert_eq!(queue.push_back(1), Err(KernelError::OutOfMemory));
@@ -213,5 +213,49 @@ mod tests {
213213
assert_eq!(queue.pop_front(), Some(i));
214214
}
215215
}
216+
217+
#[test]
218+
fn growing_to_smaller_size_has_no_effect() {
219+
setup_memory(1000);
220+
let mut queue = Queue::<usize, 10>::new();
221+
for i in 0..10 {
222+
assert_eq!(queue.push_back(i), Ok(()));
223+
}
224+
assert_eq!(queue.len(), 10);
225+
queue.grow_capacity(1).unwrap();
226+
assert_eq!(queue.len(), 10);
227+
assert_eq!(queue.push_back(1), Err(KernelError::OutOfMemory));
228+
}
229+
230+
#[test]
231+
fn growing_multiple_times_consecutively_retains_state() {
232+
setup_memory(10000);
233+
let mut queue = Queue::<usize, 10>::new();
234+
for i in 0..10 {
235+
assert_eq!(queue.push_back(i), Ok(()));
236+
}
237+
assert_eq!(queue.len(), 10);
238+
239+
// pop and subsequently push more elements to make queue wrap
240+
for i in 0..5 {
241+
assert_eq!(queue.pop_front(), Some(i));
242+
}
243+
assert_eq!(queue.len(), 5);
244+
245+
for i in 10..15 {
246+
assert_eq!(queue.push_back(i), Ok(()));
247+
}
248+
249+
assert_eq!(queue.len(), 10);
250+
assert_eq!(*queue.front().unwrap(), 5);
251+
assert_eq!(*queue.back().unwrap(), 14);
252+
assert_eq!(queue.grow_capacity(20), Ok(()));
253+
assert_eq!(queue.grow_capacity(40), Ok(()));
254+
assert_eq!(queue.grow_capacity(100), Ok(()));
255+
assert_eq!(queue.grow_capacity(200), Ok(()));
256+
for i in 5..15 {
257+
assert_eq!(queue.pop_front(), Some(i));
258+
}
259+
}
216260
}
217261
// END TESTING

0 commit comments

Comments
 (0)