mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-07-24 22:25:18 +00:00
Package.swift's .process("Noise") resource claim silently excluded all
of bitchatTests/Noise/ from compilation since Oct 2025 - including a
complete official-vector runner (cacophony + snow XX transcripts,
transport messages, handshake hash, byte-identical to upstream).
Narrowing the resource to the JSON file and loading via Bundle.module
brings 51 Noise tests back to life, with a guard asserting each
vector's protocol name matches the app's.
CI gains a performance floor gate: perf-floors.json carries deliberately
generous floors (~25% of measured throughput) that catch algorithmic
regressions without flaking on runner variance; PERF lines reach the
gate via an O_APPEND side-channel file since swift test --parallel
swallows passing tests' stdout.
Tests are now hermetic: FavoritesPersistenceService uses an in-memory
keychain under test (fixes the securityd hang that blocked pipeline
benchmarks locally) and read-receipt persistence uses a wiped scratch
UserDefaults suite instead of .standard.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
71 lines
2.2 KiB
Swift
71 lines
2.2 KiB
Swift
// swift-tools-version: 5.9
|
|
|
|
import PackageDescription
|
|
|
|
let package = Package(
|
|
name: "bitchat",
|
|
defaultLocalization: "en",
|
|
platforms: [
|
|
.iOS(.v16),
|
|
.macOS(.v13)
|
|
],
|
|
products: [
|
|
.executable(
|
|
name: "bitchat",
|
|
targets: ["bitchat"]
|
|
),
|
|
],
|
|
dependencies:[
|
|
.package(path: "localPackages/Arti"),
|
|
.package(path: "localPackages/BitFoundation"),
|
|
.package(path: "localPackages/BitLogger"),
|
|
.package(url: "https://github.com/21-DOT-DEV/swift-secp256k1", exact: "0.21.1")
|
|
],
|
|
targets: [
|
|
.executableTarget(
|
|
name: "bitchat",
|
|
dependencies: [
|
|
.product(name: "P256K", package: "swift-secp256k1"),
|
|
.product(name: "BitFoundation", package: "BitFoundation"),
|
|
.product(name: "BitLogger", package: "BitLogger"),
|
|
.product(name: "Tor", package: "Arti")
|
|
],
|
|
path: "bitchat",
|
|
exclude: [
|
|
"Info.plist",
|
|
"Assets.xcassets",
|
|
"_PreviewHelpers/PreviewAssets.xcassets",
|
|
"bitchat.entitlements",
|
|
"bitchat-macOS.entitlements",
|
|
"LaunchScreen.storyboard",
|
|
"ViewModels/Extensions/README.md"
|
|
],
|
|
resources: [
|
|
.process("Localizable.xcstrings")
|
|
]
|
|
),
|
|
.testTarget(
|
|
name: "bitchatTests",
|
|
dependencies: [
|
|
"bitchat",
|
|
.product(name: "BitFoundation", package: "BitFoundation")
|
|
],
|
|
path: "bitchatTests",
|
|
exclude: [
|
|
"Info.plist",
|
|
"README.md",
|
|
// CI perf gate data (read by scripts/check-perf-floors.sh),
|
|
// not a test resource.
|
|
"Performance/perf-floors.json"
|
|
],
|
|
resources: [
|
|
.process("Localization"),
|
|
// Only the vector fixture: declaring the whole "Noise"
|
|
// directory would claim its .swift test files as resources
|
|
// and silently drop them from compilation.
|
|
.process("Noise/NoiseTestVectors.json")
|
|
]
|
|
)
|
|
]
|
|
)
|