| // Part of the Crubit project, under the Apache License v2.0 with LLVM |
| // Exceptions. See /LICENSE for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| |
| use googletest::prelude::*; |
| use item_exists::value_exists; |
| |
| #[gtest] |
| fn test_extern() { |
| assert_eq!(unsafe { global_lib::extern_int }, 1); |
| assert_eq!(global_lib::GetIntVal(), 1); |
| unsafe { global_lib::extern_int = 10 }; |
| assert_eq!(global_lib::GetIntVal(), 10); |
| } |
| |
| #[gtest] |
| fn test_extern_const() { |
| assert_eq!(unsafe { global_lib::kExternConstInt }, 2); |
| } |
| |
| #[gtest] |
| fn test_extern_namespaced() { |
| assert_eq!(unsafe { global_lib::foo::extern_int_namespaced }, 3); |
| assert_eq!(global_lib::GetNamespacedIntVal(), 3); |
| unsafe { global_lib::foo::extern_int_namespaced = 30 }; |
| assert_eq!(global_lib::GetNamespacedIntVal(), 30); |
| } |
| |
| #[gtest] |
| fn test_extern_c_namespaced() { |
| assert_eq!(unsafe { global_lib::foo::extern_c_int_namespaced }, 4); |
| assert_eq!(global_lib::GetCNamespacedIntVal(), 4); |
| unsafe { global_lib::foo::extern_c_int_namespaced = 40 }; |
| assert_eq!(global_lib::GetCNamespacedIntVal(), 40); |
| } |
| |
| #[gtest] |
| fn test_non_generated_items() { |
| assert!(!value_exists!(global_lib::kInlineConstInt)); |
| assert!(!value_exists!(global_lib::kConstexprInt)); |
| assert!(!value_exists!(global_lib::templated_variable)); |
| assert!(!value_exists!(global_lib::inline_int)); |
| assert!(!value_exists!(global_lib::foo::inline_int_namespaced)); |
| } |