From d2098e449295e452c83e8b2fd8a70674fe4e365e Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sun, 11 Jan 2026 01:16:29 +0100 Subject: [PATCH] fix(macos): avoid discovery retries during tests --- .../ClawdbotDiscovery/GatewayDiscoveryModel.swift | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/apps/macos/Sources/ClawdbotDiscovery/GatewayDiscoveryModel.swift b/apps/macos/Sources/ClawdbotDiscovery/GatewayDiscoveryModel.swift index fe626154a..e4f99dce7 100644 --- a/apps/macos/Sources/ClawdbotDiscovery/GatewayDiscoveryModel.swift +++ b/apps/macos/Sources/ClawdbotDiscovery/GatewayDiscoveryModel.swift @@ -213,7 +213,7 @@ public final class GatewayDiscoveryModel { private func scheduleWideAreaFallback() { let domain = ClawdbotBonjour.wideAreaBridgeServiceDomain - if ProcessInfo.processInfo.isRunningTests { return } + if Self.isRunningTests { return } guard self.wideAreaFallbackTask == nil else { return } self.wideAreaFallbackTask = Task.detached(priority: .utility) { [weak self] in guard let self else { return } @@ -262,6 +262,16 @@ public final class GatewayDiscoveryModel { } } + private nonisolated static var isRunningTests: Bool { + // Keep discovery background work from running forever during SwiftPM test runs. + if Bundle.allBundles.contains(where: { $0.bundleURL.pathExtension == "xctest" }) { return true } + + let env = ProcessInfo.processInfo.environment + return env["XCTestConfigurationFilePath"] != nil + || env["XCTestBundlePath"] != nil + || env["XCTestSessionIdentifier"] != nil + } + private func updateGatewaysForAllDomains() { for domain in self.resultsByDomain.keys { self.updateGateways(for: domain)