| use std::alloc::{GlobalAlloc, Layout}; |
| use tikv_jemalloc_ctl::{Access, AsName}; |
| use tikv_jemallocator::Jemalloc; |
| |
| #[global_allocator] |
| static A: Jemalloc = Jemalloc; |
| |
| #[test] |
| fn smoke() { |
| let layout = Layout::from_size_align(100, 8).unwrap(); |
| unsafe { |
| let ptr = Jemalloc.alloc(layout); |
| assert!(!ptr.is_null()); |
| Jemalloc.dealloc(ptr, layout); |
| } |
| } |
| |
| #[test] |
| fn ctl_get_set() { |
| let epoch: u64 = "epoch\0".name().read().unwrap(); |
| assert!(epoch > 0); |
| "epoch\0".name().write(epoch).unwrap(); |
| } |
| |
| #[test] |
| #[should_panic] |
| fn ctl_panic_empty_get() { |
| let _: u64 = "".name().read().unwrap(); |
| } |
| |
| #[test] |
| #[should_panic] |
| fn ctl_panic_empty_set() { |
| let epoch: u64 = "epoch\0".name().read().unwrap(); |
| "".name().write(epoch).unwrap(); |
| } |
| |
| #[test] |
| #[should_panic] |
| fn ctl_panic_non_null_terminated_get() { |
| let _: u64 = "epoch".name().read().unwrap(); |
| } |
| |
| #[test] |
| #[should_panic] |
| fn ctl_panic_non_null_terminated_set() { |
| let epoch: u64 = "epoch\0".name().read().unwrap(); |
| "epoch".name().write(epoch).unwrap(); |
| } |