From b1e2d1cb1964aa32b8ef9cecfcf5ce9a3f49a3da Mon Sep 17 00:00:00 2001 From: Lawrence Chen Date: Wed, 18 Mar 2026 01:40:04 -0700 Subject: [PATCH] Pass display harness manifest path into UI test --- .github/workflows/ci.yml | 1 + .github/workflows/test-e2e.yml | 1 + cmuxUITests/DisplayResolutionRegressionUITests.swift | 9 +++++---- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e93274d3..04849f71 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -513,6 +513,7 @@ jobs: CMUX_UI_TEST_DISPLAY_START_PATH="$START_PATH" \ CMUX_UI_TEST_DISPLAY_DONE_PATH="$DONE_PATH" \ CMUX_UI_TEST_DISPLAY_LOG_PATH="$LOG_PATH" \ + CMUX_UI_TEST_DISPLAY_HARNESS_MANIFEST_PATH="$MANIFEST_PATH" \ xcodebuild -project GhosttyTabs.xcodeproj -scheme cmux -configuration Debug \ -clonedSourcePackagesDirPath "$SOURCE_PACKAGES_DIR" \ -disableAutomaticPackageResolution \ diff --git a/.github/workflows/test-e2e.yml b/.github/workflows/test-e2e.yml index 6f651725..c56f833e 100644 --- a/.github/workflows/test-e2e.yml +++ b/.github/workflows/test-e2e.yml @@ -257,6 +257,7 @@ jobs: CMUX_UI_TEST_DISPLAY_START_PATH="$START_PATH" CMUX_UI_TEST_DISPLAY_DONE_PATH="$DONE_PATH" CMUX_UI_TEST_DISPLAY_LOG_PATH="$LOG_PATH" + CMUX_UI_TEST_DISPLAY_HARNESS_MANIFEST_PATH="$MANIFEST_PATH" ) fi diff --git a/cmuxUITests/DisplayResolutionRegressionUITests.swift b/cmuxUITests/DisplayResolutionRegressionUITests.swift index 579ae221..f508e09f 100644 --- a/cmuxUITests/DisplayResolutionRegressionUITests.swift +++ b/cmuxUITests/DisplayResolutionRegressionUITests.swift @@ -2,7 +2,7 @@ import XCTest import Foundation final class DisplayResolutionRegressionUITests: XCTestCase { - private let displayHarnessManifestPath = "/tmp/cmux-ui-test-display-harness.json" + private let defaultDisplayHarnessManifestPath = "/tmp/cmux-ui-test-display-harness.json" private var launchTag = "" private var diagnosticsPath = "" private var displayReadyPath = "" @@ -118,7 +118,7 @@ final class DisplayResolutionRegressionUITests: XCTestCase { private func prepareDisplayHarnessIfNeeded() throws { let env = ProcessInfo.processInfo.environment - if let externalHarness = loadExternalHarnessFromEnvironment(env) ?? loadExternalHarnessFromManifest() { + if let externalHarness = loadExternalHarnessFromEnvironment(env) ?? loadExternalHarnessFromManifest(env) { displayReadyPath = externalHarness.readyPath displayIDPath = externalHarness.displayIDPath displayStartPath = externalHarness.startPath @@ -150,8 +150,9 @@ final class DisplayResolutionRegressionUITests: XCTestCase { ) } - private func loadExternalHarnessFromManifest() -> ExternalDisplayHarness? { - let manifestURL = URL(fileURLWithPath: displayHarnessManifestPath) + private func loadExternalHarnessFromManifest(_ env: [String: String]) -> ExternalDisplayHarness? { + let manifestPath = env["CMUX_UI_TEST_DISPLAY_HARNESS_MANIFEST_PATH"] ?? defaultDisplayHarnessManifestPath + let manifestURL = URL(fileURLWithPath: manifestPath) guard let data = try? Data(contentsOf: manifestURL) else { return nil }