new tests
This commit is contained in:
+21
-15
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user