vec.rs 655 B

12345678910111213141516171819202122232425262728293031
  1. extern crate ralloc;
  2. #[test]
  3. fn test() {
  4. let mut vec = Vec::new();
  5. for i in 0..0xFFFF {
  6. // We're going to annoy the allocator by allocating a small chunk, after which we push.
  7. let _bx = Box::new(4);
  8. vec.push(i);
  9. }
  10. assert_eq!(vec[0xDEAD], 0xDEAD);
  11. assert_eq!(vec[0xBEAF], 0xBEAF);
  12. assert_eq!(vec[0xABCD], 0xABCD);
  13. assert_eq!(vec[0xFFAB], 0xFFAB);
  14. assert_eq!(vec[0xAAAA], 0xAAAA);
  15. for i in 0xFFFF..0 {
  16. assert_eq!(vec.pop(), Some(i));
  17. }
  18. for i in 0..0xFFFF {
  19. vec[i] = 0;
  20. assert_eq!(vec[i], 0);
  21. }
  22. drop(vec);
  23. ralloc::lock().debug_assert_no_leak();
  24. }