| use super::OSVersion; | |
| use crate::spec::targets::{ | |
| aarch64_apple_darwin, aarch64_apple_ios_sim, aarch64_apple_visionos_sim, | |
| aarch64_apple_watchos_sim, i686_apple_darwin, x86_64_apple_darwin, x86_64_apple_ios, | |
| x86_64_apple_tvos, x86_64_apple_watchos_sim, | |
| }; | |
| use crate::spec::{CfgAbi, Env}; | |
| #[test] | |
| fn simulator_targets_set_env() { | |
| let all_sim_targets = [ | |
| x86_64_apple_ios::target(), | |
| x86_64_apple_tvos::target(), | |
| x86_64_apple_watchos_sim::target(), | |
| aarch64_apple_ios_sim::target(), | |
| // Note: There is currently no ARM64 tvOS simulator target | |
| aarch64_apple_watchos_sim::target(), | |
| aarch64_apple_visionos_sim::target(), | |
| ]; | |
| for target in &all_sim_targets { | |
| assert_eq!(target.env, Env::Sim); | |
| // Ensure backwards compat | |
| assert_eq!(target.cfg_abi, CfgAbi::Sim); | |
| } | |
| } | |
| #[test] | |
| fn macos_link_environment_unmodified() { | |
| let all_macos_targets = [ | |
| aarch64_apple_darwin::target(), | |
| i686_apple_darwin::target(), | |
| x86_64_apple_darwin::target(), | |
| ]; | |
| for target in all_macos_targets { | |
| // macOS targets should only remove information for cross-compiling, but never | |
| // for the host. | |
| assert_eq!( | |
| target.link_env_remove, | |
| crate::spec::cvs![ | |
| "IPHONEOS_DEPLOYMENT_TARGET", | |
| "TVOS_DEPLOYMENT_TARGET", | |
| "XROS_DEPLOYMENT_TARGET" | |
| ], | |
| ); | |
| } | |
| } | |
| #[test] | |
| fn test_parse_version() { | |
| assert_eq!("10".parse(), Ok(OSVersion::new(10, 0, 0))); | |
| assert_eq!("10.12".parse(), Ok(OSVersion::new(10, 12, 0))); | |
| assert_eq!("10.12.6".parse(), Ok(OSVersion::new(10, 12, 6))); | |
| assert_eq!("9999.99.99".parse(), Ok(OSVersion::new(9999, 99, 99))); | |
| } |