Skip to content

Testing & the release gate

The source currently contains 1470 discovered Swift test methods. Report executed, skipped, failed, and unexpected counts from the actual run; a source count is not a passing-test claim. Hosted CI uses the pinned Xcode runner and its explicitly documented exclusions. Local sandboxed runs can fail system-service fixtures and must be reported separately.

Terminal window
plutil -lint Orifold/Resources/Info.plist
plutil -lint Orifold/Resources/Orifold.entitlements
zsh -n install.sh
zsh -n scripts/install-mac.sh
zsh -n scripts/uninstall-mac.sh
zsh -n scripts/install-mac.command
zsh -n "Install or Update Orifold.command"
zsh -n "Uninstall Orifold.command"
zsh -n "Install or Update Orifold.app/Contents/MacOS/OrifoldInstaller"
plutil -lint "Install or Update Orifold.app/Contents/Info.plist"
swift build
swift test
xcodegen generate
git diff --exit-code -- Orifold.xcodeproj/project.pbxproj Orifold/Resources/Info.plist
xcodebuild build -quiet -project Orifold.xcodeproj -scheme Orifold -destination 'generic/platform=macOS' CODE_SIGNING_ALLOWED=NO
xcodebuild test -quiet -project Orifold.xcodeproj -scheme Orifold -destination 'platform=macOS' CODE_SIGNING_ALLOWED=NO
ORIFOLD_UNIVERSAL=1 ./scripts/install-mac.sh --clean --no-open --package-only --package /tmp/Orifold.zip
zsh scripts/make-dmg.sh --from-zip /tmp/Orifold.zip --output /tmp/Orifold-X.Y.Z-macOS-universal.dmg --version X.Y.Z
npm ci --prefix docs-site
npm test --prefix docs-site
npm run build --prefix docs-site

A manual walk through the installed app: compact first run, sample import, page-one landing, search, Contents, toolbar overflow, Export and its advanced options, recent-file keyboard access, then a normal workflow through annotate, forms, OCR, stamps, compression, protected export, update, and uninstall.

A passing source build does not prove a packaged bundle launches. Verify universal app and framework slices, bundled resources, strict code-signature integrity, checksums, and the published manifest separately. Ad-hoc signature integrity does not establish Apple notarization. Native VoiceOver, print/export completion, installed update/restore, and user-file preservation remain separate acceptance checks. Known beta limitations belong in release notes even when CI passes.