c-ffi 0.4.6

C FFI utilities.
Documentation
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());
    }
}