everything_sys_bindgen/
lib.rs

1#![allow(non_upper_case_globals)]
2#![allow(non_camel_case_types)]
3#![allow(non_snake_case)]
4
5#[cfg(target_os = "windows")]
6include!("../Everything.rs");
7
8#[cfg(test)]
9mod tests {
10    use super::*;
11    use widestring::U16CString;
12
13    // Utility function for wide string conversion
14    fn to_wide(s: &str) -> U16CString {
15        U16CString::from_str(s).unwrap()
16    }
17
18    #[test]
19    fn test_everything_version() {
20        let version: DWORD;
21
22        unsafe {
23            version = Everything_GetMajorVersion();
24        }
25
26        assert!(version > 0);
27    }
28
29    #[test]
30    fn test_everything_set_search_w() {
31        let search_string = "test";
32        let wide_search_string = to_wide(search_string);
33
34        unsafe {
35            Everything_SetSearchW(wide_search_string.as_ptr());
36        }
37    }
38
39    fn test_search() {
40        let search_string = "test";
41        let wide_search_string = to_wide(search_string);
42
43        unsafe {
44            Everything_SetSearchW(wide_search_string.as_ptr());
45            let result = Everything_QueryW(1);
46
47            assert_eq!(result, 1);
48        }
49    }
50
51    #[test]
52    fn test_everything_query_w() {
53        test_search();
54    }
55
56    #[test]
57    fn test_everything_get_num_results() {
58        let num_results: DWORD;
59
60        test_search();
61        unsafe {
62            num_results = Everything_GetNumResults();
63        }
64
65        println!("num_results: {}", num_results);
66
67        assert!(num_results > 0);
68    }
69
70    #[test]
71    fn test_everything_get_result_path_w() {
72        let index: DWORD = 0;
73        let result;
74        test_search();
75        unsafe {
76            result = Everything_GetResultPathW(index);
77        }
78
79        assert!(!result.is_null());
80    }
81
82    #[test]
83    fn test_everything_get_result_file_name_w() {
84        let index: DWORD = 0;
85        let result;
86        test_search();
87        unsafe {
88            result = Everything_GetResultFileNameW(index);
89        }
90
91        assert!(!result.is_null());
92    }
93
94    #[test]
95    fn test_everything_get_result_full_path_and_file_name_w() {
96        let index: DWORD = 0;
97        let buf: [WCHAR; 260] = [0; 260];
98        let size: DWORD;
99        test_search();
100        unsafe {
101            size = Everything_GetResultFullPathNameW(
102                index,
103                buf.as_ptr() as *mut _,
104                buf.len() as DWORD,
105            );
106        }
107
108        assert!(size > 0);
109    }
110
111    #[test]
112    fn test_everything_reset() {
113        unsafe {
114            Everything_Reset();
115        }
116    }
117}