From 11566ed81f1e48ee5fee502e4f91fab0c6704ee9 Mon Sep 17 00:00:00 2001 From: Joannis Orlandos Date: Thu, 22 Aug 2024 19:19:36 +0200 Subject: [PATCH] Convert deinit crash into warning --- Sources/Citadel/SFTP/Client/SFTPFile.swift | 4 +++- Tests/CitadelTests/Citadel2Tests.swift | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Sources/Citadel/SFTP/Client/SFTPFile.swift b/Sources/Citadel/SFTP/Client/SFTPFile.swift index bbca13d..abada40 100644 --- a/Sources/Citadel/SFTP/Client/SFTPFile.swift +++ b/Sources/Citadel/SFTP/Client/SFTPFile.swift @@ -40,7 +40,9 @@ public final class SFTPFile { public var logger: Logging.Logger { self.client.logger } deinit { - assert(!self.client.isActive || !self.isActive, "SFTPFile deallocated without being closed first") + if client.isActive && self.isActive { + self.logger.warning("SFTPFile deallocated without being closed first") + } } /// Read the attributes of the file. This is equivalent to the `stat()` system call. diff --git a/Tests/CitadelTests/Citadel2Tests.swift b/Tests/CitadelTests/Citadel2Tests.swift index 537fe72..85cbb8e 100644 --- a/Tests/CitadelTests/Citadel2Tests.swift +++ b/Tests/CitadelTests/Citadel2Tests.swift @@ -253,6 +253,7 @@ final class Citadel2Tests: XCTestCase { _ = try await file.read(from: UInt64(i * 32_768), length: 32_768) i += 1 } + try await file.close() } func testConnectToOpenSSHServer() async throws {