26 lines
795 B
Swift
26 lines
795 B
Swift
//
|
|
// Copyright 2025 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
//
|
|
|
|
import Foundation
|
|
import Testing
|
|
|
|
@testable import SignalServiceKit
|
|
|
|
struct ConnectionLockTest {
|
|
@Test
|
|
func testEachPriority() async throws {
|
|
let filePath = OWSFileSystem.temporaryFilePath(fileExtension: "lock", isAvailableWhileDeviceLocked: false)
|
|
for priority in 1...3 {
|
|
let connectionLock = ConnectionLock(filePath: filePath, priority: priority, of: 3)
|
|
defer { connectionLock.close() }
|
|
// Ensure that we can lock, unlock, and then lock again.
|
|
for _ in 1...2 {
|
|
let heldLock = try await connectionLock.lock(onInterrupt: (.global(), {}))
|
|
connectionLock.unlock(heldLock)
|
|
}
|
|
}
|
|
}
|
|
}
|