@@ -191,96 +191,6 @@ class PerfectLibTests: XCTestCase {
191
191
XCTAssert ( emojiStr == " 😳 " )
192
192
}
193
193
194
-
195
-
196
- // func testNetSendFile() {
197
- //
198
- // let testFile = File("/tmp/file_to_send.txt")
199
- // let testContents = "Here are the contents"
200
- // let sock = "/tmp/foo.sock"
201
- // let sockFile = File(sock)
202
- // if sockFile.exists {
203
- // sockFile.delete()
204
- // }
205
- //
206
- // do {
207
- //
208
- // try testFile.open(.truncate)
209
- // let _ = try testFile.write(string: testContents)
210
- // testFile.close()
211
- // try testFile.open()
212
- //
213
- // let server = NetNamedPipe()
214
- // let client = NetNamedPipe()
215
- //
216
- // try server.bind(address: sock)
217
- // server.listen()
218
- //
219
- // let serverExpectation = self.expectation(description: "server")
220
- // let clientExpectation = self.expectation(description: "client")
221
- //
222
- // try server.accept(timeoutSeconds: NetEvent.noTimeout) {
223
- // (inn: NetTCP?) -> () in
224
- // let n = inn as? NetNamedPipe
225
- // XCTAssertNotNil(n)
226
- //
227
- // do {
228
- // try n?.sendFile(testFile) {
229
- // (b: Bool) in
230
- //
231
- // XCTAssertTrue(b)
232
- //
233
- // n!.close()
234
- //
235
- // serverExpectation.fulfill()
236
- // }
237
- // } catch let e {
238
- // XCTAssert(false, "Exception accepting connection: \(e)")
239
- // serverExpectation.fulfill()
240
- // }
241
- // }
242
- //
243
- // try client.connect(address: sock, timeoutSeconds: 5) {
244
- // (inn: NetTCP?) -> () in
245
- // let n = inn as? NetNamedPipe
246
- // XCTAssertNotNil(n)
247
- // do {
248
- // try n!.receiveFile {
249
- // f in
250
- //
251
- // XCTAssertNotNil(f)
252
- // do {
253
- // let testDataRead = try f!.readSomeBytes(count: f!.size)
254
- // if testDataRead.count > 0 {
255
- // XCTAssertEqual(UTF8Encoding.encode(bytes: testDataRead), testContents)
256
- // } else {
257
- // XCTAssertTrue(false, "Got no data from received file")
258
- // }
259
- // f!.close()
260
- // } catch let e {
261
- // XCTAssert(false, "Exception in connection: \(e)")
262
- // }
263
- // clientExpectation.fulfill()
264
- // }
265
- // } catch let e {
266
- // XCTAssert(false, "Exception in connection: \(e)")
267
- // clientExpectation.fulfill()
268
- // }
269
- // }
270
- // self.waitForExpectations(timeout: 10000) {
271
- // _ in
272
- // server.close()
273
- // client.close()
274
- // testFile.close()
275
- // testFile.delete()
276
- // }
277
- // } catch PerfectError.networkError(let code, let msg) {
278
- // XCTAssert(false, "Exception: \(code) \(msg)")
279
- // } catch let e {
280
- // XCTAssert(false, "Exception: \(e)")
281
- // }
282
- // }
283
-
284
194
func testSysProcess( ) {
285
195
#if !Xcode // this always fails in Xcode but passes on the cli and on Linux.
286
196
// I think it's some interaction with the debugger. System call interrupted.
@@ -545,6 +455,27 @@ class PerfectLibTests: XCTestCase {
545
455
XCTAssert ( bytes2. availableExportBytes == 1 )
546
456
XCTAssert ( i8 == bytes2. export8Bits ( ) )
547
457
}
458
+
459
+ func testSymlink( ) {
460
+ let f1 = File ( " ./foo " )
461
+ let f2 = File ( " ./foo2 " )
462
+ do {
463
+ f2. delete ( )
464
+ try f1. open ( . truncate)
465
+ try f1. write ( string: " test " )
466
+ f1. close ( )
467
+ defer {
468
+ f1. delete ( )
469
+ }
470
+
471
+ let newF2 = try f1. linkTo ( path: f2. path)
472
+
473
+ XCTAssert ( try newF2. readString ( ) == " test " )
474
+ XCTAssert ( newF2. isLink)
475
+ } catch {
476
+ XCTAssert ( false , " \( error) " )
477
+ }
478
+ }
548
479
}
549
480
550
481
extension PerfectLibTests {
0 commit comments