Hardens ProcessManager finalisation, ensures stdout/stderr pipe write-ends close after spawn, sets termination handlers before run(), and fixes the runCaptured continuation hand-off for fast exits. Resolves the Stage 3 prompt stream being dropped and the handheld fixture UI not advancing, unskips and repairs the handheld UI test, and fixes averaging panel accessibility. Includes the selected #52 profile, verification, and artefact-gating fixes. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
31 lines
1.0 KiB
Swift
31 lines
1.0 KiB
Swift
import Foundation
|
|
import Testing
|
|
@testable import ICCeryCore
|
|
|
|
@Suite("ApplycalArgs")
|
|
struct ApplycalArgsTests {
|
|
|
|
@Test("Apply argv")
|
|
func applyArgv() throws {
|
|
let config = ApplycalConfig(
|
|
calibrationPath: "/tmp/cal.cal",
|
|
inputProfileURL: URL(fileURLWithPath: "/tmp/profile.icc")
|
|
)
|
|
let args = try ApplycalArgs.build(config: config)
|
|
#expect(args == ["-v", "-a", "/tmp/cal.cal", "/tmp/profile.icc"])
|
|
}
|
|
|
|
@Test("Unapply is emitted when the caller explicitly sets it")
|
|
func unapplyEmittedWhenConfigSet() throws {
|
|
let config = ApplycalConfig(
|
|
calibrationPath: "/tmp/cal.cal",
|
|
inputProfileURL: URL(fileURLWithPath: "/tmp/profile.icc"),
|
|
unapply: true
|
|
)
|
|
let args = try ApplycalArgs.build(config: config)
|
|
// Builder emits -u only when the caller explicitly sets unapply.
|
|
// The UI layer never passes unapply: true in v2.0.
|
|
#expect(args == ["-v", "-u", "/tmp/cal.cal", "/tmp/profile.icc"])
|
|
}
|
|
}
|