Files
Termind/FrameworkTests/SSHConnectionWorkerLifecycleTests.swift
T

35 lines
1.3 KiB
Swift

import Dispatch
import Logging
import Testing
@testable import TermindRemoteInfrastructure
@Suite
struct SSHConnectionWorkerLifecycleTests {
@Test func lastReferenceCanBeReleasedOnTheConnectionQueue() async {
let queue = DispatchQueue(label: "termind.tests.ssh.connection")
await withCheckedContinuation { continuation in
queue.async {
var worker: SSHConnectionWorker? = SSHConnectionWorker(
logger: Logger(label: "termind.tests"), maxSessionsPolicy: SSHMaxSessionsPolicy(), queue: queue)
weak let released = worker
#expect(released != nil)
worker = nil
#expect(released == nil)
continuation.resume()
}
}
}
@Test func lastReferenceCanBeReleasedOutsideTheConnectionQueue() {
let queue = DispatchQueue(label: "termind.tests.ssh.connection")
dispatchPrecondition(condition: .notOnQueue(queue))
var worker: SSHConnectionWorker? = SSHConnectionWorker(
logger: Logger(label: "termind.tests"), maxSessionsPolicy: SSHMaxSessionsPolicy(), queue: queue)
weak let released = worker
#expect(released != nil)
worker = nil
#expect(released == nil)
}
}