rust: start adding notcurses tests

dankamongmen/clock_nanosleep_portable
joseLuís 4 years ago
parent 00f5001342
commit d9a74dab26

@ -1,44 +1,44 @@
// functions already exported by bindgen : 36
// ------------------------------------------
// notcurses_at_yx
// notcurses_bottom
// notcurses_canchangecolor
// notcurses_canfade
// notcurses_canopen_images
// notcurses_canopen_videos
// notcurses_cansixel
// notcurses_cantruecolor
// notcurses_canutf8
// notcurses_cursor_disable
// notcurses_cursor_enable
// notcurses_debug
// notcurses_drop_planes
// notcurses_getc
// notcurses_init
// notcurses_inputready_fd
// notcurses_lex_blitter
// notcurses_lex_margins
// notcurses_lex_scalemode
// notcurses_mouse_disable
// notcurses_mouse_enable
// notcurses_palette_size
// notcurses_refresh
// notcurses_render
// notcurses_render_to_buffer
// notcurses_render_to_file
// notcurses_stats
// notcurses_stats_alloc
// notcurses_stats_reset
// notcurses_stdplane
// notcurses_stdplane_const
// notcurses_stop
// notcurses_str_blitter
// notcurses_str_scalemode
// notcurses_supported_styles
// notcurses_top
// notcurses_ucs32_to_utf8
// notcurses_version
// notcurses_version_components
// notcurses_at_yx
// notcurses_bottom
//# notcurses_canchangecolor
//# notcurses_canfade
//# notcurses_canopen_images
//# notcurses_canopen_videos
//# notcurses_cansixel
//# notcurses_cantruecolor
//# notcurses_canutf8
// notcurses_cursor_disable
// notcurses_cursor_enable
// notcurses_debug
// notcurses_drop_planes
// notcurses_getc
//# notcurses_init
// notcurses_inputready_fd
// notcurses_lex_blitter
// notcurses_lex_margins
// notcurses_lex_scalemode
// notcurses_mouse_disable
// notcurses_mouse_enable
// notcurses_palette_size
// notcurses_refresh
// notcurses_render
// notcurses_render_to_buffer
// notcurses_render_to_file
// notcurses_stats
// notcurses_stats_alloc
// notcurses_stats_reset
// notcurses_stdplane
// notcurses_stdplane_const
//# notcurses_stop
// notcurses_str_blitter
// notcurses_str_scalemode
// notcurses_supported_styles
// notcurses_top
// notcurses_ucs32_to_utf8
// notcurses_version
// notcurses_version_components
//
// static inline functions total: 6
// ----------------------------------------- (done / remaining)
@ -217,12 +217,146 @@ pub fn notcurses_term_dim_yx(nc: &Notcurses, rows: &mut i32, cols: &mut i32) {
#[cfg(test)]
mod test {
// use super::nc;
// use serial_test::serial;
use libc_print::*;
use serial_test::serial;
use crate::{notcurses_stop, Notcurses};
/*
#[test]
#[serial]
fn () {
}
*/
// Test the bindgen functions ----------------------------------------------
#[test]
#[serial]
#[ignore]
// FIXME: always return null
fn notcurses_at_yx() {
unsafe {
let nc = Notcurses::new();
let mut sm = 0;
let mut ch = 0;
let res = crate::notcurses_at_yx(nc, 0, 0, &mut sm, &mut ch);
notcurses_stop(nc);
assert![!res.is_null()];
//libc_print!("[{}] ", res);
}
}
// TODO: a multiplatform way of dealing with C FILE
//
// links:
// https://www.reddit.com/r/rust/comments/8sfjp6/converting_between_file_and_stdfsfile/
// https://stackoverflow.com/questions/38360996/how-do-i-access-fields-of-a-mut-libcfile
#[test]
#[serial]
// FIXME: need a solution to deal with _IO_FILE from Rust
#[ignore]
fn notcurses_debug() {
unsafe {
let nc = Notcurses::new();
// https://doc.rust-lang.org/stable/std/primitive.pointer.html
let mut _p: *mut i8 = &mut 0;
let mut _size: *mut usize = &mut 0;
// https://docs.rs/libc/0.2.80/libc/fn.open_memstream.html
let mut file = libc::open_memstream(&mut _p, _size)
as *mut _ as *mut crate::bindgen::_IO_FILE;
crate::notcurses_debug(nc, file);
notcurses_stop(nc);
// as _IO_FILE struct;
let mut debug0 = *file;
libc_println!("{:#?}", debug0);
// as enum libc::FILE
let mut debug1 = file as *mut _ as *mut libc::FILE;
libc_println!("{:#?}", debug1);
}
}
#[test]
#[serial]
fn notcurses_canchangecolor() {
unsafe {
let nc = Notcurses::new();
let res = crate::notcurses_canchangecolor(nc);
notcurses_stop(nc);
libc_print!("[{}] ", res);
}
}
#[test]
#[serial]
fn notcurses_canfade() {
unsafe {
let nc = Notcurses::new();
let res = crate::notcurses_canfade(nc);
notcurses_stop(nc);
libc_print!("[{}] ", res);
}
}
#[test]
#[serial]
fn notcurses_canopen_images() {
unsafe {
let nc = Notcurses::new();
let res = crate::notcurses_canopen_images(nc);
notcurses_stop(nc);
libc_print!("[{}] ", res);
}
}
#[test]
#[serial]
fn notcurses_canopen_videos() {
unsafe {
let nc = Notcurses::new();
let res = crate::notcurses_canopen_videos(nc);
notcurses_stop(nc);
libc_print!("[{}] ", res);
}
}
#[test]
#[serial]
fn notcurses_cansixel() {
unsafe {
let nc = Notcurses::new();
let res = crate::notcurses_cansixel(nc);
notcurses_stop(nc);
libc_print!("[{}] ", res);
}
}
#[test]
#[serial]
fn notcurses_cantruecolor() {
unsafe {
let nc = Notcurses::new();
let res = crate::notcurses_cantruecolor(nc);
notcurses_stop(nc);
libc_print!("[{}] ", res);
}
}
#[test]
#[serial]
fn notcurses_canutf8() {
unsafe {
let nc = Notcurses::new();
let res = crate::notcurses_canutf8(nc);
notcurses_stop(nc);
libc_print!("[{}] ", res);
}
}
}

Loading…
Cancel
Save