rust/tests/pass/calloc.rs

27 lines
551 B
Rust
Raw Normal View History

2020-06-28 11:31:34 +02:00
// ignore-windows: No libc on Windows
2019-04-08 01:12:50 +02:00
#![feature(rustc_private)]
extern crate libc;
2020-11-10 16:51:07 +01:00
use core::slice;
2019-04-08 01:12:50 +02:00
fn main() {
unsafe {
let p1 = libc::calloc(0, 0);
assert!(p1.is_null());
let p2 = libc::calloc(20, 0);
assert!(p2.is_null());
let p3 = libc::calloc(0, 20);
assert!(p3.is_null());
let p4 = libc::calloc(4, 8);
2019-04-08 01:12:50 +02:00
assert!(!p4.is_null());
let slice = slice::from_raw_parts(p4 as *const u8, 4 * 8);
2019-04-08 01:12:50 +02:00
assert_eq!(&slice, &[0_u8; 4 * 8]);
libc::free(p4);
2019-04-08 01:12:50 +02:00
}
}