Merge pull request #1724 from manaflow-ai/feat-display-harness-manifest-env
Fix display harness manifest handoff in UI test
This commit is contained in:
commit
63e65a7f5c
9 changed files with 112 additions and 153 deletions
47
.github/workflows/ci.yml
vendored
47
.github/workflows/ci.yml
vendored
|
|
@ -465,54 +465,19 @@ jobs:
|
|||
run: |
|
||||
set -euo pipefail
|
||||
SOURCE_PACKAGES_DIR="$PWD/.ci-source-packages"
|
||||
HARNESS_DIR="${RUNNER_TEMP}/cmux-display-churn-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}"
|
||||
mkdir -p "$HARNESS_DIR"
|
||||
PREFIX="${HARNESS_DIR}/cmux-display-churn"
|
||||
READY_PATH="${PREFIX}.ready"
|
||||
DISPLAY_ID_PATH="${PREFIX}.id"
|
||||
START_PATH="${PREFIX}.start"
|
||||
DONE_PATH="${PREFIX}.done"
|
||||
LOG_PATH="${PREFIX}.log"
|
||||
MANIFEST_PATH="${HARNESS_DIR}/cmux-ui-test-display-harness.json"
|
||||
HELPER_PATH="/tmp/create-virtual-display"
|
||||
MANIFEST_PATH="/tmp/cmux-ui-test-display-harness.json"
|
||||
|
||||
rm -f "$READY_PATH" "$DISPLAY_ID_PATH" "$START_PATH" "$DONE_PATH" "$LOG_PATH" "$MANIFEST_PATH"
|
||||
rm -f "$MANIFEST_PATH"
|
||||
trap 'rm -f "$MANIFEST_PATH"' EXIT
|
||||
|
||||
clang -framework Foundation -framework CoreGraphics \
|
||||
-o /tmp/create-virtual-display 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
|
||||
}
|
||||
-o "$HELPER_PATH" scripts/create-virtual-display.m
|
||||
|
||||
cat >"$MANIFEST_PATH" <<EOF
|
||||
{"readyPath":"$READY_PATH","displayIDPath":"$DISPLAY_ID_PATH","startPath":"$START_PATH","donePath":"$DONE_PATH","logPath":"$LOG_PATH"}
|
||||
{"helperBinaryPath":"$HELPER_PATH"}
|
||||
EOF
|
||||
echo "Display harness manifest: $MANIFEST_PATH"
|
||||
cat "$MANIFEST_PATH"
|
||||
|
||||
CMUX_UI_TEST_DISPLAY_READY_PATH="$READY_PATH" \
|
||||
CMUX_UI_TEST_DISPLAY_ID_PATH="$DISPLAY_ID_PATH" \
|
||||
CMUX_UI_TEST_DISPLAY_START_PATH="$START_PATH" \
|
||||
CMUX_UI_TEST_DISPLAY_DONE_PATH="$DONE_PATH" \
|
||||
CMUX_UI_TEST_DISPLAY_LOG_PATH="$LOG_PATH" \
|
||||
xcodebuild -project GhosttyTabs.xcodeproj -scheme cmux -configuration Debug \
|
||||
-clonedSourcePackagesDirPath "$SOURCE_PACKAGES_DIR" \
|
||||
-disableAutomaticPackageResolution \
|
||||
|
|
|
|||
52
.github/workflows/test-e2e.yml
vendored
52
.github/workflows/test-e2e.yml
vendored
|
|
@ -208,56 +208,18 @@ jobs:
|
|||
DISPLAY_ENV_PREFIX=()
|
||||
|
||||
if [ "$TEST_FILTER" = "DisplayResolutionRegressionUITests" ]; then
|
||||
HARNESS_DIR="${RUNNER_TEMP}/cmux-display-churn-${{ github.run_id }}-${{ github.run_attempt }}"
|
||||
mkdir -p "$HARNESS_DIR"
|
||||
PREFIX="${HARNESS_DIR}/cmux-display-churn"
|
||||
READY_PATH="${PREFIX}.ready"
|
||||
DISPLAY_ID_PATH="${PREFIX}.id"
|
||||
START_PATH="${PREFIX}.start"
|
||||
DONE_PATH="${PREFIX}.done"
|
||||
LOG_PATH="${PREFIX}.log"
|
||||
MANIFEST_PATH="${HARNESS_DIR}/cmux-ui-test-display-harness.json"
|
||||
HELPER_PATH="/tmp/create-virtual-display"
|
||||
MANIFEST_PATH="/tmp/cmux-ui-test-display-harness.json"
|
||||
|
||||
rm -f "$READY_PATH" "$DISPLAY_ID_PATH" "$START_PATH" "$DONE_PATH" "$LOG_PATH" "$MANIFEST_PATH"
|
||||
rm -f "$MANIFEST_PATH"
|
||||
trap 'rm -f "$MANIFEST_PATH"' EXIT
|
||||
|
||||
clang -framework Foundation -framework CoreGraphics \
|
||||
-o /tmp/create-virtual-display 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 &
|
||||
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
|
||||
}
|
||||
-o "$HELPER_PATH" scripts/create-virtual-display.m
|
||||
|
||||
cat >"$MANIFEST_PATH" <<EOF
|
||||
{"readyPath":"$READY_PATH","displayIDPath":"$DISPLAY_ID_PATH","startPath":"$START_PATH","donePath":"$DONE_PATH","logPath":"$LOG_PATH"}
|
||||
EOF
|
||||
echo "Display harness manifest: $MANIFEST_PATH"
|
||||
cat "$MANIFEST_PATH"
|
||||
|
||||
DISPLAY_ENV_PREFIX=(
|
||||
CMUX_UI_TEST_DISPLAY_READY_PATH="$READY_PATH"
|
||||
CMUX_UI_TEST_DISPLAY_ID_PATH="$DISPLAY_ID_PATH"
|
||||
CMUX_UI_TEST_DISPLAY_START_PATH="$START_PATH"
|
||||
CMUX_UI_TEST_DISPLAY_DONE_PATH="$DONE_PATH"
|
||||
CMUX_UI_TEST_DISPLAY_LOG_PATH="$LOG_PATH"
|
||||
)
|
||||
{"helperBinaryPath":"$HELPER_PATH"}
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Start recording right before the test (after build/resolve).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue