import Foundation import Testing @testable import OpenClaw struct FileHandleSafeReadTests { @Test func `read to end safely returns empty for closed handle`() { let pipe = Pipe() let handle = pipe.fileHandleForReading try? handle.close() let data = handle.readToEndSafely() #expect(data.isEmpty) } @Test func `read safely up to count returns empty for closed handle`() { let pipe = Pipe() let handle = pipe.fileHandleForReading try? handle.close() let data = handle.readSafely(upToCount: 16) #expect(data.isEmpty) } @Test func `read to end safely reads pipe contents`() { let pipe = Pipe() let writeHandle = pipe.fileHandleForWriting writeHandle.write(Data("hello".utf8)) try? writeHandle.close() let data = pipe.fileHandleForReading.readToEndSafely() #expect(String(data: data, encoding: .utf8) == "hello") } @Test func `read safely up to count reads incrementally`() { let pipe = Pipe() let writeHandle = pipe.fileHandleForWriting writeHandle.write(Data("hello world".utf8)) try? writeHandle.close() let readHandle = pipe.fileHandleForReading let first = readHandle.readSafely(upToCount: 5) let second = readHandle.readSafely(upToCount: 32) #expect(String(data: first, encoding: .utf8) == "hello") #expect(String(data: second, encoding: .utf8) == " world") } }