133d722a9Sopenharmony_ciuse cxx_gen::Opt; 233d722a9Sopenharmony_ciuse quote::quote; 333d722a9Sopenharmony_ci 433d722a9Sopenharmony_ci#[test] 533d722a9Sopenharmony_cifn test_positive() { 633d722a9Sopenharmony_ci let rs = quote! { 733d722a9Sopenharmony_ci #[cxx::bridge] 833d722a9Sopenharmony_ci mod ffi { 933d722a9Sopenharmony_ci unsafe extern "C++" { 1033d722a9Sopenharmony_ci fn in_C(); 1133d722a9Sopenharmony_ci } 1233d722a9Sopenharmony_ci extern "Rust" { 1333d722a9Sopenharmony_ci fn in_rs(); 1433d722a9Sopenharmony_ci } 1533d722a9Sopenharmony_ci } 1633d722a9Sopenharmony_ci }; 1733d722a9Sopenharmony_ci let opt = Opt::default(); 1833d722a9Sopenharmony_ci let code = cxx_gen::generate_header_and_cc(rs, &opt).unwrap(); 1933d722a9Sopenharmony_ci assert!(!code.header.is_empty()); 2033d722a9Sopenharmony_ci assert!(!code.implementation.is_empty()); 2133d722a9Sopenharmony_ci} 2233d722a9Sopenharmony_ci 2333d722a9Sopenharmony_ci#[test] 2433d722a9Sopenharmony_cifn test_negative() { 2533d722a9Sopenharmony_ci let rs = quote! {}; 2633d722a9Sopenharmony_ci let opt = Opt::default(); 2733d722a9Sopenharmony_ci assert!(cxx_gen::generate_header_and_cc(rs, &opt).is_err()) 2833d722a9Sopenharmony_ci} 29