mlir_sys/
lib.rs

1#![allow(non_upper_case_globals)]
2#![allow(non_camel_case_types)]
3#![allow(non_snake_case)]
4
5include!(concat!(env!("OUT_DIR"), "/bindings.rs"));
6
7#[cfg(test)]
8mod mlir_tests {
9    use super::*;
10    use std::ffi::CString;
11
12    #[test]
13    fn test_context() {
14        unsafe {
15            let ctx = mlirContextCreate();
16            assert!(mlirContextEqual(ctx, ctx));
17            mlirContextDestroy(ctx);
18        }
19    }
20
21    #[test]
22    fn create_string() {
23        unsafe {
24            let string = CString::new("Hello, world!").unwrap();
25
26            mlirStringRefCreateFromCString(string.as_ptr());
27        }
28    }
29
30    #[test]
31    fn test_location() {
32        unsafe {
33            let registry = mlirDialectRegistryCreate();
34            let context = mlirContextCreate();
35
36            mlirContextAppendDialectRegistry(context, registry);
37            mlirRegisterAllDialects(registry);
38
39            let location = mlirLocationUnknownGet(context);
40            let string = CString::new("newmod").unwrap();
41            let reference = mlirStringRefCreateFromCString(string.as_ptr());
42
43            mlirOperationStateGet(reference, location);
44
45            mlirContextDestroy(context);
46            mlirDialectRegistryDestroy(registry);
47        }
48    }
49}