From 293ed240b63f20861c4941117dc0975e450f0748 Mon Sep 17 00:00:00 2001 From: Andrew Heard Date: Fri, 23 Jun 2023 16:49:06 -0400 Subject: [PATCH 1/3] Update `swift-test/main.swift` to handle Apple Silicon Updated the test to expect `GULAppEnvironmentUtil.deviceModel()` to return the same architecture as the host device (e.g., simulators on Apple Silicon Macs are `arm64`). --- SwiftPMTests/swift-test/main.swift | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/SwiftPMTests/swift-test/main.swift b/SwiftPMTests/swift-test/main.swift index aef491d0..46ad7a48 100644 --- a/SwiftPMTests/swift-test/main.swift +++ b/SwiftPMTests/swift-test/main.swift @@ -35,15 +35,24 @@ class importTest: XCTestCase { #endif XCTAssertFalse(GULAppEnvironmentUtil.isAppExtension()) - #if os(macOS) || targetEnvironment(macCatalyst) - // Device model should now return the appropriate hardware model on macOS. - XCTAssertNotEqual(GULAppEnvironmentUtil.deviceModel(), "x86_64") + XCTAssertEqual(GULAppEnvironmentUtil.deviceModel(), buildArchitecture()) + + print("System version? Answer: \(GULAppEnvironmentUtil.systemVersion())") + } + + func buildArchitecture() -> String { + #if arch(arm) + return "arm" + #elseif arch(arm64) + return "arm64" + #elseif arch(x86_64) + return "x86_64" #else - // Device model should show up as x86_64 for iOS, tvOS, and watchOS - // simulators. - XCTAssertEqual(GULAppEnvironmentUtil.deviceModel(), "x86_64") + throw TestError(errorDescription: "Unexpected build architecture.") #endif + } - print("System version? Answer: \(GULAppEnvironmentUtil.systemVersion())") + struct TestError: Error { + var errorDescription: String? } } From 5c29e18c6eb9b92b112e0bced4c1c71b94c26e95 Mon Sep 17 00:00:00 2001 From: Andrew Heard Date: Fri, 23 Jun 2023 16:56:43 -0400 Subject: [PATCH 2/3] Fix macOS vs. simulator test behavior --- SwiftPMTests/swift-test/main.swift | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/SwiftPMTests/swift-test/main.swift b/SwiftPMTests/swift-test/main.swift index 46ad7a48..c7839b85 100644 --- a/SwiftPMTests/swift-test/main.swift +++ b/SwiftPMTests/swift-test/main.swift @@ -35,7 +35,14 @@ class importTest: XCTestCase { #endif XCTAssertFalse(GULAppEnvironmentUtil.isAppExtension()) - XCTAssertEqual(GULAppEnvironmentUtil.deviceModel(), buildArchitecture()) + #if os(macOS) || targetEnvironment(macCatalyst) + // Device model should now return the appropriate hardware model on macOS. + XCTAssertNotEqual(GULAppEnvironmentUtil.deviceModel(), "x86_64") + #else + // Device model should show up as the host architecture (x86_64 or arm64) for iOS, tvOS, + // watchOS, and visionOS simulators. + XCTAssertEqual(GULAppEnvironmentUtil.deviceModel(), buildArchitecture()) + #endif print("System version? Answer: \(GULAppEnvironmentUtil.systemVersion())") } From 0010b5df19fca4c9d2933a823a2ba36e9caf3bce Mon Sep 17 00:00:00 2001 From: Andrew Heard Date: Mon, 26 Jun 2023 10:32:26 -0400 Subject: [PATCH 3/3] Refactor test as simulator vs. real device --- SwiftPMTests/swift-test/main.swift | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/SwiftPMTests/swift-test/main.swift b/SwiftPMTests/swift-test/main.swift index c7839b85..fdfad081 100644 --- a/SwiftPMTests/swift-test/main.swift +++ b/SwiftPMTests/swift-test/main.swift @@ -30,27 +30,22 @@ class importTest: XCTestCase { XCTAssertFalse(GULAppEnvironmentUtil.isFromAppStore()) #if targetEnvironment(simulator) XCTAssertTrue(GULAppEnvironmentUtil.isSimulator()) + // Device model should return the host's build architecture (x86_64 or arm64) for iOS, tvOS + // watchOS, and visionOS simulators. + XCTAssertEqual(GULAppEnvironmentUtil.deviceModel(), buildArchitecture()) #else XCTAssertFalse(GULAppEnvironmentUtil.isSimulator()) + // Device model should return the appropriate hardware model (e.g., "iPhone12,3" or + // "MacBookPro18,2") on real devices. + XCTAssertNotEqual(GULAppEnvironmentUtil.deviceModel(), buildArchitecture()) #endif XCTAssertFalse(GULAppEnvironmentUtil.isAppExtension()) - #if os(macOS) || targetEnvironment(macCatalyst) - // Device model should now return the appropriate hardware model on macOS. - XCTAssertNotEqual(GULAppEnvironmentUtil.deviceModel(), "x86_64") - #else - // Device model should show up as the host architecture (x86_64 or arm64) for iOS, tvOS, - // watchOS, and visionOS simulators. - XCTAssertEqual(GULAppEnvironmentUtil.deviceModel(), buildArchitecture()) - #endif - print("System version? Answer: \(GULAppEnvironmentUtil.systemVersion())") } func buildArchitecture() -> String { - #if arch(arm) - return "arm" - #elseif arch(arm64) + #if arch(arm64) return "arm64" #elseif arch(x86_64) return "x86_64"