use core::ptr::{null, null_mut}; use std::ffi::{CStr, CString}; use serial_test::serial; // serialize tests w/ sys::notcurses_init() use libnotcurses_sys as sys; #[test] #[serial] fn get_notcurses_version() { let c_str = unsafe { let s = sys::notcurses_version(); assert!(!s.is_null()); CStr::from_ptr(s) }; let r_str = c_str.to_str().unwrap(); print!("rust-bound notcurses v{} ", r_str); } #[test] #[serial] fn create_notcurses_context() { unsafe { let _ = libc::setlocale(libc::LC_ALL, CString::new("").unwrap().as_ptr()); let opts = sys::NotcursesOptions { loglevel: 0, termtype: null(), renderfp: null_mut(), margin_t: 0, margin_r: 0, margin_b: 0, margin_l: 0, flags: (sys::NCOPTION_NO_ALTERNATE_SCREEN | sys::NCOPTION_INHIBIT_SETLOCALE | sys::NCOPTION_SUPPRESS_BANNERS), }; let nc = sys::notcurses_init(&opts, null_mut()); sys::notcurses_stop(nc); } } #[test] #[serial] fn create_direct_context() { unsafe { let _ = libc::setlocale(libc::LC_ALL, CString::new("").unwrap().as_ptr()); let nc = sys::ncdirect_init(null_mut(), null_mut(), 0); sys::ncdirect_stop(nc); } }