xref: /aosp_15_r20/external/cronet/build/rust/tests/test_rust_exe/main.rs (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 // Copyright 2021 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 chromium::import! {
6     "//build/rust/tests/test_rust_static_library";
7     "//build/rust/tests/test_rust_static_library_non_standard_arrangement:lib" as
8         test_rust_static_library_non_standard_arrangement;
9 }
10 
11 // To mimic third-party, test_rlib_crate has a short crate_name which we do not
12 // need to import!.
13 use test_rlib_crate::say_hello_from_crate;
14 
main()15 fn main() {
16     assert_eq!(test_proc_macro_crate::calculate_using_proc_macro!(), 30);
17     assert_eq!(test_rust_static_library::add_two_ints_via_rust(3, 4), 7);
18     assert_eq!(test_rust_static_library_non_standard_arrangement::do_subtract(4, 3), 1);
19     say_hello_from_crate();
20 }
21 
22 /// These tests are largely all to just test different permutations of builds,
23 /// e.g. calling into mixed_static_librarys, crates, proc macros, etc.
24 #[cfg(test)]
25 mod tests {
26     #[test]
test_call_to_rust()27     fn test_call_to_rust() {
28         assert_eq!(test_rust_static_library::add_two_ints_via_rust(3, 4), 7);
29     }
30 
31     #[test]
test_call_to_rust_non_standard_arrangement()32     fn test_call_to_rust_non_standard_arrangement() {
33         assert_eq!(test_rust_static_library_non_standard_arrangement::do_subtract(8, 4), 4);
34     }
35 
36     #[test]
test_proc_macro()37     fn test_proc_macro() {
38         assert_eq!(test_proc_macro_crate::calculate_using_proc_macro!(), 30)
39     }
40 }
41