#[doc(inline)]
pub use core::alloc::*;
+#[cfg(test)]
+mod tests;
+
extern "Rust" {
// These are the magic symbols to call the global allocator. rustc generates
// them from the `#[global_allocator]` attribute if there is one, or uses the
}
unsafe { oom_impl(layout) }
}
-
-#[cfg(test)]
-mod tests {
- extern crate test;
- use test::Bencher;
- use crate::boxed::Box;
- use crate::alloc::{Global, Alloc, Layout, handle_alloc_error};
-
- #[test]
- fn allocate_zeroed() {
- unsafe {
- let layout = Layout::from_size_align(1024, 1).unwrap();
- let ptr = Global.alloc_zeroed(layout.clone())
- .unwrap_or_else(|_| handle_alloc_error(layout));
-
- let mut i = ptr.cast::<u8>().as_ptr();
- let end = i.add(layout.size());
- while i < end {
- assert_eq!(*i, 0);
- i = i.offset(1);
- }
- Global.dealloc(ptr, layout);
- }
- }
-
- #[bench]
- #[cfg(not(miri))] // Miri does not support benchmarks
- fn alloc_owned_small(b: &mut Bencher) {
- b.iter(|| {
- let _: Box<_> = box 10;
- })
- }
-}