nitrokey_sys/
lib.rs

1#![allow(non_upper_case_globals)]
2#![allow(non_camel_case_types)]
3#![allow(non_snake_case)]
4
5#[cfg(not(feature = "bindgen"))]
6mod ffi;
7
8#[cfg(not(feature = "bindgen"))]
9pub use crate::ffi::*;
10
11#[cfg(feature = "bindgen")]
12include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
13
14#[cfg(test)]
15mod tests {
16    use super::*;
17    use std::ffi::CString;
18
19    #[test]
20    fn login_auto() {
21        unsafe {
22            assert_eq!(0, NK_login_auto());
23        }
24    }
25
26    #[test]
27    fn login() {
28        let l = CString::new("L").unwrap();
29        let p = CString::new("P").unwrap();
30        let s = CString::new("S").unwrap();
31        let t = CString::new("T").unwrap();
32        unsafe {
33            // Unconnected
34            assert_eq!(0, NK_login(l.as_ptr()));
35            assert_eq!(0, NK_login(p.as_ptr()));
36            assert_eq!(0, NK_login(s.as_ptr()));
37            // Unsupported model
38            assert_eq!(0, NK_login(t.as_ptr()));
39        }
40    }
41}