new tests

This commit is contained in:
Mark Gregory
2026-10-19 09:54:57 +01:00
parent a2d0cf11a9
commit ef84b1e563
+21 -15
View File
@@ -1,18 +1,27 @@
#!/bin/bash
set -euo pipefail
ROOT="$(cd -- "$(dirname -- "$0")" && pwd)"
cd "$ROOT"
if ! command -v xcodebuild >/dev/null 2>&1; then
echo 'ERROR: Xcode and xcodebuild are required on macOS.' >&2
exit 1
# Compatible with bash and zsh, whether launched directly or via /bin/zsh.
set -uo pipefail
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
if [ ! -d "$ROOT/DBSyn.xcodeproj" ]; then
echo "ERROR: DBSyn.xcodeproj not found at $ROOT" >&2
exit 2
fi
mkdir -p test-results
STAMP="$(date +%Y%m%d-%H%M%S)"
if ! command -v xcodebuild >/dev/null 2>&1; then
echo 'ERROR: xcodebuild requires Xcode on macOS.' >&2
exit 2
fi
cd "$ROOT" || exit 2
mkdir -p "$ROOT/test-results"
STAMP="$(date +%Y%m%d-%H%M%S)-$$"
RESULT="$ROOT/test-results/DBSyn-$STAMP.xcresult"
LOG="$ROOT/test-results/DBSyn-$STAMP.log"
echo "Running DBSyn XCTest suite. Log: $LOG"
if xcodebuild test \
-project DBSyn.xcodeproj \
# pipefail preserves xcodebuild's failure even though output is piped to tee.
# Avoid PIPESTATUS, which is Bash-specific and fails under zsh with nounset.
set +e
xcodebuild test \
-project "$ROOT/DBSyn.xcodeproj" \
-scheme DBSyn \
-configuration Debug \
-destination 'platform=macOS,arch=arm64' \
@@ -21,10 +30,7 @@ if xcodebuild test \
ONLY_ACTIVE_ARCH=YES \
ENABLE_TESTABILITY=YES \
SWIFT_ENABLE_EXPLICIT_MODULES=NO \
CODE_SIGNING_ALLOWED=NO 2>&1 | tee "$LOG"; then
STATUS=0
else
STATUS=${PIPESTATUS[0]}
fi
CODE_SIGNING_ALLOWED=NO 2>&1 | tee "$LOG"
STATUS=$?
printf '\nTest log: %s\nTest results: %s\n' "$LOG" "$RESULT"
exit "$STATUS"