From 7fb1f50966def2a4d37a7f7c9c62f967b28c4592 Mon Sep 17 00:00:00 2001 From: Lawrence Chen Date: Wed, 18 Mar 2026 03:22:04 -0700 Subject: [PATCH] Launch display helper from inside the UI test sandbox --- .github/workflows/ci.yml | 47 ++----------------- .github/workflows/test-e2e.yml | 47 ++----------------- .../DisplayResolutionRegressionUITests.swift | 28 ++++++++--- 3 files changed, 28 insertions(+), 94 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d1fdec6d..8018dbf9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -465,53 +465,12 @@ jobs: run: | set -euo pipefail SOURCE_PACKAGES_DIR="$PWD/.ci-source-packages" - PREFIX="/tmp/cmux-display-churn-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}" - READY_PATH="${PREFIX}.ready" - DISPLAY_ID_PATH="${PREFIX}.id" - START_PATH="${PREFIX}.start" - DONE_PATH="${PREFIX}.done" - LOG_PATH="${PREFIX}.log" - MANIFEST_PATH="/tmp/cmux-ui-test-display-harness.json" - - rm -f "$READY_PATH" "$DISPLAY_ID_PATH" "$START_PATH" "$DONE_PATH" "$LOG_PATH" "$MANIFEST_PATH" + HELPER_PATH="/tmp/create-virtual-display" clang -framework Foundation -framework CoreGraphics \ - -o /tmp/create-virtual-display scripts/create-virtual-display.m + -o "$HELPER_PATH" scripts/create-virtual-display.m - /tmp/create-virtual-display \ - --modes 1920x1080,1728x1117,1600x900,1440x810 \ - --ready-path "$READY_PATH" \ - --display-id-path "$DISPLAY_ID_PATH" \ - --start-path "$START_PATH" \ - --done-path "$DONE_PATH" \ - --iterations 40 \ - --interval-ms 40 \ - >"$LOG_PATH" 2>&1 & - VDISPLAY_PID=$! - trap 'kill "$VDISPLAY_PID" >/dev/null 2>&1 || true; rm -f "$MANIFEST_PATH"' EXIT - - for _ in {1..120}; do - [ -f "$READY_PATH" ] && break - sleep 0.25 - done - [ -f "$READY_PATH" ] || { - echo "Display harness failed to start" >&2 - cat "$LOG_PATH" >&2 || true - exit 1 - } - - cat >"$MANIFEST_PATH" <"$LOG_PATH" 2>&1 & - DISPLAY_VDISPLAY_PID=$! - trap 'kill "${DISPLAY_VDISPLAY_PID:-}" >/dev/null 2>&1 || true; rm -f "$MANIFEST_PATH"' EXIT - - for _ in {1..120}; do - [ -f "$READY_PATH" ] && break - sleep 0.25 - done - [ -f "$READY_PATH" ] || { - echo "Display harness failed to start" >&2 - cat "$LOG_PATH" >&2 || true - exit 1 - } - - cat >"$MANIFEST_PATH" < String? { + guard let helperBinaryPath = env["CMUX_UI_TEST_DISPLAY_HELPER_BINARY_PATH"], + !helperBinaryPath.isEmpty else { + return nil + } + return helperBinaryPath + } + private func loadExternalHarnessFromEnvironment(_ env: [String: String]) -> ExternalDisplayHarness? { guard let readyPath = env["CMUX_UI_TEST_DISPLAY_READY_PATH"], !readyPath.isEmpty, let displayIDPath = env["CMUX_UI_TEST_DISPLAY_ID_PATH"], !displayIDPath.isEmpty,