1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
#![allow(non_upper_case_globals)] #![allow(non_camel_case_types)] include!(concat!(env!("OUT_DIR"), "/bindings.rs")); #[cfg(test)] mod tests { use super::*; use std::ffi::CStr; use std::os::raw::c_char; #[test] fn test_discid_put() { unsafe { let disc = discid_new(); let first_track = 1; let offsets: [i32; 3] = [2000, 150, 1000]; let last_track = (offsets.len() - 1) as i32; let success = discid_put(disc, first_track, last_track, offsets.as_ptr() as *mut i32); let error_msg_ptr = discid_get_error_msg(disc); assert!(success == 1, "discid_put: {}", from_str_ptr(error_msg_ptr)); let id_str_ptr = discid_get_id(disc); assert_eq!("YPv1TJ03f7pu6fgwp1cpr3cVsf0-", from_str_ptr(id_str_ptr)); discid_free(disc); } } fn from_str_ptr(str_ptr: *mut c_char) -> &'static str { let c_str: &CStr = unsafe { CStr::from_ptr(str_ptr) }; c_str.to_str().unwrap() } }