diff options
Diffstat (limited to 'library/alloc/tests/alloc.rs')
| -rw-r--r-- | library/alloc/tests/alloc.rs | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/library/alloc/tests/alloc.rs b/library/alloc/tests/alloc.rs new file mode 100644 index 00000000000..1e722d66795 --- /dev/null +++ b/library/alloc/tests/alloc.rs @@ -0,0 +1,29 @@ +use alloc::alloc::*; +use alloc::boxed::Box; + +extern crate test; +use test::Bencher; + +#[test] +fn allocate_zeroed() { + unsafe { + let layout = Layout::from_size_align(1024, 1).unwrap(); + let ptr = + Global.allocate_zeroed(layout.clone()).unwrap_or_else(|_| handle_alloc_error(layout)); + + let mut i = ptr.as_non_null_ptr().as_ptr(); + let end = i.add(layout.size()); + while i < end { + assert_eq!(*i, 0); + i = i.add(1); + } + Global.deallocate(ptr.as_non_null_ptr(), layout); + } +} + +#[bench] +fn alloc_owned_small(b: &mut Bencher) { + b.iter(|| { + let _: Box<_> = Box::new(10); + }) +} |
