use c_ffi::Args;
#[test]
fn verify_args() {
let input = [
"first\0",
"second\0",
"third\0",
"fourth\0",
];
let input_ptrs = [
input[0].as_ptr(),
input[1].as_ptr(),
input[2].as_ptr(),
input[3].as_ptr(),
];
let args = unsafe {
Args::new(input_ptrs.len() as isize, input_ptrs.as_ptr()).expect("Successfully create args")
};
for (idx, arg) in args.into_iter().enumerate() {
let expected = input[idx];
let expected = &expected[..expected.len()-1];
assert_eq!(expected, arg);
}
}
#[should_panic]
#[test]
fn args_must_fail_validate_null_ptr() {
unsafe {
let _ = Args::new(5, core::ptr::null());
}
}
#[should_panic]
#[test]
fn args_must_fail_validate_zero() {
let test = [];
unsafe {
let _ =Args::new(0, test.as_ptr());
}
}