|
- #[macro_use]
- extern crate lazy_static;
-
- use std::ffi::CString;
- use std::os::raw::c_char;
-
- mod version;
- mod text_parser;
- mod text_parser_bindings;
- mod instruction;
- mod instruction_parser;
-
- pub(crate) unsafe fn allocate_cstring(input: &str) -> *mut c_char {
- let input_c = CString::new(input).expect("Rust &str -> CString conversion failed");
- let space = libc::malloc(libc::strlen(input_c.as_ptr()) + 1) as *mut c_char;
- libc::strcpy(space, input_c.as_ptr());
- return space;
- }
-
- #[cfg(test)]
- mod tests {
- use std::io::Read;
-
- #[test]
- fn it_works() {
- assert_eq!(2 + 2, 4);
- }
-
- #[test]
- fn vec_read_test() {
- let vec: Vec<u8> = vec![1, 2, 3, 4, 5];
- let file_res = crate::text_parser::FilmscriptFile::from_vec(&vec);
- assert!(file_res.is_ok());
- let mut f = file_res.unwrap();
- let buf: &mut [u8] = &mut [0; 1];
- assert!(f.read(buf).is_ok());
- println!("Buffer contains value: {}", buf[0]);
- assert!(f.read(buf).is_ok());
- println!("Buffer contains value: {}", buf[0]);
- assert!(f.read(buf).is_ok());
- println!("Buffer contains value: {}", buf[0]);
- assert!(f.read(buf).is_ok());
- println!("Buffer contains value: {}", buf[0]);
- assert!(f.read(buf).is_ok());
- println!("Buffer contains value: {}", buf[0]);
- }
- }
|