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, }; #[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, "sim"); // Ensure backwards compat assert_eq!(target.abi, "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))); }